feinstaub
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| feinstaub [2021/04/27 14:31] – varnholt | feinstaub [2021/04/28 11:02] (aktuell) – varnholt | ||
|---|---|---|---|
| Zeile 18: | Zeile 18: | ||
| Ich musste noch serial installieren, | Ich musste noch serial installieren, | ||
| sudo python3 -m pip install pyserial | sudo python3 -m pip install pyserial | ||
| - | | + | |
| + | |||
| + | Ach verflixt... geht natürlich nicht. man muss es in python2 machen, sonst kommen Fehlermeldungen der Art: **TypeError: | ||
| + | |||
| + | Damit es in python3 geht, muss man das, was man an die serielle Schnittstelle schickt, erst in ein Byte-Array wandeln. Dann kann man natürlich nicht wie bei Springs mit + concatenieren. Abfragen auf einzelne Zeichen müssen dann natürlich auch wieder entweder als Byte abgefragt werden, oder als Zahl. Hier mal die Änderungen zwischen den beiden Dateien. | ||
| + | |||
| + | < | ||
| + | < # | ||
| + | < | ||
| + | |||
| + | < ret = bytearray() | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < for x in data: | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < #ret = " | ||
| + | 61,62c52 | ||
| + | < # | ||
| + | < | ||
| + | 68,69c58 | ||
| + | < # | ||
| + | < | ||
| + | 74c63 | ||
| + | < while byte != b" | ||
| + | < # | ||
| + | 91c80 | ||
| + | < if d[1] == 0xc0: | ||
| + | > #if d[1] == " | ||
| + | </ | ||
| + | |||
| + | PROBLEM: Schlafen legen des Sensors funktioniert - aber nicht das aufwachen. es wird der korrekte - lange - string gesendet. nach dem wachwerden ' | ||
| + | |||
| + | LÖSUNG: Oh mann, ein paar ser.reset_input_buffer(); | ||
| + | |||
| + | Auch die Ausgabe an MQTT hat nicht funktioniert. Es kam wieder das Problem mit bytes: | ||
| + | TypeError: a bytes-like object is required, not ' | ||
| + | TypeError: a bytes-like object is required, not ' | ||
| + | Und wieder eine Korrektur: | ||
| + | < | ||
| + | child = subprocess.Popen(cmd, | ||
| + | data=json.dumps(jsonrow) | ||
| + | child.communicate(data.encode()) | ||
| + | |||
| + | #with subprocess.Popen(cmd, | ||
| + | # json.dump(jsonrow, | ||
| + | </ | ||
| + | |||
| + | Das Umwandeln der Roh-Werte in AQI macht er mit JavaScript auf [[https:// | ||
| + | |||
| + | |||
| + | Weiter geht es dann mit dem ESP32. mehr Infos dazu hier: https:// | ||
| + | |||
| + | Stand April 2021 | ||
feinstaub.1619526690.txt.gz · Zuletzt geändert: 2021/04/27 14:31 von varnholt
