Arduino + DHT11 = thermostaat en logger?

Arduino + DHT11 = thermostaat en logger?

Berichtdoor barrymossel » ma feb 22, 2016 4:09 pm

Zojuist twee DHT11 sensoren besteld (en een Arduino relais) om als leuk Arduino projectje de temperatuur en luchtvochtigheid te loggen. Daarnaast wil ik kijken of het nut heeft de bestelde warmtematten te schakelen bij een bepaalde temperatuur.
Ik lees her en der dat er hier wel wat mensen met ervaring op dat vlak zijn, maar ik kan niet zo gauw vinden hoe mensen bijvoorbeeld een grafiekje plotten (ik zag net plot.ly, echter is dat betaald bij meer dan zoveel API calls).

Iemand die me de goede richting op kan sturen?
barrymossel
 
Berichten: 212
Geregistreerd: wo feb 17, 2016 12:50 pm
Has thanked: 99 times
Been thanked: 171 times

Re: Arduino + DHT11 = thermostaat en logger?

Berichtdoor snx » di feb 23, 2016 12:23 am

Ik kan je hier niet me helpen, maar zal het zeker volgens als je je progressie hier post. Grappig dat mijn kinderen nu al op de middelbare school met Arduinos aan de gang mogen.. Ik mocht pas op de HTS iets met PLC's doen. :)

Maar, is er een reden dat de Arduino het grafische werk moet doen? Is dat niet meer een taak voor een pc die iets doet met gelogde data? Of is dat vloeken in de kerk voor Arduino developers? ;)
seizoen 2013, 2014, 2016, 2018
Avatar gebruiker
snx
 
Berichten: 1072
Geregistreerd: zo jul 21, 2013 10:38 pm
Woonplaats: Groningen
Has thanked: 747 times
Been thanked: 715 times

Re: Arduino + DHT11 = thermostaat en logger?

Berichtdoor Greeninside » di feb 23, 2016 7:59 am

Wil je de arduino een grafiek laten plotten en dit weergeven op een lcd schermpje of wil je de data importeren in bijvoorbeeld Excell en die de grafiek laten creëren? Dat 2de lijkt me iets eenvoudiger. Ook kan je prima met behulp van de sensoren een programmaatje schrijven om de warmtematten te schakelen.
Greeninside
 
Berichten: 86
Geregistreerd: wo sep 16, 2015 2:58 pm
Has thanked: 138 times
Been thanked: 68 times

Re: Arduino + DHT11 = thermostaat en logger?

Berichtdoor barrymossel » di feb 23, 2016 8:24 am

Ik ben zeer blij dat kinderen daar nu al vroeg mee aan de slag gaan (wist ik niet eens - hulde!). Mijn vrouw vond/vindt het onzin dat ze op de basisschool "al" met iPad bezig gaan. Zelf juich ik het volledig toe. Vooruitgang heet dat!

Gisteren heb ik e.e.a. uitgezocht en in principe gaat de Arduino niks grafisch doen. Het enige dat de Arduino mag doen is de metingen via de DHT11 (of DHT22 - duurder, maar accurater) en deze doorsturen via ethernet of wifi naar een database. Een app, website/dashboard mag dit dan visualiseren. Het eerste deel is niet zo moeilijk (de metingen):
DHT11 aansluiten op een digitale pin van de Arduino (ook een pull-up weerstand gebruiken). Dan kun je via de Adafruit DHT library zeer eenvoudig de metingen van luchtvochtigheid en temperatuur uitlezen. Naar wens kun je ook een licht sensor aansluiten op een analoge pin (had ik nog liggen).

