Ich hatte noch einen ESP8266 herumliegen, der seinen Einsatzzweck suchte. Also musste eine Projektidee her. Irgendwas mit IoT: immer gut. Akkubetrieben: sollte es schon sein. Telegram-Anbindung: immer doch! Also ab an die Planung.
Idee
Eine Art SmartButton, der auf Knopfdruck eine Nachricht an einen Nutzer sendet, ähnlich einer Klingel.
Umsetzung
Die benötigten Materialien umfassen:
- ESP8266 ESP-01 Modul
- 18650 Li-Ion Zelle aus einem alten Laptop Akku
- 18650 Halter
- Lithium Lade- und Schutzmodul
- 3,3V Linearregler
- Knopf
- Kartonschachtel
Der Grundaufbau musste natürlich erst einmal auf einem Breadboard getestet werden.
Der ESP bootet. Soweit so gut, nun zum spaßigen Teil…
Programmierung
Ich lasse im Normalfall meinen Code für sich sprechen, aber kurz zur Funktionsweise:
Der ESP ist als Client im lokalen WiFi-Netz angemeldet und kann per ESP8266TelegramBOT library Telegram Nachrichten senden und empfangen. Er prüft alle 15 Sekunden, ob er neue Nachrichten empfangen hat (z.B. /status
, o.ä.) und reagiert auf diese. Auf Knopfdruck sendet er eine vordefinierte Nachricht an einen vordefinierten Telegram-Chat (egal ob Gruppe, oder Einzelperson). Wenn die Versorgungsspannung unter eine bestimmte Schwelle fällt wird auch eine Telegram-Nachricht versandt, damit der Akku rechtzeitig wieder aufgeladen werden kann.
Wenn man die Funktionalität nun auf das Mindeste beschränken würde und nur aufwacht wenn der Knopf gedrückt wird, den ESP mit einer Hardware-Modifikation versehen würde, damit er in den Deep Sleep wechseln kann und einen 3,3V Spannungsregler mit sehr niedrigem Ruhestrom verwenden würde (deutlich niedriger als die ca. 3mA des 1117), dann ist eine Akkulaufzeit von mehreren Monaten durchaus möglich.
Nachdem der Code nun auf dem Breadboard-Aufbau einwandfrei funktionierte, natürlich erst nach dem Fixen einiger Bugs, ging es nun darum, den Aufbau permanent zu machen.
Hardware
Als Gehäuse dient eine alte Verpackungs-Schachtel für irgendwas Kleines.
Zuerst habe ich alles provisorisch eingepasst, danach die Aussparungen in die Schachtel geschnitten / gestochen und die Einzelteile verkabelt und verlötet. Zum Schluss habe ich noch alle Bauteile hochprofessionell mit Heißkleber fixiert.
Und somit war dieses Projekt auch vollendet.
Wie immer steht der Quellcode auf meinem GitHub Account zur Verfügung.
Edit: Hier geht es zu Part 2