De Plant Buddy (5 / 7 stap)

Stap 5: Programmeren van de Arduino

De code voor dit project was ongecompliceerd. De eerste stap was alle van de verschillende sensoren werken krijgen. De SIK-code werd gebruikt om te helpen bij dit proces. Zodra de sensoren goed werkt waren, begonnen we dan maken van specifieke functies. Maken van de foto weerstand en RGB LED samenwerken was eenvoudig. Voor demodoeleinden, de dagtijd was ingesteld op 40, en terug zou worden ingesteld op nul telkens het 40 bereikt. Een andere waarde zal elke seconde tellen als de weerstand van de foto op een bepaalde waarde is. Het is ook weer op nul gezet zodra de dag-variabele is ingesteld op 40. Het volgende en meer uitdagende deel was het maken van de potentiometer, LED's, vocht sensor en servo werk samen. De oplossing die wij gevonden moest stapelen als verklaringen. De eerste zou luiden naar de waarde van de potentiometer en visueel een LED oplichten. Elke LED zou aan de gebruiker hoeveel water dat de plant ontvangt het signaal, en geen LED bedoeld dat u niet met behulp van het water. Zodra die werd onderscheiden, de vocht sensor werd voorgelezen, en afhankelijk van die waarde, de servo zou leiden tot een water. We besloten dat het zou goed zijn om een time-out-periode, zodat het water zou hebben tijd om te verspreiden.

* Let op dat sommige vocht en zonlicht variabelen zullen moeten worden veranderd naar suite uw toepassing

#include #include / / servo bibliotheek int potPin = A2; Const int lightValue = A0; int moistValue = A3; Const int RED_PIN = 11; Const int GREEN_PIN = 10; Const int BLUE_PIN = 9; int lightLevel = 0; int moistLevel = 0; int blootstelling = 0; int overdag = 0; int LedPin8 = 8; int LedPin12 = 12; int LedPin13 = 13; int waterCount = 0; Servo servo1; Servo control-object

void setup {pinMode (RED_PIN, OUTPUT) pinMode (GREEN_PIN, OUTPUT); pinMode (BLUE_PIN, OUTPUT); pinMode (LedPin8, OUTPUT); pinMode (LedPin12, OUTPUT); pinMode (LedPin13, OUTPUT); servo1.attach(6);

mainColors(); Serial.begin(9600);

}

void loop / / deze functie wordt telkens opnieuw uitgevoerd nadat Setup is voltooid {lightLevel = analogRead(lightValue); mainColors(); waterLevel(); waterCount ++;

Serial.println(moistLevel); Serial.println("moisture"); Serial.println(waterCount); Serial.println("waterCount"); } ongeldig waterLevel() {int potValue; potValue = analogRead(potPin); als (potValue < 255) {digitalWrite (LedPin8, laag); digitalWrite (LedPin12, laag); digitalWrite (LedPin13, laag); als (waterCount == 10) {waterCount = 0;}} als (potValue > 255 & & potValue < 510) {digitalWrite (LedPin8, hoge); digitalWrite (LedPin12, laag); digitalWrite (LedPin13, laag); moistLevel = analogRead(moistValue); als (waterCount == 10 & & moistLevel < 600) {waterer1(); waterCount = 0;} anders als (waterCount == 10) {waterCount = 0;}} als (potValue > 510 & & potValue < 765) {digitalWrite (LedPin8 HOGE); digitalWrite (LedPin12, hoge); digitalWrite (LedPin13, laag); moistLevel = analogRead(moistValue); Als (waterCount == 10 & & moistLevel < 625) {waterer2(); waterCount = 0;} else if (waterCount == 10) {waterCount = 0;}} Als (potValue > 765) {digitalWrite (LedPin8, hoge); digitalWrite (LedPin12, hoge); digitalWrite (LedPin13, hoge); moistLevel = analogRead(moistValue); if (waterCount == 10 & & moistLevel < 650) {waterer3(); waterCount = 0;} anders als (waterCount == 10) {waterCount = 0;}}

} void waterer1() {servo1.write(15); / / vertellen servo naar 90 graden delay(1000); / / Pause om het te krijgen tijd om te gaan servo1.write(90); / / vertellen servo naar 0 graden} waterer2() {} ongeldig

servo1.write(7); Vertellen van de servo naar 90 graden

delay(1100); Pauze om het te krijgen tijd om te bewegen

servo1.write(90); Vertellen servo naar 0 graden} waterer3() {} ongeldig

servo1.write(0); Vertellen van de servo naar 90 graden

delay(1200); Pauze om het te krijgen tijd om te bewegen

servo1.write(90); Vertellen servo naar 0 graden}

VOID mainColors() {overdag ++; delay(1000); als (overdag > 45) {blootstelling = 0; overdag = 0, digitalWrite (RED_PIN, LOW), digitalWrite (GREEN_PIN, laag); digitalWrite (BLUE_PIN, laag);} als (lightLevel < 300) {blootstelling ++; Serial.println(exposure); } / / yelllow (draai op de rode en groene LED): als (blootstelling > 29) {digitalWrite (RED_PIN, hoge); digitalWrite (GREEN_PIN, hoge); digitalWrite (BLUE_PIN, laag);} / / rood (rood op): als (blootstelling > 19 & & blootstelling < = 29) {digitalWrite (RED_PIN, laag); digitalWrite (GREEN_PIN, hoge); digitalWrite (BLUE_PIN, laag);} / / paars (beurt rood en blauw op): als (blootstelling > 10 & & blootstelling < = 19) {digitalWrite (RED_PIN LAAG); digitalWrite (GREEN_PIN, hoge); digitalWrite (BLUE_PIN, hoge); ongeldig showRGB(int color)}} {int redIntensity, int greenIntensity, int blueIntensity;

Als (kleur < = 255) / / zone 1 {redIntensity = 255 - kleur; / / rode afgaat uit bij greenIntensity = kleur; / / groene afgaat van aan op blueIntensity = 0; / / blauw is altijd af} anders als (kleur < = 511) / / zone 2 {redIntensity = 0; / / rood is altijd uit greenIntensity = 255 - (kleur - 256); / / groen bij uit blueIntensity = (kleur - 256); / / blauw af aan op} anders / / kleur > = 512 / / zone 3 {redIntensity = (kleur - 512); / / rood uit aan op greenIntensity = 0; / / groene is altijd uit blueIntensity = 255 - (kleur - 512); / / blauw op op off}

analogWrite (RED_PIN, redIntensity); analogWrite (BLUE_PIN, blueIntensity); analogWrite (GREEN_PIN, greenIntensity); }

