Arduino, ESP32, Raspberry Pi datalogger voor 4x temp 1x vochtigheid

blackdog

Golden Member

Hi,

Voor mijn eigen werkomgeving en voor bij een klanten wil ik en logger systeemje hebben.
Het volgende wil ik graag wat hij doet:

*********************
Lucht vochtigheid

Luchtdruk

4 a 6 temperatuur sensoren, mag analoog zijn maar ook b.v. de DS18B20, maar het uitlezen is daarvan meestal traag met de basis code.

Het liefst een webserver om in te kunnen loggen en de gegevens uit te kunnen lezen, dus een ESP32 zal dan de voorkeur genieten.

Absoluut geen "Cloud" toepassing!

Opslag op diskje of in het flash geheugen als er voldoend lang kan worden opgeslagen(meet tijd en sensor hoeveelheid afhankelijk, dat weet ik)

Voeding kan uit een adapter, dus "powersave" is niet aan de orde.

*********************

Ik heb een uurtje gezocht naar projectjes die ik zo zou kunnen gaan gebruiken, maar weinig gevonden wat toepasbaar was.
Een project dat bijna deed wat ik graag wil, maar met maar 1 temperatuur sensor en dat is te weinig.

Dus weten jullie een project waarmee ik snel kan starten, ESP 32, diverse Teensys, en een paar wat snelelre Arduino's heb ik reeds
en natuurlijk een grote hoeveelheid verschillende tempratuur sensoren.

Een LCD keuren schermpje mag wel, maar de webserver functionalitijd is voor mij het belangrijkst.
Als er een systeem bestaat die een Service draait op een Synology of Raspberry Pi, dan vind ik dat eventueel ook toepsbaar.

Ik hoor graag of jullie projectjes kennen die aan mijn eisen voldoen.

Alvast bedankt en gegroet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

ESP32 Webserver met BME280 (Temperatuur, Luchtvochtigheid en Luchtdruk)

https://lastminuteengineers.com/bme280-esp32-weather-station/

en dan nog meerdere bmp180 voor (Temperatuur, Luchtvochtigheid)

https://microcontrollerslab.com/esp32-bmp180-web-server-arduino-ide/

Laat maar weten als je hulp nodig hebt bij het combineren van deze 2.

[Bericht gewijzigd door Roland van Leusden op maandag 19 oktober 2020 17:12:22 (44%)

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.

Je bedoelt misschien zoiets als bijgevoegd.
Dat zijn 2 van de 7 windows van mijn Node-Red dashboard, dat draait op een Raspberry pi 3B+. Node-Red vraagt de informatie iedere 2 min op.
Weerinformatie wordt o.a. van buienradar als json gehaald.
Sensoren (DS18B20, BMP280, AM2320, enz) zijn soms samen, soms apart aangesloten op verschillende Wemos D1 mini, daarvan heb ik ruim 20 her en der in huis en garage.
Alle data wordt opgeslagen op een micro sd kaartje in sqlite.
Erg leuk om dit te maken en er mee bezig te zijn voor een pensionado :), maar er gaan wel heel veel van de vrije uurtjes in zitten ;) .

https://www.uploadarchief.net/files/download/resized/20201019%201%20het%20weer.jpghttps://www.uploadarchief.net/files/download/resized/20201019%202%20cvshield.jpg

marcob

Golden Member

Heb je wat meer informatie? Op welke frequentie wil je de gegevens uitlezen en opslaan? Elke seconde of is per 5 minuten ook voldoende?

Hoelang wil je terug kijken, wil je drie weken geleden exact om 7:05 de temperatuur weten of zijn gemiddelden ook goed?

Je kunt bijvoorbeeld Domoticz nemen, hierop kun je verschillende temperatuur sensoren koppelen, via de GPIO of via WiFi. je kunt het Log op maximaal 7 dagen zetten, dan krijg je elke 5 minuten een waarde. Na de zeven dagen krijg je gemiddelden, met een min en max waarde.

https://www.domoticz.com/
Voordeel is alles is zo'n beetje klaar.

People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years
blackdog

Golden Member

Hi Kapee, :-)

Dat is een mooi stukje werk van jou!
Dat zou ik voor mijn huisomgeving ook wel leuk vinden, maar is iets te veel van het goede voro wat ik nodig heb.

