Entwicklung eines Innenraumsensors /Steuerung mit ESP32 und Nextion Display 7"

Begonnen von Tobias, 03 März 2014, 09:00:12

Vorheriges Thema - Nächstes Thema

justme1968

hallo tobias,

wie schon gemailt habe ich dein päckchen bekommen. auf dem breadboard schaut es zwar noch nicht sehr elegant aus aber anbei schon mal ein erstes bilder und ein kleiner film vom prinzip der bedienung.

was geht: panstamp, BMP085, DHT22, TEMT6000, LCD und rotary encoder sind zusammengesteckt.

im film sieht man die readings die live aktualisiert werden und sobald man am encoder dreht erscheint ein popup mit dem eingestellten wert. wenn man 2 sekunden nichts ändert verschwindet das popup und der wert wird an fhem gesendet. die readings sowieso regelmäßig.

prinzipiell spielen die teile also alle zusammen. und es ist auch alles schnell genug das man es interaktiv bedienen kann. du kannst also deine bessere hälfte drauf los lassen und dann später damit die soll temperatur einstellen lassen.

die anzeige muss natürlich noch hübsch gemacht werden, icons dazu, das senden von info von fhem aus an das display, eine menüstruktur um mehr als nur einen wert einstellbar zu machen und noch ein paar dinge die mir so einfallen.

die beleuchtung vom encoder und die beiden luft sensoren fehlen noch. die hintergundbeleuchtung wird noch nicht gedimmt. den ram chip hab ich auch noch nicht dran.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Tobias

Wow... Andre, bis du am WE bei dem schönen Wetter auch rausgekommen? Oder hast du den Laptop mit in den Garten genommen? Respekt... Ich sehe auch das du es im Querformat hinbekommen hast... :)
Du siehst, mit dieser Platine, insbesondere TFT und RotEnc hat man fast unendlich viele Möglichkeiten...
zb. für draußen: ohne Display und RotEnc als Umweltsensor
oder innen nur für die SollTemp mit TFT, RotEnc und DHT. Ohne TEMT,BMP und TGSxxxx Sensoren... (Die TGS sind auch die mit Abstand ab teuersten... TGS4161 (Co2) > 20€/Stück)

Was mir auch noch eingefalen ist, den BMP wird man i.d.R nur bei einer Installtion einsetzen, bei dem Rest ohne.. D.h. die Temp müsste bei fehlendem BMP natürlich vom DHT genommen werden.

@Peter/Gerhard: Ich habe die Schaltung auf Peters Berechungen hin geändert. Jetzt VCC=5V! Den einen Widerstand habe ich wie empfohlen etwas verkleinert von 30k auf 22k.
Schaut bitte nochmal abschließend genau drauf. Ich würde die Platine dann so In Auftrag geben... Wie gesagt, ich bin Wirtschaftinformatiker, kein Elektrotechniker. Habe keine Ahnung von Hardwareberechungen wie Ihr...

<offtopic an>
Am liebsten würde ich noch zusätzlich ein E-Technik Studium absolvieren, Atmel-Programmierung lernen und eine KFZ-Lehre machen. Da hab ich alles was man so im Leben braucht... Aber die Zeit, die Zeit.......Family und Kinder haben fast alles in Beschlag ;)
<offtopic aus>

Wenn Ihr möchtet lasse ich euch auch ein Exemplar der PrototypenPlatine zukommen, Als Dank quasi :)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

PeMue

Hallo Tobias,

folgende Anmerkungen:
- IC10B: die beiden Eingänge tauschen, sonst funktioniert es nicht
- R17 würde ich dann auch auf 22 k heruntersetzen (das ist ein Differenzverstärker, der sollte beide Widerstandspaare gleich haben)
Die Platine kannst Du dann so machen lassen, ein Ändern der Bestückung (bei gleichem Layout) geht ja immer.
Anmerkung zum Schaltplan:
Wenn Du die Symbole so zeichnest:
- Versorgung nach oben
- Masse nach unten (auch die Massesymbole)
- Signalfluß von links nach rechts
tust Du Dir vermutlich leichter, die Pläne zu lesen (so geht es mir, trotz oder vielleicht wegen Elektrotechnik Studium).

ZitatWenn Ihr möchtet lasse ich euch auch ein Exemplar der Prototypen Platine zukommen, als Dank quasi.
Es kann durchaus sein, dass ich mir einen solchen Sensor zulegen werde, bzw. bei der Inbetriebnahme meine Bugs ausbügeln muss. Aber zuerst möchte ich mal den ganzen Funktionsumfang des Sensors verstehen ...

Bezüglich Kalibrierung bin ich immer noch neugierig ;D

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Tobias

#78
Umbau und neuer Versuch... Jetzt i.O.?

Ich habe im Datenblatt bzgl Kalibrierung nur gelesen, das der Nullpunkt ermittelt werden muss. Also bei sauberer Luft die Ausgangsspannung als EMF1 merken und die gemessene Spannung EMF2 im Folgenden davon abziehen...
Ich habe den Beitrag vorher schon nicht ganz verstanden was du mit Kalibrierung der Steigung meinst. Die Gerade im Datablatt ist doch linear steigend?

Edit: Hab das Layout jetzt auch angepasst, 3 Widerstände musste unter die Platine
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

justme1968

ich hab erst mal den garten auf den kopf gestellt damit ich überhaupt draussen sitzen konnte. der sketch war dagegen ausruhen. und es ist ja wirklich noch einiges zu tun.

ZitatDu siehst, mit dieser Platine, insbesondere TFT und RotEnc hat man fast unendlich viele Möglichkeiten...
des wegen hab ich den ja auch vorgeschlagen :)

alle teile wie sensoren und lcd und encoder sind aus dem sketch raus konfigurierter. wenn kein BMP da ist wird automatisch die temperatur vom DHT genommen. welche features in den sketch rein kompiliert sind kann man über die SWAP hardware version jederzeit auslesen.

vielleicht sollten wir mal anfangen ideen für features und die bedienung zu suchen. mir fällt unter anderem ein:

- welche messwerte sollen wo in welcher größe und farbe wie angezeigt werden
- wie oft sollen die sensoren abgefragt werden? wie oft sollen aktuelle werte auf dem tft angezeigt werden?
- konfigurierbares dimmen des tft abhängig von helligkeit und/oder zeit
- verwende des tft als status display für fhem
- nachrichten temporär anzeigen oder auf dauer bzw. bis sie über den encoder bestätigt werden
- grafiken/plots/vergangene messwerte abrufen
- grenzwerte für messungen und was soll beim über-/unterschreiten passieren
- konfiguration aller parameter über funk/fhem
- konfiguration aller (oder der wichtigsten) paramter über das tft und den encoder

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

stgeran

Sorry für die Verspätung. Das Ganze steht und fällt mit der Reverenzspannung (5V Versorgung). Im Wurst Käse Fall müssen wir da noch eine Reverenzspannungsquelle einsetzen. Ähnlich LM336 (2,5V)
Frage: Was bedeuten die violetten Kästchen mit dem Kreuz im Layout? Und brechen die äusseren vier Bohrungen nicht am Rand durch?
Gruß Gerhard
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

Tobias

Du kannst ja mal ins Datenblatt des tsl 2450 schauen ob die Spannung stabil bleibt. Die violetten Kästchen sind hinweise auf enge Leiterbahnen.

Gesendet von meinem ALCATEL ONE TOUCH 997D mit Tapatalk

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

stgeran

Ich hoffe nicht, das das was ausmacht
Modelle mit Ausgang 1.2 bis 6.5 V: 50 mVpk-pk max.
Verhalten bei Lastwechsel (Lastsprung 50%) 150 mV max. (Scheitelwert Änderung)
Der Panstamp ändert sicher seinen Stromverbrauch während des Betriebs. Die beiden Heizungen der Luftsensoren dürften dagegen immer gleich viel Strom verbrauchen.
Ich will nicht in den Krümel suchen, bitte aber auch die anderen wenn möglich diese Punkte zu entkräften. Vielleicht höre ich ja auch die Flöhe husten.
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

PeMue

Hallo,

jetzt ist der TGS4161 aus meiner Sicht OK. Die Werte schaue ich mir noch mal an.
Kalibrierung: Den Nullpunkt bekommst Du mit "guter" Luft hin. Aber bei 3500 ppm ist dann die Differenz zum Nullpunkt zwischen 44 und 72 mV, die hoch verstärkt werden, also fast 100 % Unterschied. Wo bekommst Du als Referenz definiert "schlechte" Luft her?

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Tobias

Zitat von: PeMue am 31 März 2014, 22:52:42
Kalibrierung: Den Nullpunkt bekommst Du mit "guter" Luft hin. Aber bei 3500 ppm ist dann die Differenz zum Nullpunkt zwischen 44 und 72 mV, die hoch verstärkt werden, also fast 100 % Unterschied. Wo bekommst Du als Referenz definiert "schlechte" Luft her?

Hi Peter,
schwierig.. ;)
Allerdings bin ich davon ausgegangen das die Eingangsschwankung zur Kalibrierung korreliert mit der Differenzspannung bei 3500ppm
Also:
- Nullpunkt mit 350ppm bei 220-470mV
- Differenz zum Nullpunkt bei 3500ppm bei 44-72mV
Wenn Also Nullpunkt bei 220mV liegen sollte, so ist schlechte Luft mit 3500ppm bei 44mV
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

stgeran

Ich schon wieder.
- Nullpunkt mit 350ppm bei 220-470mV
- Differenz zum Nullpunkt bei 3500ppm bei 44-72mV
Wenn Also Nullpunkt bei 220mV liegen sollte, so ist schlechte Luft mit 3500ppm bei 44mV

Ist dann nicht 3500ppm mit einer Differenz vom Nullpunkt von 44-72mV ein Betrag von 220mV MINUS 44-72mV???
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

Tobias

