Projekt:door-status: Unterschied zwischen den Versionen
ChrisC (Diskussion | Beiträge) (Software Update Prozedur dokumentiert) |
ChrisC (Diskussion | Beiträge) |
||
Zeile 20: | Zeile 20: | ||
! Pin !! Verwendung | ! Pin !! Verwendung | ||
|- | |- | ||
| GPIO4 || DHT11 Datenleitung | | <s>GPIO4</s> || <s>DHT11 Datenleitung</s> | ||
|- | |- | ||
| GPIO12 || Schalterkontakt | | GPIO12 || Schalterkontakt | ||
|- | |- | ||
| GPIO14 || Pullup-Spannung für Schalter | | <s>GPIO14</s> || <s>Pullup-Spannung für Schalter</s> | ||
|- | |- | ||
| GPIO15 || DHT11 Versorgungsspannung (3.3V) | | <s>GPIO15</s> || <s>DHT11 Versorgungsspannung (3.3V)</s> | ||
|- | |- | ||
| GPIO16 || Verbindung zum Reset-Pin für deepsleep | | GPIO16 || Verbindung zum Reset-Pin für deepsleep |
Version vom 11. September 2017, 21:51 Uhr
Projekt:door-status | |
Betreuer*In | ChrisC |
Jahr | 2017 |
Läuft auf | tuerstatus.intern.k4cg.org |
URL | https://github.com/k4cg/door-status |
Mit diesem Sensor wird überwacht, ob die innere Tür im k4cg abgeschlossen ist oder nicht - ein sicheres Indiz, ob das k4cg offen oder zu ist. Zudem gibt es noch einen Temperatur-/Feuchtesensor, damit das Device sich nicht ganz so sehr beim Abfragen eines Tasters langweilt.
Hardware
Der Hardwareaufbau ist im Bild rechts dargestellt. Das ESP8266-Board in der Mitte wird über ein Kabel von unten mit 5V versorgt, ein kreativ verlöteter Regler auf der Rückseite der Platine (LM1117) wandelt die Spannung auf die benötigten 3.3 Volt. Der Türsensor (Schalter) ist über die drei Kabel von rechts angeschlossen. Der Schalter ist ein Umschalter, von dem nur zwei Kontakte als Schließer verwendet werden. Wird der Schalter durch den eingeführten Türriegel geschlossen, verbindet dieser den IO Pin mit Masse und zieht hierdurch den internen Pullup auf Masse, sodass ein Low-Pegel im "zu"-Zustand zu messen ist und High-Pegel im "offen"-Zustand.
Die im Bild rechts gekennzeichneten Pins (Pin-Header, RM2.54mm) können mit einem USB-UART-Kabel verwendet werden, um eine Verbindung zur lokalen Shell (115200 Baud, 8N1) herzustellen, beispielsweise wenn das ESP keine automatische Verbindung mehr zum WLAN aufbauen sollte.
Pinbelegung:
Pin | Verwendung |
---|---|
GPIO12 | Schalterkontakt |
GPIO16 | Verbindung zum Reset-Pin für deepsleep |
Software
Beim Booten stellt der ESP eine Verbindung zum WLAN "k4cg-intern" her, synchronisiert die Zeit per NTP, fragt den Türsensor sowie den DHT11 ab und überträgt die Resultate im JSON-Format als POST-Request an "http://heimat:8000/" geschickt, danach geht das System für 5 Minuten in den Schlafmodus. Format:
Key | Value |
---|---|
door | "open" oder "closed" |
humidity | Luftfeuchtigkeit als Integer (0..100) |
tempDoor | Temperatur als Integer |
date_GMT | Datum/Zeit (Zeitzone GMT) im Format "YYYY-MM-DDTHH:MM:SS.000000" |
Software-Aktualisierung
Es kann per WLAN eine Verbindung hergestellt werden, sobald der ESP aufgewacht ist. Um die Verbindung zu erleichtern, wartet das Programm 60 Sekunden nach einer Statusübermittlung.
Vorgehen beim Verbinden (mit mpfshell, installieren über pip/pip3):
# mpfshell -c "open ws:192.168.178.9,PASSWORD" mpfs [/]> put boot.py mpfs [/]> put service.py ... mpfs [/]> repl >>> reboot()