Stap 7: Uploaden van de schets voor volledige blad licht en kalibreren van de sensoren
Nadat u hebt vastgesteld het circuit correct is ingesteld, nu je de volledige leaflight.ino moet schets (gevonden op de bodem van deze schets).
Eerst, open te stellen leaflight.ino in de Arduino IDE. Neem een kijkje door de code. U ziet extra materiaal met de lichtsensor en ook met de tijd. Er zijn een paar elementen in de tekening die u wilt bijwerken zelf. Maar eerst, zult u moeten begrijpen een beetje over hoe de schets-functies. Hier is een kort overzicht van hoe de code werkt:
Elke tien minuten, verzamelt de Arduino gegevens uit de twee sensoren. De gegevens over de bodem vocht wordt onmiddellijk gebruikt voor de kleur van de NeoPixel instellen. Dus, zodra de grond te droog wordt, binnen tien minuten het blad licht moet overschakelen naar blauw of rood.
De Arduino verzamelt ook gegevens over de hoeveelheid licht die het ontvangt. In tegenstelling tot de test-code, die reageert op al dan niet is het licht op het moment van testen, de Arduino zal worden berekend of het voldoende licht heeft ontvangen. Er is een variabele, seconds_light, die bijhoudt hoeveel seconden van licht per dag ontvangen. Wij bijhouden van de hoeveelheid licht die we over de dag ontvangen, en het creëren van een deel van tijd verlicht uit de tijd is verstreken. De Arduino controles na 2 pm, dit percentage. Als de hoeveelheid licht in verhouding staan tot de hoeveelheid tijd verstreken geen niet bereiken die onze gewenste niveaus, de NeoPixel zal veranderen, oranje of rood.
De Arduino hebben niet een interne klok. Wat dit betekent voor u is dat u moet handmatig invoeren van de tijd en datum in de code net voordat u het uploaden, zodat dit keer berekend code weerspiegelt realiteit.
Dit gedeelte van de code vinden (aangeduid met ** actie vereist!):
<p>//set up the timers<br> setTime(0,0,00,1,12,15); /**Action needed! Every time you update your Arduino, change this section to set the Arduino to the current time (hour, minute, second, month, day, year) so (8,29,40,12,1,15) equals 8:29:40am Jan 12 2015*/</p><p> Alarm.alarmRepeat(0, 00, 0, midnight); //runs midnight function at midnight to clear out previous day's data Alarm.timerRepeat(10, checkSensors); //grabs data from sensors every 10 minutes (checkSensors()) }</p>
Voordat u uploadt, veranderen de nummers in setTime (hr, min, sec, dag, maand, jaar) aan uw huidige tijd en datum.
De volgende bewerking die u wilt aanbrengen in de schets is het kalibreren van uw vocht sensoren en bijwerken van de minimale variabelen zodat deze overeenkomen met uw lezingen.
Met behulp van de test-code uit de vorige stap, doen dezelfde test als vóór, maar met de seriële Monitor waarop wordt uitgevoerd. De seriële Monitor zal verslag telkens sensor lezingen zijn genomen. Zet uw sensoren in verschillende instellingen (verschillende potten van de bodem met uiteenlopende niveaus van vocht of verschillende soorten verlichting). Wat is het laagste nummer voor elke sensor die u accepteren zou dat de plant licht ontvangen en te overwegen de bodem vochtig?
Kalibratie kan duren. Als u niet zeker bent, kiest u getallen die wenselijk lijkt en gebruiken hen voor een tijdje. Als ze niet lijken te werken, werken de nummers totdat u de juiste niveaus vindt.
Nu moet je deze minimaal aanvaardbare niveaus in de schets. Deze sectie vinden, en verander de waarden aan de nummers die u hebt opgenomen.
<p>//Set minimum values for sensors **Action Needed: update these values to match your sensors and plants<br> int lightMin = 30; int moistMin = 400;</p>
Tenslotte, u nood voor beslissen hoeveel licht per dag u denkt dat uw installatie minimaal moet ontvangen. Als u niet zeker weet, is opzoeken van uw installatie. Nogmaals, zal dit een proces van trial and error, maar denken over de kwaliteit van het licht in combinatie met het bedrag ontvangen. Krijgt het direct zonlicht? Krijgt het vooral licht lampen? De standaard is ingesteld op 12 uur per dag. Zoek deze sectie, en wijzig het nummer na de hours_light_daily_desired tot de (minimum) aantal uren u wenst uw installatie om licht per dag.
<p>//Stored light variables. Set up variables to store and accumulate light amount throughout the day<br> int hours_light_daily_desired = 12; //**Action needed: Update # of hours of light you think your plants should get per day float proportion_to_light = hours_light_daily_desired/24; //calculates proportion of desired light per day int seconds_light = 0; //this variable stores the number of seconds of light received each day. We initially have it set to 0. float proportion_lit; //this variable will be used to calculate the actual proportion of light to dark received each day (to compare with proportion_to_light) int time_elapsed = 0; //used to measure the amount of time that has passed in seconds int lightLevel = 1; //used to assign true/false value to the accumulated light level. 1=enough light, 0=not enough light</p>
Zodra deze drie secties zijn bijgewerkt, bent u klaar om te gaan. Controleer of uw schets (check voor de fouten door te klikken op het vinkje) en vervolgens uploaden naar je Arduino!