Basis zou een BME280 of BME680 kunnen zijn en dan 4 tot 6 temperatuur sensoren die ik in een meetinstrumens of b.v. in een apparatuurkast en zijn omgeving kan aanbrengen.
Het liefst log in dan in op een webinterface (nogmaals geen Cloud en ook geen gebruik van Google font en/of Google API's enzo)
Als ik dan ingelogt ben zie ik graag een grafiek van de temperaturen en de gegevens van de BME280.
Vier tot zes lijnen in een grafiek moet te doen zijn ende BME280 kan in zijn eigen grafiek.

De prullaria interface voor een mobiele telefoon heb ik geen behoefte aan die je bij veel projecten ziet op het internet.
Als ik data bekijk, doe ik dat wel via grote schermen.
Deze week ook weer een zeer duur audio systeem geinstaleerd, alles moest via de mobiele telefoon, je bent verplicht je locatie aan te zetten op je telefoon,
anders kan je de versterker niet gebruiken!
En dan die menus op die kleine schermpjes, doe me een lol, heel snel krijg je vinger moeheid en dan niet het goede type. :+

Terug naar jouw software, petje af voor je werk, daar heb ik helemaal niet de tijd voor wat jij laat zien, jammer genoeg...

Roland,
De twee links is niet helemaal wat ik bedoel, ik zie graag grafiekjes van de temperaturen.
Het liefst direct zonder dat ik de data eerst moet downloaden of van een diskje moet halen.
Ik ben niet altijd in de buurt van de te meten omgeving, daarom wil ik web toegang hebben, en waar ik het wil gaan gebruiken heb ik VPN toegang om bij het lokale netwerk te komen.

Nog een puntje is dit, het moet redelijk klaar zijn, ik heb niet de tijd om erg veel uit te zoeken, mijn programmer skills zijn minimaal,
daarom vroeg ik ook om een project dat al redelijk aan mijn eisen voldoet, grote kans natuurlijk dat dit er niet is. :-)

Een simpele oplossing iz zoiets als dit, maar heeft geen lokale opslag:
https://www.electronic-software-shop.com/lng/en/hardware/network/abaco…

En deze man legt vaak goed uit wat hij gemaakt heeft en is vaak simpel aan te passen, alleen geen grafiek functie...
En vrij veel werk voor mij om meerdere sensoren aan te brengen in de code.
https://www.youtube.com/watch?v=aUSwEkJCIAA

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
blackdog

Golden Member

Hi marcob,

Eerste toepassing.
Zeg dat ik een apparatuur kast wil loggen hoe de temperaturen zijn over dag een nacht en b.v. het weekeinde.
Natte vingen, 5 dagen meettijd, dan heb ik alles wel afgevangen.
1x per 30 seconde de temperatuur meten lijkt mij wel voldoende.

Tweede toepassing
Dat is hier b.v. in mijn werkruimte.
Sensoren hangen aan de te meten apparatuur en de sample tijd is b.v. twee seconde (opwarmen van zeg koelplaat, trafo enz.)

Verder zou het makkelijk zijn al ik wat I/O zou hebben, b.v. in een apparatuurkast een ventilator extra inschakelen, reboot toetsje of zoiets.
Relais met vrije contacten twee stuks voldoende.
2x digitaal in voor een schakelaar om te zien of b.v. een deur is open gedaan of nog open staat van de apparatuur omgeving.

Vast bedankt voor jullie input.
Ik kijk nu even naar wat ik van Domoticz kan vinden.

Groet,
Bram

PS,

Ik denk dat dit iets is waar ik mee ga starten.

https://www.huizebruin.nl/domoticz/basis-instellingen-domoticz/

Dan kan ik direct wat i2c sensoren testen en kijken of ik het goed werkbaar vind.
Voldoende Pi's hier op voorraad van een ander project om me te testen. :-)