Gerelateerde Artikelen

Buddy v.2 douche

Buddy v.2 douche

douches zijn verbazingwekkende dingen. Ik stel u een scène. Je wordt wakker op een koude winterochtend, de zon heeft nog stijgen. De douche wacht op u. het moment dat u contact met de warme, stromend water, en je neemt een adem van de vochtige warme
Dressoir lade Planter vak

Dressoir lade Planter vak

De lente is een van mijn favoriete momenten van het jaar. Voor mij vertegenwoordigt het nieuwheid van het leven en de groei. Een van mijn favoriete dingen om te doen is om buiten en aan de slag op mijn tuin. Binnen, mijn kinderen genieten van groeien
Verticale scheve Planter

Verticale scheve Planter

Ik wilde bouwen een planter voor onze achterdek, maar kon niet vinden elk voornemen vergelijkbaar met wat ik in gedachten had. Ik ben niet groot bij het fotograferen van het proces, maar ik wilde delen van het eindproduct.De 2x4s en de 1x4s van palle
Mijn $10 teruggewonnen klimmen Vine Planter Box!

Mijn $10 teruggewonnen klimmen Vine Planter Box!

Ja zijn waar, ik heb precies $10 voor deze plantenbak. Oke, heb ik bier kopen zodat ik factor die... maar dit zijn alle materialen ik had en was in staat om deze plantenbak... laat het me uitleggen:Mijn vrouw en ik begon te planten al onze tuin dinge
Hoe maak je een geweldig succulente Planter

Hoe maak je een geweldig succulente Planter

Wilt u uw eigen succulente planter? Bekijk deze snelle en eenvoudige tutorial die zal u helpen om uw eigen prachtige sappige planter + belangrijke tips en trucs.Stap 1: Monteren uw benodigdhedenVoor dit project heb je het volgende nodig:Een planter (
Gespreid Pallet Planter

Gespreid Pallet Planter

Geen ruimte in uw tuin? Opgroeien met deze gespreide planter!Instructables heeft een uitgebreide collectie van pallet-gerelateerde projecten, en het is makkelijk te zien waarom. Als een afvalproduct, pallets zijn vaak gemaakt van fatsoenlijke kwalite
Planter vak voor gratis

Planter vak voor gratis

gemonteerd planter vak voor kippenhok met draad rooster om ze te stoppen krassen uit Groenen maar nog kunt etenStap 1: pallet deconstructie veilig en gebruiken van de hamer en wrikken bar verwijderen pallet planken houden nagels in de plankenStap 2:
Magische zwevende Planter vak

Magische zwevende Planter vak

Dit articulerende planter licht was een mix van ideeën. Ik wilde sommige meer planten voor mijn bureau en wilde kopen een normale planter - Nee, natuurlijk; ik had te maken een. Maar alleen het maken van een nog niet genoeg was - het moest iets bijzo
Tuin Plant Stand

Tuin Plant Stand

De stand van de plant komt te staan in dit instructable groeit eetwaren in een compacte verticale ruimte. We gebruiken de planter groeien kruiden en eetwaren op het dek binnen handbereik tot de keuken en de grill. In de containers hebben we mint, ana
Bulbasaur Plant houder

Bulbasaur Plant houder

Als u een pokemon fan en een plant type minnaar dan is dit de manier om te groeien! Met dit instructable kunt maken zelf een echte leven bulbasaur #001, misschien creatief en maken de hele evolutie, misschien zelfs een oddish of twee. De mogelijkhede
Capillaire actie Plant Waterer

Capillaire actie Plant Waterer

Ik wilde iets dat vocht aan de flats van zaailingen in mijn serre bieden zou. Top-drenken kan worden rommelig en vaak zet de jonge plantjes in een situatie van "feest of hongersnood". Drenken van onderop is beter. Er zijn batterij systemen die z
Beworteling van de stekken van de plant

Beworteling van de stekken van de plant

nu is het lente, is het tijd om te propageren van planten. Een goedkope en leuke manier uit te breiden uw tuin!Stap 1: Blok gaten in de bodem van de pot. Om het even wat zal doen: kleine steentjes, piepschuim, of, zoals ik het hier gebruiken, een geb
Rokerige ei Plant Garlic Dip

Rokerige ei Plant Garlic Dip

-Ei plant knoflook duik geeft een rokerige smaak van een doelbewuste verkoling van het ei plant huid met innerlijke vlees wordt gestoomd om te verzachten in het proces.-U kunt het bakken of direct leg op de top van de kachel.-Hoewel veel niet zoals a
XB-Buddy Kit

XB-Buddy Kit

Wat is xB-Buddy?xB-Buddy is de compacte, kabelloze versie van FTDI kabel, gecombineerd met XBee breakout board. Sluit het apparaat rechtstreeks op de USB-poort op de PC, laptop.xB-Buddy is niet alleen handig voor het programmeren van de Arduino kloon