Atag Qsolar online

Mijn Arduino gefotografeerd door de Iphone

Eenmaal besmet met het Arduino-virus, is het nu dan ook gelukt om de zonneboiler-combinatie online te krijgen! Momenteel moet ik nog e.e.a. afwerken, solderen en monteren, maar dat zal in de loop van het weekend wel lukken.

Met het nodige zoekwerk (dankzij Google e.v.a.), heb ik een mooie code ontdekt die relatief eenvoudig in te zetten is voor mijn doel.

Omdat ik het leuk vind deze kennis (die ik ook weer op internet gevonden heb) te delen, zodat er meer zonneboilers online gezet kunnen worden deel ik de code met jullie 🙂

Pachube

Ik maak gebruik van de services die Pachube verleent. Met een eenvoudige registratie van een (gratis) account kun je je zonneboiler aldaar aanmelden. De data die je er heen stuurt worden naar grafieken omgezet. Deze output kun je dan zelf weer op bijvoorbeeld je website tonen. Een andere website die data van je Arduino kan hosten is Exosite.com. Hier heb ik echter nog niet de code voor aangepast, maar met deze opzet moet het toepasbaar maken voor Exosite niet zo’n probleem meer vormen, denk ik.

Om een account aan te maken, surf naar www.pachube.com en kies voor ‘Register a feed’.

Als je je profiel aldaar aanvult, is het voor Pachube-bezoekers ook mogelijk om jouw feed te volgen als favorieten.

Binnen je profiel/account staat een rubriek ‘Settings’. Hierin is een persoonlijke API-sleutel (key) beschikbaar, die je nodig hebt in de Arduino-software later.

In het profiel bij de rubriek ‘Feeds’ kun je een of meerdere bronnen definieren die getoond gaan worden, inclusief eenheden (temperatuur als in Kelvin of °C bijvoorbeeld). In dit tabblad/rubriek zie je ook je feed-ID staan, een vijf-cijferige code die jouw feed identificeert binnen Pachube. Ook die is straks van belang in de configuratie van je Arduino-software.

Tot zover de registratie voor Pachube.

Arduino

De Arduino software heb ik gedownload via de betreffende site, www.arduino.cc waar ook de laatste versie (op dit moment, maart 2011, is build 22 de recentste).

Na installatie ervan op je Apple of Windows systeem heb je de ontwikkelomgeving gereed voor de Arduino microcontroller, al dan niet aangevuld met USB-stuurprogramma’s. Hoe het installeren hiervan gaat, staat netjes verder vermeld op de website van Arduino. Dus dat laat ik hier achterwege.

Er zijn overigens diverse modellen van Arduino te vinden, maar ik heb hier de Arduino Duemillenove (2009) versie gebruikt. De meest recente (Arduino Uno) moet ook compatibel zijn en hiermee overweg kunnen.

De hardware

Om de temperatuur te registreren heb je sensoren nodig. Hiervoor heb ik gekozen voor de sensoren van Maxim, om precies te zijn de ‘DS18S20’ sensoren. Hier is de datasheet te raadplegen.

Digitaal kunnen ze via 1 draad (one-wire, I²C) geadresseerd, en uitgevraagd worden. Daarnaast zijn ze in staat met nauwkeurigheid (9 bit resolutie) temperatuur te meten. En ze zijn heerlijk klein, waardoor je ze goed kan wegwerken/afmonteren rond de installatie die je wilt monitoren 🙂

Ik heb mijn sensoren bij Conrad.nl besteld, waar ze met ca. 2 meter snoer en een metalen kop (afgekit tegen vocht) netjes te benutten zijn.

De sensoren hebben elk dus een uniek adres, waardoor het uitvragen goed te realiseren is. De adressen van de sensoren zijn via de Arduino-Examples bibliotheek razendsnel uit te lezen.

Aansluitschema van de sensor. Elke extra sensor kan parallel geschakeld worden. Vergeet niet om pin 3 van de sensor eveneens aan massa/GND te koppelen!
Aansluitschema van de sensor. Elke extra sensor kan parallel geschakeld worden. Vergeet niet om pin 3 van de sensor eveneens aan massa/GND te koppelen!

Voor het Arduino-zonneboiler concept zijn deze sensoren in een ‘parasite-mode’ aan elkaar gekoppeld. Van de 3 draden uit de DS18S20 sensor gebruik ik alleen de data-lijn (bij mijn sensoren ‘wit’ gecodeerd) en de massa (hier bij mijn sensoren  ‘bruin’ gecodeerd). Middels een pull-up weerstand van 4k7 Ω aan de 5 Volt voeding worden de datalijnen aan pin 9 van de Arduino (digitale ingang, pin 9) geplaatst waarop de digitale meetgegevens worden ontvangen en verwerkt. Overigens, als voeding heb ik een oude Nokia lader hergebruikt, misschien een praktische tip!

Zorgpunt: er worden slechts 2 van de 3 aansluitingen gebruikt. De aansluiting die je niet gebruikt dient aan massa/Ground aangesloten te worden. Doe je dit niet, dan zal veelvuldig een waarde van 85 ºC gemeten en getoond worden!

Voordeel is van deze sensoren, niet geheel onbelangrijk, dat je met een eenvoudige wijze kan uitbreiden. Momenteel bezit ik 4 sensoren, echter ik wil ook nog eens de CV-aanvoer en CV-retour temperatuur monitoren. Leuk voor de winter, om te zien hoe e.e.a. werkt. Of nog een extra sensor voor de buitentemperatuur, en een in de woonkamer…. nou ja… genoeg om je op los te laten!

