NEWS
Wie SDS011 / SPS30 Staubsensor mit I2C über LAN zu IOBroker?
-
@ralla66 Mit Tasmoto kenne ich mich NULL aus.
Arduino uno mit huckepack LAN und dann mit dem MQTT-Adapter, wurde hier schon diskutiert...
https://forum.iobroker.net/topic/11745/temperatursensor-über-arduino-mit-ethernetshield-auslesen
MQTT wäre dann nicht so schwierig
-
werde mal mit Tasmota weiter forschen, wobei TX Daten bereit zustellen nicht das Problem ist.
Bleibt Data TX nach Serial to Lan.
Sollte so was sein wo man die Lan Einstellungen am Serial to Lan Adapter einstellt.
Adapter -
Ich habe den SDS011 über das bekannte Feinstaubsensor Projekt nachgebaut. (Luftdaten.info glaube ich..)
Dafür gibt es auch einen Adapter - damit hat du die Werte direkt in dp's in ioBroker.Alternativ (ohne ioB Adapter) über die API des ESPs an dem der Sensor hängt oder die Influx DB in die er seine Werte speichern kann...
Mittels des Adapters:
-
das würde ja mit Tasmota ESP und Mqtt nach Sonoff Adapter auch gehen.
Ist ja Wlan. Gesucht Lan -
@ralla66 said in Wie SDS011 Staubsensor mit USB zu LAN im IOBroker einbinden?:
Ist ja Wlan. Gesucht Lan
Sorry, übersehen.
Alternativ gibts z.B. den ESP ja auch mit LAN:
WT32-ETH01 ESP32 Modul mit Ethernet/Bluetooth/WiFi -
Danke für die Mithilfe, davon lebt ein Forum
Serial to Lan gibt es ja Routinen, aber nicht für diesen Sensor. -
@ralla66 Wie wärs denn damit?https://wiki.dfrobot.com/Gravity_PM2.5_Air_Quality_Sensor_SKU_SEN0460
Dazu das ethernet board, das pubsub-library und installiert den MQTT-Adapter in ioBroker.
-
schau ich mir an,
hatte mir mal den USR-TCP-232-302 angeschaut. Habe dann mal zum testen
der USR-TCP-232-T2 bestellt, dieser soll ja per VCOM Konfigurierbar sein.Nachtrag, sowas geht natürlich auch, ist aber nicht mein Weg da ich alle Sensoren
Möglichkeiten die Tasmota ESP bietet per Serial to Lan senden möchte. -
bissl weiter gemacht,
Data TCP kommt über NodeRed in IoBroker im Datenpunkt an.
Läuft -
@ralla66 said in Wie SDS011 Staubsensor mit USB zu LAN im IOBroker einbinden?:
bissl weiter gemacht,
Data TCP kommt über NodeRed in IoBroker im Datenpunkt an.
LäuftJa SUPER!
Du hast also den RS232 zu LAN-Adapter ins LAN eingebunden, liest den Wert über nodered ein und übergibst den Wert an eine, in den Objekten, selbst erstellte Variable.
Das ist schonmal super!Wie geht das dann weiter mit Werten aus einem Sensor?
Brauchst Du einen Sensor mit UART? und schließt ihn an einen ESP32 mit Tasmota an? -
Der Rest soll ja im ESP erfolgen. Der Tasmota ESP hat ja die Sensordaten im Speicher.
Diese werden dann per Tasmota ESP Scripting an den ESP Ausgang TX gesendet.Dann ist der Weg:
Sensordata -> ESP Speicher -> ESP Ausgang TX -> Serial to Lan -> NodeRed -> DatenpunktLeider habe ich diesen Sensor nicht und werde deshalb dies mit einem Temperatursensor
DHT 11 testen müssen.Nachtrag:
Dein Sensor SDS011 ist ja per Tasmota ESP anschließbar, dann hat Tasmota ja die Daten im ESP Speicher.
Wir ändern ja nur den Weg von WLan nach Lan
Da ja viele Iobroker Adapter TCP als Input benötigen können mit diesem Weg viele Devices
angeschlossen werden wie Modbus 485, Serial 232 usw. -
@ralla66 Klingt gut!
Bei meinen Recherchen zu verschiedenen Feinstaubsensoren, habe ich festgestellt, dass der SDS011 leider KEIN PM1 misst. Und wenn ich schon den Aufwand betreibe, dann will ich auch die kleinen Stäube messen können. Klingt doch einleuchtend, oder?
Alternative Sensoren gibt es von Gravity, Sensirion usw.... ABER - sie haben I2C.....
Für I2C gibt es auch so einen Adapter wie Du so einen hast.
Die Frage ist, ob es nicht möglich ist den I2C oder UART direkt vom Sensor einzulesen, ohne einen ESP nutzen zu müssen!?Edit: Ich meine direkt mit dem RS232/I2C etc. Adapter zu LAN
-
prüfe mal welche anderen Sensoren mit Tasmota laufen.
I2C ist egal, die sollten aber mit Tasmota laufen.Sollten diese mit RS232/I2C etc. Adapter LAN laufen, teste sie.
Ist ja viel einfacher.
Viel Spass damit -
DHT11 am Tasmota ESP der die Temperatur am GPIO TX per Serial sendet.
Baudrate 9600 8N1
ESP8266
Jetzt noch den Serial to Lan Adapter testen.Script :
>D temp=0 hum=0 tau=0 >B so(3 1 9600 8N1 1024) >T temp=DHT11#Temperature hum=DHT11#Humidity tau=DHT11#Dewpoint >S if upsecs%10==0 then =>serialsend {"Temperature":%temp%,"Humidity":%hum%,"Dewpoint":%tau%} print ---- SEND Serial to hterm ---- endif
Telenetrieperiode ist 10
Serial alle 10 Sekunden naxh hterm
-
@ralla66 Gute Arbeit!
Habe leider erst heute Deinen Post gesehen
Damit ich das richtig verstehe....
Du hast in Tasmota die GPIO zugeordnet und wo auch immer das Script reingeladen. Dann bekommst Du die Werte in Tasmota angezeigt.
Dann hast Du ein Terminalprogramm geöffnet und die Adresse vom ESP eingegben.
Daraufhin wird Dir der Daten-Stream fortwährend angezeigt.
Somit ist der Beweis der Übergabe erbracht.Wie macht das dann der serial zu LAN Adapter? Was macht der aus dem Datenoutput?
Eine Weboberfläche wird er wohl nicht haben um Werte zuweisen zu können, oder?
Abruf per NodeRed mittels IP und Port (den man ja auch erstmal wissen muss...)?Ich habe mir den Sensirion SPS30 bestelllt (UART und I2C) und den 2CH UART to Ethernet Converter. Einen RasPi 4b habe ich noch hier.
Übrigens, man kann ja weitere ioBroker clienten beim "Master" anmelden.
Bedeutet, dass ich den SPS30 auch direkt an einen RasPi mit LAN verdrahten kann und auf den Raspi ioBroker lade. Mit dem I2C - Adapter sollte es dann möglich sein, die Werte als Objekt zu bekommen. Ein RasPi 3b kostet ca. 34€ und hat LAN schon an Bord.
Der ESP8266 (laufen bei mir 3 Stück) kostet ca. 10€ plus den serial zu LAN Adapter...oder kann man auch einen ESP mit LAN nehmen...???Der Vorteil des ESP liegt natürlich auf der Hand und wird hier gut beschrieben: https://www.raspberry-pi-geek.de/ausgaben/rpg/2016/02/mikrocontroller-esp8266-fuer-automationsaufgaben-im-iot/
-
Halleluja
https://tasmota.github.io/docs/SPS30/SPS30 + ESP32 Ethernet + Tasmota MQTT -> IOBroker MQTT = müsste doch funktionieren!!!
-
der Sensor geht auch
-
Da stehts doch ....
https://github.com/thryvos/Tasmota-WT32-ETH01Dann müsste man doch auch MQTT in ioBroker nutzen können.
-
Jetzt müsste ich nur noch wissen ob WT32-ETH01 oder Olimex ESP32-POE?
-
Ich habs geschafft
Hier mein Bericht:
Hardware:
1x Sensirion SPS30 (Wichtig: Kabel mit Stecker nicht dabei, man braucht einen JST 1.5 ZH 5 Pin Steckverbinder )
1x WT32_Eth01
1x USB zu UART Adapter
Kabel (Jumper wire Kabel female to female)Zuerst habe ich mir folgende Seite angesehen: https://github.com/thryvos/Tasmota-WT32-ETH01/tree/main?tab=readme-ov-file
Dort sieht man den Aufbau der Kabelverbindungen zwischen dem USB zu UART und dem W32-Eth01.Hier mein Aufbau:
Strom DC 5V kommt über ein USB-Netzteil
Dann USB-Kabel am roten USB zu UART Adapter anschließen und los gehts....Aber wie?
Man braucht eine Software um die seriellen-Daten über USB schicken zu können.
Die hier hatte ich zuerst: https://github.com/arendst/Tasmota/issues/9496#issuecomment-750148023
Damit konnte ich zwar den W32-Eth01 zum Leben erwecken mit LAN und Wifi aber keine Verbindung zum SPS30 herstellen.
Dann kam ich auf Otto Vielen Dank OTTO!!!
https://heinz-otto.blogspot.com/2021/06/tasmota-firmware-selbst-gebaut.html#:~:text=Hintergrund%3A Im Hintergrund wird die,komplette Datei für später herunterladen.&text=Im letzten Punkt wird die,ausgewählt und die Kompilierung gestartet.Ich ging nach Ottos Anleitung vor und erweiterte meinen Github-Account um Gitpod.
Damit konnte ich dann zum TasmoCompiler v11.2.1 gelangen, um dort die nötigen Einstellungen für "meine" Tasmota-Firmware zu treffen.
#define USE_ETHERNET // Add support for ethernet (Currently fixed for Olimex ESP32-PoE) // WT32_ETH01 #define ETH_TYPE 0 // [EthType] 0 = ETH_PHY_LAN8720, 1 = ETH_PHY_TLK110/ETH_PHY_IP101, 2 = ETH_PHY_RTL8201, 3 = ETH_PHY_DP83848, 4 = ETH_PHY_DM9051, 5 = ETH_PHY_KSZ8081 #define ETH_ADDRESS 1 // [EthAddress] 0 = PHY0 .. 31 = PHY31 #define ETH_CLKMODE 0 // [EthClockMode] 0 = ETH_CLOCK_GPIO0_IN, 1 = ETH_CLOCK_GPIO0_OUT, 2 = ETH_CLOCK_GPIO16_OUT, 3 = ETH_CLOCK_GPIO17_OUT #define USE_SPS30 // [I2cDriver30] Enable Sensiron SPS30 particle sensor (I2C address 0x69) (+1.7 code)
Mit dem ESP-Flasher-Windows-x64.exe habe ich dann die erzeugte Tasmota32.bin auf den WT32-Eth01 flashen können.
Hier die Firmwaredatei: tasmota32.bin
Dann habe ich den SPS30 angeschlossen:
Der WT32 war nun im Netzwerk vorhanden, unter 192.168.1.69
Folgendes habe ich eingestellt:
Das muss da rein:{"NAME":"WT32_ETH01","GPIO":[1,1,1,1,1,1,0,0,1,0,1,1,3840,576,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1],"FLAG":0,"BASE":1}
Hier bitte aufpassen!!! "Also, if using Ethernet, I2C works only with:
IO32 (marked on the board as CFG, “pin 2” according to page 9 ) configured as SCL;
IO33 (marked on the board as 485_EN, “pin 3” ibid.) configured as SDA."Hier habe ich das wifi deaktiviert
Meine Einstellungsdatei: Config_tasmota_AB0F20_3872_13.3.0.dmp
Das Ergebnis:
Dann die Einrichtung in ioBroker:
Unter Adapter einen weiteren MQTT-Adapter installiert.
Vielen Dank an alle, die hier eine super Vorarbeit geleistet haben!!!!
Als nächstes werde ich den Sensor außen an der Hauswand montieren und in NodeRed die Bedingungen für das Abschalten der Lüftungsanlage festlegen.....
#Keine Ahnung, wie ich diesen Info-Kasten unten los werde - muss sich irgendwie über einen obigen link generieren#