[Bericht gewijzigd door blackdog op maandag 19 oktober 2020 20:27:59 (14%)

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
marcob

Golden Member

Inderdaad goede site om mee te starten. Domoticz heb je binnen een kwartier draaien op een Raspberry PI. Hier op het forum ook meerdere gebruikers, dus hulp is aanwezig.

In Domoticz kun je wel elke minuut meten of elke 30 seconden, maar het wordt per 5 minuten weggeschreven in de database. Dus deze oplossing past goed voor de eerste toepassing, maar voor je tweede is het minder geschikt.

People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years
buckfast_beekeeper

Golden Member

Op 19 oktober 2020 16:45:57 schreef blackdog:
[...]
4 a 6 temperatuur sensoren, mag analoog zijn maar ook b.v. de DS18B20, maar het uitlezen is daarvan meestal traag met de basis code.
[...]

DS18B20 traag? Afhankelijk van je gevraagde resolutie kom je op een conversietijd van 94ms (9bit) tot 750ms (12 bit). Of je nu 1 of 100 sensoren gaat opvragen, deze conversietijd hoeft maar 1 keer (verzending 44h door de master). Uitlezen van de data gaat heel snel. Als je 1 keer elke 30 seconden wil meten, dan heb je ruim tijd zat. Zelfs bij je 2 seconden moet dat nog kunnen.

Waarom bewaren op elke ESP afzonderlijk? Laat ze gewoon een query versturen naar een database, met het unieke ID van de ESP er bij. Op een synology NAS is het geen rocket scene een database aan te maken. Gegevens kan je dan perfect uitlezen met een PHP pagina in het webserver deel.

Met een BME280 heb je ook de luchtdruk en de vochtigheid er bij. In I2C mode kunnen er maar 2 sensoren op 1 lijn. Alleen het LSB bit kan gewijzigd worden. Bij SPI heb je dan weer meer IO nodig.

Bij een ESP8266 zijn er niet veel IO om te gebruiken. Dan zal je richting ESP32 moeten of de uitgangen aan een shiftregister hangen.

Een ESP is te programmeren vanuit de Arduino omgeving.

edit: in snelheid gaat een Arduino nooit een ESP of pi benaderen. Een Wemos D1 ESP8266 draait intern op 80MHz of 160MHz.

Van Lambiek wordt goede geuze gemaakt.
blackdog

Golden Member

Hi,

marcob
Ik ben nu bezig een image aa nhet wegschrijven voor een Pi 3b en ga de handleiding van Huizebruin volgen.
Jammer dat het niet snelelr uit te lezen is, maar zoals je zegt, voor de eerste toepassing is het goed genoeg.

buckfast_beekeep
Snel is maar net hoe je het bekijkt, ik heb de DS18B20 gebruikt in oventjes op 12 bit.
Daar is hij toch echt niet snel genoeg voor, b.v. iedere 10msec de zelfde waarde uitlezen werkt niet goed voor de kleine oventjes waar ik mee bezig was.
Bij het meten van een kast vol met apparatuur, is de temperatuur meettijd niet zo'n probleem, zo snel zijn de veranderingen niet die gemeten moeten worden, of er moet brand zijn...

Verder heb ik maar één BMPe80 nodig, de rest van de temperatuur sensoren kunnen van een ander type zijn zoals de LM75 die acht adresen heeft.

Dank weer voor het meedenken!

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Als je de datahuishouding compact en zelfreinigend wil houden: kijk eens naar rrdtool.

Ik zou voor dit verhaal een PI pakken met Domoticz ben je toch klaar ? Alle 7 DS kunnen op 1 poort, Orange PI heeft EmmC, hoef je geen schijf te gebruiken, stick of SD is een no-go.

Let wel lange termijn grafieken werken op 5min, kan zijn dat het mss niet genoeg is.

Maar ik heb hier ook twee PI's met elk die 5 DS temp sensor eraan, werkt goed en snel qua uitlezen.

Alles met een knipoog ;-)
blackdog

Golden Member

Hi,

Pi + Domiticz draait, nu even alles updaten, wachtwoorden aanpassen enz...
https://www.bramcam.nl/Diversen/Domoticz-00.png

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
buckfast_beekeeper

Golden Member

Bij een uitlezing om de 10ms gaat er niet veel digitaal snel genoeg zijn. Dan ga je met een heel snelle ADC moeten werken. Als je weet dat de conversietijd 750ms is, dan weet je ook dat je 1 betrouwbare sample per seconde kan nemen. Voor normale toepassingen is 1sample/s meer dan snel genoeg.

Bekijk ik mijn database met BME280 gegevens (en fijnstof), die om de 2,5minuut een sample doorgeeft, dan zie ik nu een temperatuurvariatie van 0,15°C als grootste in de laatste uren.

Luchtdruk zelfde sample frequentie