De programmatuur

Nu de software, die alles in werking gaat zetten. Laat mij nogmaals benadrukken: ik heb de informatie op internet gevonden en heb deze naar inzicht passend gemaakt zodat hij bij mij werkt. Het kan zijn dat je zelf nog nodig zoekwerk moet verrichten. Alles is vrij/gratis toe te passen op eigen inzicht/risico. Tot zo ver de disclaimer 😉

Ik heb in de Arduino-ontwikkelomgeving een aantal tabbladen gemaakt:

Met de rechterzijde (waar de pijl staat weergegeven) kun je tabbladen toevoegen.

De naamgeving van de tabbladen bij mijn setup is als volgt:

  • atagqsolarpachube : de ‘masterprocedure’ die alle onderdelen koppelt
  • localclient : regelt het netwerkverkeer met Pachube
  • pachube_in_out  : deze regelt de communicatie met Pachube.com website
  • readtemphex : regelt de vertaling van hexadecimaal naar graden Celsius

Je kan de sources ook hier nu downloaden….atagqsolarpachubesite

Let wel: de eigen instelling m.b.t. de Pachube-feed en API-key heb ik hieruit verwijderd. Je zal die dus (naast de juiste adressen van elke DS18S20 sensor) zelf moeten actualiseren.

Kostenplaatje

Uiteraard moet je de hardware ook aanschaffen. Ter indicatie heb ik hier enkele prijzen (bij benadering) geplaatst van de materialen die je nodig hebt:

  • Arduino microcontroller (Uno of Duemillenove): € 25
  • weerstand 4k7Ω (4700 Ohm): € 0,10
  • Arduino ethernet-shield: €33
  • Arduino behuizing voor de microcontroller & ethernetshield: € 11
  • Sensoren type DS18S20, per stuk (incl. bekabeling & afgemonteerd in gesloten metalen behuizing): € 16
  • Eventueel een voeding (rond de 5-6 Volt is toereikend, ca. 500-700 mA)

6 Comments

  1. Mooi project!

    Precies waar ik ook al mee bezig was maar geen tijd om het af te maken.
    Bedankt voor het delen van de code. Misschien een idee om te uploaden naar de Pachube site (Ook al heb je het gevoel dat het een knip-plak project is) met een algemenere omschrijving als Pachube DS1820. Denk dat veel mensen wel iets met temperatuur sensors en Pachube logging kunnen doen.
    Misschien ook leuk om te vermelden in je artikel dat er ook veel goedkopere versies zijn van de DS1820 sensors.

  2. @Joost: ik heb voor OliNo.org eenzelfde artikel geschreven. Deze site trekt dagelijks vele duizenden bezoekers. Goede tip van het uploaden naar Pachube, ik zal daar toch nog eens naar kijken.

    Ik heb bewust de ‘officiele’ Arduino gebruikt, maar er zijn inderdaad ook varianten (Seeeduino, Roboduino, Freeduino etc.) die mogelijk in prijs nog aantrekkelijker kunnen zijn. Echter, in mijn setup heb ik de Arduino Duemillenove en Uno gebruikt voor de logger, en die werken zeker.

  3. Ik zag je artikel inderdaad op Olino.

    Ik ben zelf voor een clone gegaan(via samenkopen.net) en die bevalt perfect. Voor de ethernet shield ben ik ook voor de originele gegaan, clonen zijn hier vaak echt anders en vereisen meer software.

    Echter had ik het er over dat de sensors zelf vooral goedkoper kunnen. Op ebay koop je er bijvoorbeeld 5 voor 7 euro. Dit zijn dan wel versies zonder mooie metalen behuizing.
    http://cgi.ebay.nl/5pcs-DS18B20-1-Wire-Digital-Thermometer-Dallas-DS1820-/190508892205?pt=LH_DefaultDomain_0&hash=item2c5b37002d

  4. @Joost: klopt, de sensoren kun je goedkoper krijgen, maar dan veelal als TO-92 uitvoering, waarbij je zelf nog mag solderen, kitten en onderdelen uitzoeken.
    Ook de Arduino is in diverse uitvoeringen te krijgen, en dus ook qua prijs.
    Maar goed, dat is een (ontwerp/bouw) keuze die ik bij aanvang gemaakt heb. Hoe anderen het willen uitwerken, daar zijn ze vrij in 🙂

  5. Ik merk dat deze week mijn zonneboiler-monitor haperingen geeft, die na een reset verdwijnen.
    Ik moet dus nog eens de code napluizen, misschien is daar de oorzaak te vinden. Of wellicht de kritische voeding (sinds ik van 4 naar 6 sensoren ben gegaan voor de ‘parasite’mode speelt dit vreemde probleem). Ach… weer wat uit te puzzelen 😉 Misschien op te lossen met een zwaardere voeding danwel andere aansluiting (bv toch met 3-draden aansluiten ipv de 1-wire methode).

  6. Deze week een 12Volt schakelende voeding (met stabilisatie) er aan gesloten. Helaas, soms hapert eea nog in de communicatie, wat na een reset weer verholpen is. Tijd om verder te speuren in de code of andere variabelen….

Leave a Reply

Your email address will not be published. Required fields are marked *