Server » Verwarming » Eigen installatie» 2020 » Logs
Verwarmingsinstallatie 2020
Het opslaan van de logs op een SD kaart
Evolutie
-

-

Op een vorige pagina kon je zien dat we een seriële matrixprinter bijgeplaatst hebben om de evolutie van de temperaturen en de stand van de servo-motor te kunnen volgen. In één oogopslag kan je de parameters volgen. In paarse inkt, want iedereen weet dat de paarse inkt het langst meegaat in alcoholduplicatoren. Overigens is het aan te raden gecoat papier te gebruiken in de printer, in de plaats van ruw krantepapier: de afdrukken zijn beter leesbaar, zelfs nadat de printer honderdduizend tekens geprint heeft.

Maar de cijfers geven geen duidelijk beeld van de werking van de installatie. Men ziet dat er een lichte overshoot is, maar van hoeveel? Hoe evolueren de temperaturen? Is er een oscillatie te zien of evolueren d etemperaturen eerder chaotisch?

Om dt te zien hebben we grafieken nodig. Arduino kan niet zomaar grafieken tekenen, maar kan wel een logboek opmaken. Om grafieken te tonen heb je veel data nodig, minstens over één dag. Gelukkig kan de arduino naar een SD kaart schrijven. Je moet enkel een paar includes voorzien en de arduino kan SD kaarten lezen en schrijven (enkel FAT-19 en FAT-32 geformateerde kaarten). Het schijven van data naar de SD kaart is even eenvoudig als het sturen van een data-lijn naar de seriele impactprinter.

De FAT bestandsorganisatie is zo eenvoudig, dat het door de arduino ondersteund kan worden. Dat is ook niet verwondelijk, FAT werd ontworpen in een tijdstip dat de computers veel minder krachtig waren. Het formaat werd ook gebruikt door talrijke apparaten zoals slimme televisies en fototoestellen.

SPI

De shield die gebruikt wordt voor de geheugenkaart gebruikt het SPI-protocol (serial peripheral interface) die door verschillende andere shields gebruikt wordt. De poorten 11, 12 en 13 worden gebruikt (MISO master in slave out, MOSI master out slave in, SCK serial clock). Deze poorten liggen vast, en het is niet aangeraden ze te wijzigen in de include routines. Ook wordt poort 4 gebruikt voor de chipselectie (SS slave select). De communicatie is full duplex en de timing wordt door de master geleverd.

Verschillende shields die dezelfde protocol gebruiken kunnen parallel geschakeld worden, de selectie van de shield gebeurt door de SS-lijn. De selectielijn kan wel gewijzigd worden, bijvoorbeeld als je twee SD kaarten zou willen gebruiken. Er is ook geen overeenkomst welke poort gebruikt moet worden als selectielijn. De te gebruiken poort kan daarom ingesteld worden met een instructie SD.begin(i);

Bepaalde accessoires hebben meerdere kunkties, en het is mogelijk één bepaalde funktie te selecteren door de betreffende SS poort aktief te maken (low). Dit is bijvoorbeeld het geval met de webserver shield die ook een kaartlezen aan boord heeft. De selectiepoort moet effektief gedefinieerd worden, zelfs al gebruikt men maar één slave en de selectielijn constant laag gehouden kan worden. Dit is nodig om de software correct te laten werken (de routines in de include bestanden).

Dit protocol wordt in verschillende systemen gebruikt, zelfs op plaatsen waar men die niet zou verwachten. De communicatie tussen de Canon bodies en de lenzen gebeurt met het SPI protocol. De SD en MMC geheugenkaarten gebruiken standaard dit protocol, waardoor de shield tot een absolute minimum beperkt kan worden. Dit protocol is snelle dan I2C, dat vroeger ook gebruikt werd voor de communicatie tussen een master processor en slaves.

Grafiekopmaak

Ieder minuut maakt de software een regel aan:
HH:MM TT.TT ttXSSS KKK

Met
  • HH:MM Verlopen tijd
  • TT.TT Huidige temperatuur
  • ttX Gevraagde temperatuur of werkingmodus
  • SSS Positie van de servomotor
  • KKK Temperatuur van de uitlaatgassen
Per minuut produceert de software 24 bytes. Om een geheugenkaart van 4GB te vullen kan je data opnemen gedurende 115 dagen. De kaart wordt nadien gelezen door een applikatie die het bestand LOG.TXT omzet in een LOG.HTML bestand omzet die de nodige grafische commando's bevat.

We hebben een eerste grafiek die tijdens testen gemaakt werd (halverwege oktober). De verticale lijnen geven aan wanneer een onderbreking heeft plaatsgevonden. Om het uur zijn er verticale puntlijnen.

Het gele gedeelte geeft de positie van de servo-motor aan die de positie van de thermostaat regelt. In feite verandert de positie constant tussen ongeveer 60 en 90. Als de temperatuur onder de setwaarde komt, dan wordt de positie van de servomotor stapsgewijs verhoogd zolang dat de brander niet aanslaat.

Het rood/blauwe grafiek toont de effektieve temperatuur ten opzichte van de gevraagde temperatuur. Men ziet dat de gewenste temperatuur snel bereikt wordt als de setwaarde gewijzigd wordt en dat er een zeer beperkte overshoot is. De temperatuur stabiliseert zich juist boven de setwaarde.

Het groen/paarse grafiek toont de temperatuur van de uitlaatgassen, in het groen als de brander uitgeschakeld is. De temperatuur zakt dan tot ongeveer 25°. We hebben de temperatuur van de uitlaatgassen nodig, zodat de software kan weten of de brander aanstaat of niet.

Een tweede grafiek toont de temperatuursevolutie als de automatische modus uitgeschakeld wordt, tweede deel van het grafiek (geen sturing van de servomotor). In automatische modus is de temperatuurstabilisatie 0.2° boven de setwaarde, in manuele modus is er een temperatuurschommeling van ongeveer 1°.

Het grafiek toont de temperatuur die op een graad na stabiel is, maar wat niet gemeten wordt is de infra-rode straling die heel sterk aanwezig is. Om een maximaal effekt te hebben heb ik zelfs de kap van de kachel verwijderd. De IR straling is echter enkel aanwezig als de kacheltemperatuur boven de 50° zit. Als er geen straling is, heeft men een koudegevoel en heeft men de neiging de temperatuur te verhogen, terwijl de temperatuur wel degelijk 18° bedraagt. In automatische modus blijft de verwarming permanent warm (maar wordt ook sneller uitgeschakeld).

De laatst opgemaakte grafiek staat altijd hier.

Publicités - Reklame

-