Stap 7: Thermoigrometer
Deze procedure bestaat ook uit het maken van een "patchwork" tussen twee codes.
Open zowel de codes als de kopie & langs de code van LCD_display_control.ino in een van de dht22andDS3231.ino.
In deze stap gaan we Maak een schets waarin waarden gedetecteerd door DHT22 en tijd & datum op het LCD-display. Natuurlijk, hebben we ter vervanging van alle Serial.print() met lcd.print() functies. Deze bediening is zeer eenvoudig als u gebruik een teksteditor die het automatisch zoeken en vervangen van de functie (Notepad ++, bijvoorbeeld). Dus, kijk voor seriële en vervangen ze allemaal met LCD-scherm.
De kop van de schets
Nu, voeg de bibliotheek vereist door de LCD display en verklaren van de twee variabelen en constanten waarmee af en aan het licht.
Vlak na dit onderdeel moet u verklaren twee matrices gemaakt van bytes. Deze twee arrays, drop en temp, trekken de pictogrammen die worden weergegeven op het LCD-scherm. Als u wil vestigen van uw eigen pictogrammen, kunt u de volgende Webredacteur: LCD font editor.
Om het initialiseren van het LCD-scherm moeten we de functie LiquidCrystal()gebruiken. Tussen de vierkante haken zijn er de pinnen gebruikt.
Functies
Scrollen naar beneden de schets vinden we verschillende functies:
- bcdToDec---zoals eerder gezegd, het is nodig om binaire getallen naar decimalen converteren
- readDS3231time---vereist om gegevens te lezen van DS3231
- displayTime---vereist voor het afdrukken van de gegevens en tijd op het LCD-display
- dht22---moeten detecteren en afdrukken van waarden van temperatuur en vochtigheid
Voor een betere visualisatie, hebben wij enkele veranderingen in displayTime en dht22. In principe moeten we laten zien op de eerste rij datum en tijd en in de tweede een temperatuur en vochtigheid. Een LCD-scherm heeft slechts 16 cijfers per rij, zodat als u wilt dat om te laten zien dat alles u de uitvoer moet organiseren.
Ten eerste, we verkort de namen van de dagen van de week, zoals u in de eerste switch/case -instructie zien kunt. We voegde daarna nog een switch/case voor de verkorte namen van de maanden. Ook het lopende jaar en schrappen seconden.
Om dezelfde reden hebben we enkele wijzigingen in de dht22 functie. Deze sketch niet afgedrukt geen info over de dht22 bibliotheek, evenals de lijn "Type, status, vochtigheid (%), Temperature (C)" maar het afdrukken alleen de twee pictogrammen (drop en temp) en de temperatuur waarde gevolgd door "° C" (omdat we gewend Celsius graden) en vochtigheid gevolgd door "%". Omdat er niet genoeg ruimte die hebben we ook besloten om het tweede decimale cijfer verwijderen van temperatuur en vochtigheid.
Setup functie
De eerste twee regels in de setup-functie initialiseren op de pin knop en LUMIN. Ze worden gebruikt om te controleren van de LCD-achtergrondverlichting.
De derde regel initialiseert de DS3231.
De heen en vijfde lijnen maken de twee aangepaste pictogrammen.
De laatstgenoemde initialiseert het LCD-scherm.
Lus functie
In de lus functie vinden we de instructies nodig om te controleren van de LCD-achtergrondverlichting. We gaan niet te herhalen hoe ze werken omdat wij het in de vorige stap deden.
De laatste twee instructies wijzen die functies welke datum & tijd, luchtvochtigheid en temperatuur worden weergegeven.
Het enige verschil bestaat uit het wijzigen van de waarde van de teller van 1000 (zoals we eerder zagen) tot en met 5 omdat nu we een twee seconden vertraging ingevoegd.