Maar dan... De data moet dus opgeslagen worden in een database (tenminste als je ook historische data wilt tonen van de afgelopen dag(en) - en dat wil ik). En dan ook nog op een makkelijke én mooie manier getoond kunnen worden. Ik heb nu enkele mogelijke oplossingen, maar het is passen en meten.

  • Data opslaan in een MySQL database op eigen server. Voordeel is dat je de data op een eigen server hebt en er in principe alles mee kan doen wat je maar wilt. Echter een kant-en-klaar dashboard om e.e.a. te tonen is niet gratis beschikbaar, of niet echt mooi om te zien. Dus daar kan ik nog even wat naar zoeken. Heb weinig zin om nu het zelf te gaan programmeren.
  • Freeboard.io in combinatie met dweet.io. Real-time data is makkelijk te tonen en er is ook een dweet.io library beschikbaar, waardoor het Arduino programmeerwerk appeltje-eitje is. Ziet er op zich prima uit, alleen is er geen mooie optie om historische data te tonen zover ik zie. Graag zou ik namelijk voor laatste 24 uur, laatste week, laatste maand (o.i.d.) kunnen kiezen.
  • Adafruit.io ziet er wel interessant uit. Je stuurt via een library je data naar de servers van Adafruit en kunt die naar wens tonen in een dashboard. Wel nog erg beta, maar wel historische data (waar je vooraf moet opgeven over welke tijd de data getoond moet worden - bijv. laatste 24 uur).
  • Thinger.io, welke ook in beta is. Je koppelt via een API je Arduino aan Thinger en kunt via een dashboard je data tonen. Historische data gaat op basis van een X-aantal datapunten. Dus ook niet precies wat ik, maar in principe voldoende voor de toepassing.

Bij voorkeur zou ik dus een mooi en eenvoudig dashboard vinden dat gratis MySQL data toont: real-time en historisch waarbij gekozen kan worden voor een tijdsrange.

Greeninside schreef:Wil je de arduino een grafiek laten plotten en dit weergeven op een lcd schermpje of wil je de data importeren in bijvoorbeeld Excell en die de grafiek laten creëren? Dat 2de lijkt me iets eenvoudiger. Ook kan je prima met behulp van de sensoren een programmaatje schrijven om de warmtematten te schakelen.

Dat wat ik hierboven tikte dus ;)
Het schakelen kan ook inderdaad niet moeilijk zijn. Wanneer de temperatuur boven x-graden is, dan via een relais de warmtemat(ten) schakelen. Dus dat gaat wel lukken.
Laatst bijgewerkt door barrymossel op di feb 23, 2016 9:30 am, in totaal 1 keer bewerkt.
barrymossel
 
Berichten: 212
Geregistreerd: wo feb 17, 2016 12:50 pm
Has thanked: 99 times
Been thanked: 171 times

Re: Arduino + DHT11 = thermostaat en logger?

Berichtdoor Victorus » di feb 23, 2016 9:29 am

Je moet in elk geval een warmtemat gebruiken die ongeschakeld een te hoge temperatuur bereikt. Ik gebruik zelf een niet-geschakelde warmtemat die binnenshuis de propagator op 26 graden verwarmt. Zelfs als die een graadje naar boven of beneden zou variëren dan is het nog niet de moeite om hem te schakelen. Maar goed, als je een thermostaat wilt programmeren dan heb je extra een transistor, een relais, een diode en een weerstand nodig en ook een temperatuur sensor. De sensor kan een goedkope NTC met serieweerstand zijn.

De NTC's varieren weliswaar niet lineair met de temperatuur maar je gebruikt maar een heel klein temperatuurbereik, dus varieert daar de weerstand redelijk lineair met de temperatuur. Gewoon de weerstand meten bij bijv. 25 en 30 graden en daar tussen de weerstand lineair veranderend veronderstellen. De meetfout is dan denk ik nog geen 1 %. De warmtemat moet wel een temperatuur van boven 30 graden bereiken anders valt er niets te schakelen. Je kan het beste laten kiemen bij omstreeks 27 graden.

Het loggen is eenvoudig. Je stuurt bijv. elk kwartier de temperatuur en de vochtigheid naar het geheugen en leest dat om de zoveel tijd uit. Als je bijhoudt hoe laat je begonnen bent met de meting dan kan je zelf te tijd van elke meting berekenen.
Victorus
 
Berichten: 493
Geregistreerd: wo aug 07, 2013 1:52 pm
Has thanked: 5 times
Been thanked: 121 times

Re: Arduino + DHT11 = thermostaat en logger?

Berichtdoor bartgrefte » di feb 23, 2016 10:46 am

barrymossel schreef:Bij voorkeur zou ik dus een mooi en eenvoudig dashboard vinden dat gratis MySQL data toont: real-time en historisch waarbij gekozen kan worden voor een tijdsrange.

Je zou iets met Highcharts kunnen proberen. Zie deze (enigszins gedateerde) howto: http://blueflame-software.com/using-hig ... and-mysql/ Je kan de howto wel volgen, maar hou er rekening mee dat Highcharts en MySQL sindsdien de nodige veranderingen hebben ondergaan en mogelijk niet alles exact zo moet als toen. Sommige commando's zijn mogelijk verandert/vervangen.