#86
Hi Andre,
Zitat von: justme1968 am 31 März 2014, 17:52:21
vielleicht sollten wir mal anfangen ideen für features und die bedienung zu suchen. mir fällt unter anderem ein:

- welche messwerte sollen wo in welcher größe und farbe wie angezeigt werden
- wie oft sollen die sensoren abgefragt werden? wie oft sollen aktuelle werte auf dem tft angezeigt werden?
- konfigurierbares dimmen des tft abhängig von helligkeit und/oder zeit
- verwende des tft als status display für fhem
- nachrichten temporär anzeigen oder auf dauer bzw. bis sie über den encoder bestätigt werden
- grafiken/plots/vergangene messwerte abrufen
- grenzwerte für messungen und was soll beim über-/unterschreiten passieren
- konfiguration aller parameter über funk/fhem
- konfiguration aller (oder der wichtigsten) paramter über das tft und den encoder
Im Anhang ein paar Folien wie ich mir das Vorstelle. Die Homescreen´s und SollTemp aus meiner Sicht Prio1.
Wie of die Messwerte nach FHEM gesendet werden sollen, sollte per set einstellbar sein. So wie es im Soilmoisture Sketch auch schon ist. Intern abgefragt sollten sie IMHO alle 10sek oder weniger und entsprechend auch auf dem TFT aktualisiert werden.
Wie du auf den Screens siehst, steht nirgendwo die Lichtintensität. Diese sollte nur an FHEM übertragen werden bzw das TFT automatisch danach gedimmt werden. Max-und Min-Brightness sowie die Abhängigkeitskonstante könnte im nächsten Schritt per fhem-Set konfigurierbar gemacht werden.

Ein kleines Feature, sichtbar im Home2 Screenshot: die Solltemperatur wurde von FHEM per "Set" verändert. Weiterhin wurde von FHEM die WindowOpen Meldung gesendet, sichtbar als kleines Icon im blauen Fenster der SollTemp. Ich denke das man beides zusammen in einer Msg senden könnte: Solltemp + optional WindowOpen(0,1).

Wichtig: die eingestellte Solltemp sollte im NVSRAM Chip gespeichert werden, nach einem Stromausfall muss der vorherige Zustand wieder hergestellt werden ;)

Grenzwerte und Aktionen würde ich eher in FHEM sehen.
Ich denke es ist auch sinnvoll dafür ein eigenens Modul zu schreiben, ähnlich dem RGB-Driver... Habe mich aber damit noch nicht auseinandergesetzt.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

justme1968

#87
anbei ein video vom aktuellen stand:

- das layout ist an deinen folien angelehnt.
  eine 1:1 umsetzung geht nicht weil die auflösung des displays viel geringer ist als dein entwurf
  und der font auch andere andere proportionen hat

- du siehst wie der panstamp bootet und das display initialisiert

- wenn man am encoder dreht wird desired eingestellt.
  grenzen und schrittweite sind konfigurierbar

- wenn eine nachricht kommt erscheint ein popup. in diesem fall ohne timeout

- auf knopfdruck verschwindet die nachricht

- desired steht auf off
   für ein fenster icon wie im vorschlag ist die auflösung zu klein

- wenn man am encoder dreht wird desired wieder eingestellt

- alle werte die du siehst werden live aktualisiert.
  der temperaturanstieg am ende ist mein finger auf dem bmp

- für alle messwerte gibt es einen konfigurierbaren korrektur offset

- vorder- und hintergundfarbe sind konfigurierbar

mal sehen wie viel noch in den sketch passt. langsam sollte ich mal etwas optimieren sonst ist bald schluss :)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Tobias

#88
Ich sag nur: Großes Kino..... :)
Klappt denn das Dimmen gem. TEMT schon?
Ich mach heute die Platine fertig und bestell mal eine Prototypenauflage von 10stk. Habe gestern extra nochmal das Gehäuse ausgemessen.
Ich denke in KW16 sollten diese dann da sein :)

Edit: gut wär es, wenn CO2 bzw VOC nicht bestückt ist, dieses auch nicht auf dem Display erscheint.
Der Smiley muss kommen sobald CO2 und/oder VOC bestückt ist.
Wir müssen uns auch noch Gedanken machen wir wir jetzt aus den Ausgangsspannungen einen ppm-Wert erhalten.

@Gerhard,Peter: könnt Ihr aus dem Verstärkungsfaktor eine Formel ableiten um aus VDD -> ppm bzw EMF2 zu erhalten?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

DJAlex

Ich beobachte die Fortschritte hier schon eine Weile. Wenn Ihr jemand zum testen braucht stelle ich mich gern zur Verfügung. Ich bin von dem Funktionsumfang jetzt schon begeistert.

Ich hab mir vorsichtshalber schon mal zwei Panstamps bestellt. Würd mich freuen wenn ich bei euch mittüfteln darf. Wenn Ihr mir sagt wo ich Infos zu dem VOC sensor finde frag ich mal unseren Messtechnik spezi wie die des bei Professionellen Systemen berechnen.