Van Lambiek wordt goede geuze gemaakt.

Ik zou het niet gaan zoeken in domotica software ivm logging.
Rechtstreeks sensors aanroepen en alles zelf doen.
Hier al es gekeken? https://medium.com/initial-state/how-to-build-a-raspberry-pi-temperatu…

En btw het neemt evenveel tijd in beslag om node-red te installeren en te leren...

ASPA-tech.be

Volgens mij is de TSer er al ;)

Ik gebruik een bash script buiten domoticz om, voor de temp meting, kun je vinden op Domoticz forum, GPOI's, Domoticz is puur een database voor mij werkt goed, ik zou even niet weten waarom die als complete logging systeem niet voldoet, men hele huis is toch een log van max 1 jaar (250+ devices), mocht je idd minder dan 5min metingen willen, dan is het niet geschikt.

Script zal max 2s bezig idd, incl domoticz update, ik pol ze elke min.

Alles met een knipoog ;-)

In plaats van Domoticz zou ik Node-RED gebruiken om de sensoren uit te lezen. Daar kun je veel meer mee.
De data laat je dan wegschrijven in InfluxDB en maak je grafieken van met Grafana. Dan heb je veel beter leesbare grafieken dan in Domoticz en met een veel kleiner interval.

Zou ook allemaal op een Raspberry Pi moeten kunnen draaien.

blackdog

Golden Member

Hi,

RvEldijk

Dat ik er al ben, is wel erg vroeg... :)
Voorlopig ben ik niet echt blij door meerdere punten van het systeem.

Domoticz start niet goed uit zichzelf op, moet dit steeds met de hand doen, dit ondanks de bash commando's voor auto starten van Domoticz.
En waarom moet ik mijn locatie invullen in de config van Domoticz, dat ruikt naar data stelen!

i2c, kan maar met een paar sensoren werken en niet b.v. met de LM75, ik zal straks de BME280 eens proberen of alle sensoren die daar in zitten ook in Domoticz verschijnen.

Na aardig wat gefrut te hebben, net het 1-Wire systeem werkend gekregen, dus LM75 is nu niet meer direct nodig.

Wat plaatjes.

De RPI3b op een blaatje uit een datasheet van een HP voeding, alleen ter isolatie.
De RPI3b hangt aan mijn Service monitor via een HDMI kabel, er is ook een Logitech dongel op USB aangesloten voor het Logitech K400+ toetsenboard.

Ik heb een printje gemaakt om te testen met de DS18B20 sensoren, er kunen er 8 tegelijk getest worden.
Het tweede printje dat is aangesloten is de HUT21d temperatuur en vochtigheids sensor.
https://www.bramcam.nl/Diversen/Domoticz-03.png

.
Dit is de data van de HUT21d sensor sinds vannacht.
https://www.bramcam.nl/Diversen/Domoticz-02.png

.
En dit zijn de drie DS18B20 sensoren.
https://www.bramcam.nl/Diversen/Domoticz-01.png

.
En hier ben ik dus niet blij mee...
Ik heb een sensor vastgehouden zodat hij ruim 27C werd, bij het updaten van de devices list kon ik zien dat de senor ruim 27C was geworden, door constant de webpagina te verversen.
Wat ik hier zie in de gafiek is triest, dat de database eventueel 1x per 5 minuten wordt weggeschreven is niet zo'n probleem, maar de grafiek liegt tegen mij!
https://www.bramcam.nl/Diversen/Domoticz-04.png

.
Ik weet niet of dit is aan te passen, anders is het exit voor Domoticz wat mij betreft.
Weten jullie of dit te configureren is?

ThinkPad
Node-RED, nou... dat gaat hem niet worden te veel gedoe, ik heb geen bakken met tijd beschikbaar...

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
marcob

Golden Member

er zijn 10-tallen oplossingen die je kunt doen, met allemaal voordelen en nadelen. De TS, Blackdog geeft aan dat hij twee toepassingen heeft.

De eerste toepassing is het eenvoudig monitoren van een apparatuur kast. Dit zou ik gewoon met Domoticz doen. Er worden geen ingewikkelde loggings gevraagd. Misschien net zo belangrijk, binnen korte tijd heb je alles up and running, ook zonder veel ervaring.