Highcharts kan grafieken zoals deze produceren op basis van een MySQL database:
Afbeelding
Tijd op de X-as, gemeten waarden op de Y-as.

Ik heb een webserver met MySQL en Highcharts op een Raspberry Pi draaien dat het stroomverbruik na elke ronde van de draaischijf in de kWh meter vastlegt en dan in grafiekjes zoals bovenstaande weergeeft.

Het is niet de meest makkelijke oplossing, maar als het eenmaal werkt, werkt het prima :)
Avatar gebruiker
bartgrefte
 
Berichten: 130
Geregistreerd: vr jul 27, 2012 10:29 am
Has thanked: 1 time
Been thanked: 36 times

Re: Arduino + DHT11 = thermostaat en logger?

Berichtdoor pieterbl » di feb 23, 2016 7:00 pm

Xively is een van de meest simpele online oplossing voor jouw uitdaging (freeware). http://www.instructables.com/id/Arduino ... e-from-DS/

Verbind je Arduino met internet (ethernet shield of wifi shield) en zorg ervoor dat de data online wordt gestreamd naar Xively. De website zelf (je kan deze beveiligen zodat alleen jij deze kan bekijken) kun je gebruiken voor je real-time en historische data (ik geloof tot 3 maanden terug). Je hoeft je dan ieder geval niet druk te maken over plotten etc, Xively doet dat voor jou.

Tip: voeg een softwarematige "Hysteresis" toe om het overmatig aan-en-uitschakelen van het relais rond je setpoint te voorkomen:

    // warmen
    if (!warm_on && bodemtemp <= (tempSetpoint - 1))
     {
       digitalWrite(Relay_2, RELAY_ON);
       warm_on = true;
     }
     else if (warm_on && bodemtemp >= tempSetpoint)
     {
       digitalWrite(Relay_2, RELAY_OFF);
       warm_on = false;
    }

   }

Avatar gebruiker
pieterbl
 
Berichten: 1155
Geregistreerd: vr nov 02, 2012 12:16 pm
Woonplaats: Renkum
Has thanked: 264 times
Been thanked: 345 times

Re: Arduino + DHT11 = thermostaat en logger?

Berichtdoor Victorus » do feb 25, 2016 6:42 am

Een hysteresis programmeren heeft alleen maar zin als je cyclustijd klein is. Temperatuur en vochtigheid veranderen maar langzaam, dus als je een cyclustijd van zeg 10 minuten aanhoudt dan heeft hysteresis programmeren geen zin.
Victorus
 
Berichten: 493
Geregistreerd: wo aug 07, 2013 1:52 pm
Has thanked: 5 times
Been thanked: 121 times

Arduino + DHT11 = thermostaat en logger?

Berichtdoor pieterbl » do feb 25, 2016 6:26 pm

Victorus schreef:Een hysteresis programmeren heeft alleen maar zin als je cyclustijd klein is. Temperatuur en vochtigheid veranderen maar langzaam, dus als je een cyclustijd van zeg 10 minuten aanhoudt dan heeft hysteresis programmeren geen zin.


Je hebt op zich gelijk, toch is het ook afhankelijk van je sensorgevoeligheid en het verwarmingselement.

DHT-11 kan wanneer het rond een halve graad zit toch snel omflippen. Als je een zwaar verwarmingselement hebt is een cyclustijd van 10 min ook niet ideaal.

Kortom ik geef de voorkeur aan software intelligentie ;-)
Avatar gebruiker
pieterbl
 
Berichten: 1155
Geregistreerd: vr nov 02, 2012 12:16 pm
Woonplaats: Renkum
Has thanked: 264 times
Been thanked: 345 times

Re: Arduino + DHT11 = thermostaat en logger?

Berichtdoor snx » do feb 25, 2016 8:36 pm

Beter nu vijf minuten extra programmeren dan over 4 maand uren debuggen waarom hij niet doet wat je verwacht, omdat een sensor een beetje neiging tot "klapperen" krijgt. Als ik alle tijd terug krijg die ik ben verloren door programmeurs die denken "dat komt toch nooit voor" kan ik lekker lang op vakantie.
seizoen 2013, 2014, 2016, 2018
Avatar gebruiker
snx
 
Berichten: 1072
Geregistreerd: zo jul 21, 2013 10:38 pm
Woonplaats: Groningen
Has thanked: 747 times
Been thanked: 715 times

Volgende

Keer terug naar Propagator/Kweekkast

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron