Last Updated on 12. Juni 2023 by sfambach
Ein Bekannter hat mir neulich sein Leid geklagt. Er sei jetzt im Home-Office und befürchte, dass sein Arbeitgeber seine Computer Daten trackt. Da der Computer nach wenigen Minuten in den Standby-Modus schaltet kam er auf die Idee immer wieder die Mouse zu bewegen, um dies zu verhinden. Seine Funkmouse reiche sogar bis zur Toilette, sagte er mir und richtete seinen Dank an die Hersteller solcher Mäuse.
Nun ist der Bekannte nicht nur ein guter, sondern auch ein Beamter und diese brauchen bekanntlich ihren Mittagsschlaf. Die Mouse an die Katze zu binden (sieht jemand die Ironie) oder sie auf einen Plattenspieler mitlaufen zu lassen ist nicht ganz perfekt.
Abends die Kinder ins Bett bringend liess ich in dieser Richtung meine Gedanken schweifen. Mir kam der ESP32-S2 ins Gedächtnis, der über die Möglichkeit verfügt ein HID (Human Iterface Device) also bzpw. ne Mouse oder Tastatur zu emulieren.
Somit war ein neues Projekt geboren – eine Mouse zu emulieren die dann eingreift wenn man gerade inaktiv ist. Natürlich wäre eine Softwareemulation auf dem Rechner auch denkbar aber die meisten Firmenrechner sind gegen die Installation fremder Software abgesichert.
Fakten
- Einfache anstecken der FAKE-Mouse an die USB Schnittstelle.
Mouse greift ein wenn länger als 3 Minuten keine Aktion erkannt wurde.War nicht möglich keine Rückmeldung vom ComputerMouse hört auf sobald der Benutzer wieder etwas macht.Gleicher Grund wie oben- Die Mouse Bewegungen sollten zufällig in Bewegung und Zeitabständen sein.
Gewählte Hardware
Alternativen:
LILYGO T8 ESP32-S2 Display V1.1
Anwendungsbereiche
- Lustige Mouse Bewegungen auf dem Bildschirm
- Befreiung vom Joch der Arbeitgeber.
- Ausleben des Beamtentums (Eine Entschuldigung an Beamten die für ihr Geld richtig arbeiten müssen)
Ansichten
Bilder gibts unter LILYGO EP32 S2 V1.1.
Programmierung
Bibliotheken
Die beiden benötigten Bibliotheken USB.h und USBHIDMouse.h sind ab der Version 2.0 in der ESP32 Bibliothek enthalten.
Testprogramm
Demos gibts in den Beispielprojekten s.u.
Das Beispiel zur MouseButtonControl habe ich als Basis für meine Bestrebungen genutz und mein eigenes erstellt:
Das Programm aufspielen und die Dip-Schalter auf HID Modus (OTG) umstellen.
Probleme
Mouse hält den Computer nicht am Leben.
Evtl. ist die Zeit zwischen den Bewegungen zu gering, so dass der Computer dennoch in den Standby-Modus geht.
Einfach den Wert für das Delay verlängern. Ruhig auch mal auf 2000 stellen dann sieht man die Mouse springen.
Sonstiges
Bewegungen der Eigenen Mouse erfassen
Stefan (siehe Kommentare) schlägt vor die Schaltung in die Mouse zu integrieren, zum einen könnte man die Mousebewegungen dann mit tracken zum anderen bräuchte es bei geschickter Verdrahtung noch nicht einmal OTG Fähigkeit.
Evlt. wäre auch ein durchgeschleifter USB Port etwas, ein Arduino Clone mit Hostshield. Die eigene Mouse an den Hostshield angeschlossen und die Daten der Mouse einfach weiter an den Rechner übertragen. Pausiert die Mouse übernimmt der Ardunio Clone.
Fazit
Das Programm war schnell geschrieben und funktioniert, in den nächsten Tagen werde ich dem Usertest übergeben.
Verwandte Beiträge
- Espressif IDF – GPIOs
- Espressif IDF – Tasks
- Espressif IDF – Menuconfig
- Espressif IDF – Timer
- Espressif IDF – Lognachrichten
- Espressif IDF – Fehlerbehandlung
- Espressif IDF – Konsolenausgabe
- Espressif IDF – Projekt erstellen
- LILYGO EP32 S2 V1.1
- VS-Code Espressif IDF
Quellen
https://github.com/espressif/arduino-esp32 (Lib zum nachschlagen der USB und Mouse Bibliothek)
https://ericdraken.com/usb-mouse-jiggler/ (Er hat ein ähnliches Projekt mit einen anderen Board gemacht)
In der Tat nutze ich einen Mouse Jiggler, allerdings auf Basis eines Arduino micro. Während ich im Büro Verständnis habe, dass eine Sperre nach kurzer Zeit erscheint, dami niemand anders auf vertrauliche Daten zugreift, wenn man gerade nicht im Büro ist, ist es doch nervig, sich quasi nach jedem längerem Telephonat, sonstigem Gespräch, Besuch der Kaffeemaschine, Toilette etc, wieder Einloggen zu müssen.
Im Büro aus Datensicherheit sinnvoll – aber als Alleinlebender im Homeoffice sicher nicht.
Die Idee, den Mausjiggler nur bei Bedarf zu betreiben, klingt nicht schlecht. Wie wäre es, Maus oder Tastatur mit ps/2-Connector am Controller zu betreiben, und damit zu USB oder BT HID zu konvertieren? Da gibt es ja schon Projekte zu. Wenn 2 Minuten keine Eingabe, dann könnte der Mausjiggler einspringen, jede echte Bewegung deaktiviert ihn wieder bis zum nächsten Timeout…
Hatte gehofft hier einen Hinweis zu finden für die Nutzung des ESP32-C3 als HID, leider schien das nur Click-Bait (würde ja passen zu jemandem der den armen Beamten hilft sich vor der Arbeit zu drücken) da der Artikel ja nur den S3 erwähnt, mit dem HID ja kein Problem ist.
Wäre schön wenn der Titel korrigiert würde
Überschrift ist korrigiert. Über die click-bait Unterstellung habe ich mich dennoch sehr geärgert, urteilst wohl gerne vorschnell? Höflicher Umgang geht anders!
Finde ich zwar mehr als nur bedenklich solche Mitarbeiter zu haben aber alle tricks kennt auch die Personalabteilung keine Sorge. Man findet solche geräte aber an jeder ecke seit es Telearbeit gibt. Nennt sich Mouse Jiggler https://amzn.to/3UiKn70 Einfach effektiv günstig.
Hallo Stefan,
vielen Dank für deinen Kommentar, in der Tat reicht da ein Tiny aus. Um die OTG Funktion des ESP zu testen ist es eine nette spielerei und wer nur einen Hammer hat für den ist die ganze Welt ein Nagel ;).
Als günstiges Beispiel hatte ich in den Quellen auch auf den Tiny verwiesen:
https://ericdraken.com/usb-mouse-jiggler/
Deine Links habe ich jetzt noch zusätzlich mit in die Quellen aufgenommen.
Habe mir auch ein paar der Tiny board der bestellt und wollte das nochmal mit einem Atmel und günstiger testen.
https://de.aliexpress.com/item/32409396629.html?gatewayAdapt=glo2deu&spm=a2g0o.order_list.0.0.21ef5c5fL9oQ38
Die Idee mit der Mouse finde ich gut, habe ich unter sonstiges übernommen.
Gruß
Stefan
Dazu ist ein ESP32-S2 vollkommener Overkill. Da reicht ein Arduino Leonardo-Clone (z.B. „CJMCU Beetle“ für einen sehr passenden Formfaktor) oder gar ein Digispark (ATTiny85) aus.
Am besten ist es, wenn man das in die Maus einbaut, so daß nach ende der Mausbenutzung noch 30 Minuten gewackelt wird, und dann aufgehört wird, falls der Beamte beim Mittagsschlaf verschlafen sollte… 😉 Beispiel: https://github.com/seife/marble_fx und https://github.com/seife/marble_fx_digistump
BTW: der Titel spricht von ESP32-C3, aber der Text von ESP32-S2..?