Projektas #1: Automatinis augal? laistymas
Išmokite sukurti ir užprogramuoti automatin? laistymo sistem? mažam augalui panaudodami „Maker Control Kit“ komplektuojam? robotikos rinkini? valdymo plokšt?s ir „Maker Kit 1“ komplektuojamo robotikos rinkinio komponentus.
Pirmiausia panaudokite dirvožemio dr?gm?s jutikl?, kuris matuos dirvožemio dr?gnum?. Tada gaut? vert? panaudokite nurodymui, kada sistema tur?t? laistyti augal?. Tai taip paprasta!
PRATIM? S?RAŠAS:
- 1.1 pratimas: Išmatuokite dirvožemio dr?gnum?
- 1.2 pratimas: Sukurkite automatin? laistymo sistem?
1.1 pratimas: Išmatuokite dirvožemio dr?gnum?
Dirvožemio dr?gnumui išmatuoti naudokite dirvožemio dr?gnumo jutikl? ir „4in1 Build&Code“ plokšt?. Tokiu b?du, j?s žinosite, kada augalas turi pakankamai vandens, o kada j? reikia laistyti.
SUD?TINGUMO LYGIS: Pradedantiesiems.
PRATIMO TRUKM?: 20 min.
MEDŽIAGOS:
- 1x dirvožemio dr?gm?s jutiklis
- 1x augalas (nedidelis)
- 1x „4in1 Build & Code“ plokšt?
- 1x USB – Mikro USB kabelis
- Kompiuteris
Kas yra dirvožemio dr?gm?s jutiklis?
Dirvožemio dr?gm?s jutiklis yra mažas jutiklis, matuojantis dirvožemio dr?gnum?. Išmatavus jis siun?ia analogin? signal?, proporcing? dirvožemio dr?gnumui.
Dirvožemio dr?gnumo jutiklis naudojamas ?kišant jo du auksinius galiukus ? dirvožem?, kol aukso paviršius yra visiškai sukišamas ? dirvožem?.
JUNGTYS:
Prijunkite dirvožemio dr?gm?s jutikl? prie „4in1 Build & Code“ plokšt?s analogin?s jungties A0.
Perži?r?kite kabeli? spalvas ir „4in1 Build & Code“ plokšt?s kontakt? spalvas, kad žinotum?te, kaip sujungti. Kiekvienas kabelis turi b?ti prijungtas prie jo spalvos.
PROGRAMOS KODAS:
Programa fiksuoja dirvožemio dr?gm?s kiek? kompiuteryje. Jis tur?t? b?ti nuo 0 iki 100.
Dr?gm?s jutiklis išmatav?s dirvožemio dr?gnum? priskirs vert? nuo 0 iki 1023. Tada turite nustatyti šio skai?iaus ekvivalent? skal?je nuo 0 iki 100. Nor?dami t? padaryti, naudokite ši? formul?:
Didžiausia jutiklio vert? / Maksimali naujosios skal?s vert? = Skalei pritaikyta vert?
1023 / 100 = 10.23
Programoje naudosite ši? formul?:
Dr?gnumo jutiklio rodmuo / 10.23 = reikšm? skal?je nuo 0 iki 100
Šiuos veiksmus galite atlikti naudodami „Arduino“ ir „Bitbloq“ programin? ?rang?, taip pat kit? suderinam? vaizdin? programavimo programin? ?rang?, naudojan?i? blokus. Žemiau pateikiamas programin?s ?rangos kodas, reikalingas kiekvienai programinei ?rangai.
„Arduino“ kodas
- Parsisi?skite „Arduino“ programin? ?rang? ir atlikite ?diegimo proces?.
- Paleiskite „Arduino“ program? ir paleid? nukopijuokite ? j? toliau pateikt? program?:
int PortSoil = A0, SoilSensor; // Analog port of the soil moisture sensor; dependent on the data reading on a scale from 0 to 1023. float Moisture; // Value of the soil humidity on a scale from 0 to 100 void setup() { // put your setup code here, to run once: Serial.begin (9600); // Configuration for values readings } void loop() { // put your main code here, to run repeatedly: SoilSensor = analogRead (PortSoil); // Sensor amount readings on a scale from 0 to 1023 Moisture = (SoilSensor / 10.23); // Saved and conversion from amounts to a scale from 0 to 100 Serial.println(Moisture); // Show the value of the plant's humidity on a scale from 0 to 100 on the screen }
- Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai.
Kodas skirtas suderinamai vaizdinei programavimo programinei ?rangai, naudojan?iai blokus
- Parsisi?skite programin? ?rang? ir atlikite ?diegimo proces?.
- Paleiskite program? ir paleid? nukopijuokite ? j? toliau pateikt? kod?:
- Sukonfig?ruokite ir ?kelkite kod?. Žemiau parodysime, kurias parinktis tur?tum?te pasirinkti:
- Pasirinkite plokšt?s kuri? ketinate naudoti tip?. Jei naudojate „4in1 Build&Code“ plokšt?, tur?tum?te pasirinkti:
Plokšt?s ? Arduino Uno
- Pasirinkite jungt?, prie kurios yra prijungta „4in1 Build&Code“ plokšt?.
Jungtys ? Nuoseklioji jungtis ? COM (numeris jungties prie kurios yra prijungta plokšt?)
- ?kelkite ryšio program? tarp programos ir „4in1 Build&Code“ plokšt?s:
Jungtys ? Atnaujinti integruot? programin? ?rang?
- Pasirinkite plokšt?s kuri? ketinate naudoti tip?. Jei naudojate „4in1 Build&Code“ plokšt?, tur?tum?te pasirinkti:
- Tada nor?dami paleisti program? paspauskite žali? v?liav?l?.
„BitBloq“ kodas
- Parsisi?skite „BitBloq“ programin? ?rang?..
- 2. Paleiskite „BitBloq“ program? ir paleid? nukopijuokite ? j? toliau pateikt? kod?:
- Aparatin? ?ranga
- Programin? ?ranga
- Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai..
MATAVIMAS:
Kai dirvožemio dr?gnumo jutiklis yra prijungtas prie dirvožemio ir „4in1 Build&Code“ plokšt?s, o programa yra ?kelta ? plokšt?, išmatuokite dirvožemio dr?gnum? nepalais?ius augalo. Matuokite kelet? dien? augalo nelaistant ir užsirašykite dr?gm?s jutiklio rodom? vert?.
Užfiksavus vert?, palaistykite augal? rankiniu b?du, neapliedami vandeniu dr?gm?s jutiklio. Dar kart? išmatuokite dirvožemio dr?gnum? ir užrašykite ši? nauj? vert?.
PRATIMO REZULTATAS:
Dabar, kai rodomos dirvožemio dr?gm?s jutiklio užfiksuotos vert?s, žinote, kada augal? reikia laistyti, o kada ne.
Atlikite 1.2 pratim? ir sukurkite automatin? laistymo sistem?.
1.2 pratimas: Sukurkite automatin? laistymo sistem?
Pritaikykite 1.1 pratim? praktikoje ir sukurkite automatin? laistymo sistem?. Naudosite 1.1 pratime dirvožemio dr?gm?s jutiklio užfiksuotas vertes, kad žinotum?te, kada augal? reikia laistyti, o kada ne.
SUD?TINGUMO LYGIS: Pradedantiesiems.
PRATIMO TRUKM?: 60 min.
MEDŽIAGOS:
- 1x dirvožemio dr?gm?s jutiklis
- 1x augalas (nedidelis)
- 1x vykdomasis variklis
- 1x baltos spalvos LED
- Medžiaga, skirta suklijuoti laistymo konstrukcijai
- 1x plastikinis puodelis
- 1x „4in1 Build & Code“ plokšt?
- 1x USB – Mikro USB kabelis
- Kompiuteris
JUNGTYS:
- Prijunkite dirvožemio dr?gm?s jutikl? prie „4in1 Build & Code“ plokšt?s analogin?s jungties A0.
- Prijunkite baltos spalvos LED prie „4in1 Build&Code“ plokšt?s skaitmenin?s jungties Nr. 4.
- Prijunkite vykdom?j? varikl? prie „4in1 Build&Code“ plokšt?s skaitmenin?s jungties Nr. 9. Spalv? derinimas, skirtas prijungti vykdomajam varikliui prie „4in1 Build & Code“ plokšt?s: ruda - juoda, raudona - raudona ir oranžin? - geltona.
Perži?r?kite kabeli? spalvas ir „4in1 Build & Code“ plokšt?s kontakt? spalvas, kad žinotum?te kaip sujungti. Kiekvienas kabelis tur?t? b?ti prijungtas prie jo spalvos:
KONSTRUKCIJOS SUK?RIMAS:
Nor?dami sukurti laistymo sistem?, naudosite pla?ias medines lenteles ir plastikin? puodel?.
Parsisi?skite greito sumontavimo vadov? ir atlikite nurodytus veiksmus.
Žinodami kaip veikia sistema, galite sukurti kit?, jums patinkan?i?, konstrukcij?.
PROGRAMOS KODAS:
Programa susideda iš automatin?s laistymo sistemos ?jungimo, atsižvelgiant ? dirvožemio dr?gnumo jutiklio siun?iam? signal?.
Jei signalo vert? yra mažesn? už vert?, kuri reiškia, kad augalui reikia vandens, automatin? laistymo sistema bus ?jungta.
Jei signalo vert? yra didesn? už vert?, kuri reiškia, kad augalas turi pakankamai vandens, automatin? laistymo sistema bus išjungta.
Šiuos veiksmus galite atlikti naudodami „Arduino“ ir „Bitbloq“ programin? ?rang?, taip pat kit? suderinam? vaizdin? programavimo programin? ?rang?, naudojan?i? blokus. Žemiau pateikiamas programin?s ?rangos kodas, reikalingas kiekvienai programinei ?rangai.
„Arduino“ kodas
- Parsisi?skite „Arduino“ programin? ?rang?ir atlikite ?diegimo proces?.
- Paleiskite „Arduino“ program? ir paleid? nukopijuokite ? j? toliau pateikt? program?:
#include int PortSoil = A0, SoilSensor; // Analog port of the soil moisture sensor; dependent on the data reading on a scale from 0 to 1023. float Moisture; // Value of the plant humidity on a scale from 0 to 100 int LED = 4; // Digital port of the LED int Degree ; // Dependent on the servomotor degrees Servo motor1; // Declare the servomotor as motor1 void setup() { // Put your setup code here, to run once: Serial.begin (9600); // Configuration for amount readings motor1.attach (9); // Digital port pwm 9 where servomotor 1 is connected Degree = 15; // Servomotor at 15º motor1.write (Degree); // } void loop() { // Put your main code here, to run repeatedly: SoilSensor = analogRead (PortSoil); // Sensor amount readings on a scale from 0 to 1023 Moisture = (SoilSensor / 10.23); // Saved and conversion from amounts to a scale from 0 to 100 Serial.println(Moisture); // Show the amounts of the plant's humidity on a scale from 0 to 100 on the screen. if(Moisture < 50) // If the amount of Moisture is less than 50 { digitalWrite (LED, HIGH); // LED = ON for(int x=0; x<25; x++) // Move the servomotor 25 times at intervals of 5 degrees every 0.1 seconds so that the cup pours water. { motor1.write(Degree); // Servomotor = degrees of Degree Degree = Degree+5; // Degree increased by 5 degrees delay(100); // Wait time of 0.1 seconds } delay (2000); // Wait time of 2 seconds Degree = 15; // Degree is equal to 15 degrees } else // If the reading of Moisture is greater than 50 { motor1.write(15); // Servomotor at 15 degrees digitalWrite (LED, LOW); // LED = OFF } }
- Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai.
Kodas skirtas suderinamai vaizdinei programavimo programinei ?rangai, naudojan?i? blokus
- Parsisi?skite programin? ?rang? ir atlikite ?diegimo proces?.
- Paleiskite program? ir paleid? nukopijuokite ? j? toliau pateikt? kod?:
- Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai.
„BitBloq“ kodas
- Parsisi?skite „BitBloq“ programin? ?rang?..
- Paleiskite „BitBloq“ program? ir paleid? nukopijuokite ? j? toliau pateikt? kod?:
- Aparatin? ?ranga
- Programin? ?ranga
- Aparatin? ?ranga
- Sukonfig?ruokite ir ?kelkite kod? pagal instrukcijas, kurios yra pateiktos dokumente „4in1 Build&Code“ plokšt?s pirmieji žingsniai.
PRATIMO REZULTATAS:
Gavus dirvožemio dr?gm?s jutiklio rodmenis, žinote, kada augalui reikia vandens ir kada jis vandens turi pakankamai. Remiantis šiomis vert?mis, automatin? laistymo sistema prireikus augal? palaistys. Dabar j?s turite savo nuosav? automatin? laistymo sistem?!