Wat betreft de tweede toepassing, het realtime loggen van data, is Domoticz inderdaad niet geschikt. Hiervoor zijn betere oplossingen, met eventueel maatwerk. Helaas is dan wel de tijd voordat alles up en running is wat langer, zeker met minder ervaring.

People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years

maar de grafiek liegt tegen mij!

Hehe ik denk dat die een gemiddelde pakt, als die meer dan 15 min op 27 is dan, dan zie je het wel, vaak schommelen tempjes niet zo erg.

Volgens mij lastig aan te passen hoe ze dat berekenen, als je snel schommelingen hebt in temp, en wil dat weten, is Domoticz niet de oplossing.

Alles met een knipoog ;-)
marcob

Golden Member

Wanneer je met je muis over de grafiek gaat zie je de tijdstippen en waarden. En ja als de waarde op 13:03 27 graden was, maar op 13:05 weer 24 graden, dan schrijft hij 24 graden in de database. Weet namelijk niet zeker of het gemiddelde wordt genomen.

Nogmaals, het systeem is gemaakt als domotica, dus het monitoren van een temperatuur in een ruimte. Hier zal de temperatuur geleidelijke veranderen.

People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years

Weet namelijk niet zeker of het gemiddelde wordt genomen.

Ik ook niet maar dat denk ik alle temp van de 5min, en daarvan een gemiddelde, maar TSer weet het of is het 25 graden daarbinnen.

Je kunt ook inzoomen op een plaatje,....linkermuisknop vast en dan slepen zoals onderstaande plaatjes

Alles met een knipoog ;-)
Arco

Special Member

Dat er voor domotica gemiddeld wordt is logisch: allelei heel korte uitschieters tonen heeft geen tot weinig zin en is alleen maar verwarrend...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Ik heb hier net zoiets gebouwd om de stroom te loggen. Leest de data uit de P1 poort van de smart meter, en telt pulsen van een kWh tellertje op de zonnepanelen.

Draait op een ESP32, en logt op een SD geheugen kaartje. Goed voor (bijna) eindeloze metingen.

En heeft een ingebouwde webserver om de data te kunnen uitlezen.

Software heb ik gemaakt met de ESP-IDF devkit. Dat is wel even een puzzel, maar de belangrijkste funkties zijn beschikbaar in de vorm van libraries.
- Web-Server met WiFi
- Interface naar SD kaart
- FAT32 file system

blackdog

Golden Member

Hi,

korte uitschieters tonen heeft geen tot weinig zin en is alleen maar verwarrend...

Nou... ik denk daar heel anders over, ik wil zien als er b.v. een deur zou hebben open gestaan.
Of dat de zon wel of niet naar binnen schijnt enz, enz.

Ik vind het niet meer dan normaal dat ik de mogelijkheid heb de resolutie toe te passen.
Dat dit extra werk voor de software en/of computer is, dat is wel duidelijk, maar ik kan jullie wel zeggen dat ik dit "Apple gedrag" (wij bepalen wel wat goed is..) van de ontwikkelaars haat!

Wat ik lees op fora is dat er vooral één persoon deze mogelijheid tegenwerkt, dat b.v. 1-minuut sampletijd dit in de software komt, geen idee of deze persoon ook tot de ontwikkelaars behoort.

Het aantal negatieve punten wordt steeds groter voor Domotics...

De grafiek zoom functie lever geen betere data/resolutie op.

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

maar ik kan jullie wel zeggen dat ik dit "Apple gedrag" (wij bepalen wel wat goed is..) van de ontwikkelaars haat!

Maar verder alles wel goed ? :) Domoticz is gratis word door een geweldig team gemaakt, ik denk dat ze goed werk doen voor hun geld :) En ja je moet als ontwikkelaar keuzes maken, en daarmee "Apple gedrag" tonen ? Neem niet weg dat ze makkelijk een keuze optie kunnen inbouwen in settings, 1-5-10 sampletijd, bij 1 word men database wel 5x groter.

Het aantal negatieve punten wordt steeds groter voor Domotics...

Als het je tegenstaat moet je iets anders gaan pakken, maar ik kan ook zien wanneer de zon binnen schijnt of als ik een deur vergeten ben, ik kon wel eens zien of een deur even open geweest was, krijg je toch een piekje.

Aangezien je al hier bent, kun je het ook gewoon is even aankijken/testen.

Alles met een knipoog ;-)