Aprinderea automată a luminii într-o seră folosind Arduino. Termostat pentru sere - Modele de complexitate medie - Scheme pentru începători

Acest articol nu este doar o listă de instrucțiuni pentru replicarea serei mele inteligente, am încercat să fac o prezentare reală a automatizării sere pentru a vă inspira.

Am vrut să fac cu mâinile mele o astfel de seră inteligentă pe un microcontroler, în care plantele să nu se usuce fără supraveghere timp de câteva zile. Cei doi factori principali ai vieții plantelor într-o seră sunt apa și temperatura, așa că accentul în schema de control a fost pus pe acești factori.

Scurtă descriere a sistemului:
Apa de ploaie este colectată de pe acoperiș și stocată în rezervoare. Un rezervor de ploaie are o pompă submersibilă. Pompează apă într-un rezervor de alimentare din seră. Rezervorul de alimentare contine 7 pompe care uda direct plantele.

Toate plantele sunt plantate în ghivece, fiecare dintre cele șapte pompe este conectată la patru ghivece. În fiecare grup de patru ghivece, unul conține un senzor de umiditate a solului care transmite date către modulul Arduino. În aplicația de pe telefonul meu, pot seta nivelul de umiditate la care va produce udare automată aceste patru oale.

În seră sunt instalați doi senzori de temperatură. Dacă se încălzește prea mult, se pornește un ventilator pentru a aduce aer rece din exterior în seră (există și orificii de ventilație pe acoperișul serei ventilatie automata). Dacă temperatura scade prea scăzută, se aprinde un mic încălzitor în interiorul serei pentru a împiedica înghețul plantelor.

În paragrafele următoare voi explica punctele principale ale lucrării diferite părți sisteme.

Pasul 1: Rezervoare de ploaie



Am două rezervoare de apă de ploaie conectate la un jgheab. Rezervoarele sunt echipate cu protecție automată la supraumplere, care necesită setarea nivelului de umplere. Rezervoarele sunt conectate între ele printr-un furtun, astfel încât între ele se realizează un deversor de sifon pentru a obține același nivel de apă în ambele rezervoare.

Rezervorul cel mai apropiat de seră conține o pompă submersibilă și un senzor ultrasonic care măsoară distanța până la suprafața apei. Sunt conectate la un modul Arduino situat în seră, care trimite date către telefonul meu. Măsurarea distanței până la suprafață va împiedica, de asemenea, pornirea pompei dacă nivelul apei este sub admisia de apă.

Pasul 2: Rezervor de machiaj

Pompa furnizează apă din rezervorul de ploaie către rezervorul de completare situat în seră. Conține șapte pompe de la spălători ieftine de parbriz. Senzor cu ultrasunete controlează nivelul de umplere a rezervorului, am setat limitele la 50% și 75% pentru modul automat. Umplerea se face dintr-un rezervor de apă de ploaie.

Pompele 1-4 sunt conectate la grupuri de patru oale, pompele 5 și 6 sunt de rezervă, iar pompa 7 este conectată la o duză a umidificatorului. Pe acesta din urmă l-am făcut ca experiment, urmărind următoarele obiective: în primul rând, răcirea aerului, iar în al doilea rând, creșterea umidității, care le place foarte mult castraveților.

Pasul 3: Senzori de umiditate a solului în ghivece

Senzorii de umiditate a solului colectează și trimit date la fiecare jumătate de oră. Valoarea setată și datele de la senzori sunt reflectate pe ecranul telefonului și pot schimba setările și de pe telefon.

Pasul 4: Raft turbulent pentru oale

Furtunurile merg de la pompă la suporturile de turbulență din cele patru oale.

Pasul 5: ventilator

Funcționarea ventilatorului depinde de valoarea setată în telefon și este controlată de PWM (Pulse Width Modulator), în funcție de cât de mai mare este temperatura curentă decât valorile setate.

Pasul 6: Senzori de temperatură

Pentru a măsura temperatura, am instalat doi senzori DS18B20 cu un singur fir, unul în sus și unul în jos. Datele de la acestea sunt transmise la fiecare zece minute. În funcție de citiri, pornesc ventilatorul sau încălzitorul.

Pasul 7: umidificator

Duză de pulverizare pentru creșterea umidității și răcire a aerului dacă ventilatorul nu poate face față.

Pasul 8: Sistemul de control Arduino

Acum nu voi da un program de control pentru Arduino, în timp ce atașez o fotografie a conexiunii plăcii cu diverse relee și altele asemănătoare. Această încurcătură de fire a fost cauzată de modificările pe care le-am făcut după fiecare test.

Pasul 9: Interfața Blynk

Atasez poze cu interfata pentru automatizarea serelor. A fost realizat folosind aplicația Blynk.

Prima imagine: arată o indicație de nivel scăzut al apei în rezervoare sau o eroare de semnal. In ambele cazuri opresc pompele. Precum și un grafic al datelor istorice privind nivelul apei din ambele rezervoare.

A doua imagine: date de monitorizare a temperaturii, de asemenea, cu un grafic al istoricului datelor. Aici puteți vedea valorile setate pentru temperaturile maxime și minime din seră. Temperaturile medii sunt afișate împreună cu procentul de putere a ventilatorului atunci când temperaturile depășesc valorile setate. De asemenea, puteți vedea dacă încălzitorul funcționează.

A treia imagine: date de la senzorii de umiditate a solului și valoarea setată pentru începerea irigației. Numărătoare inversă până la următoarea măsurătoare, interval 30 min. Un grafic al istoricului măsurătorilor cu citirile obținute.
A patra imagine: capacitatea de a controla funcționarea pompelor direct de pe telefon, în principal în scopuri de depanare. Tot aici pot pune părți ale sistemului în modul automat. Și setați durata sesiunilor de udare.

Pompe automate: pompa rezervorului de ploaie și pompele rezervorului de alimentare intră în modul automat, adică apa umple rezervorul de alimentare și plantele sunt udate.
Udare 13:00 (udare 13:00): în regim automat, plantele sunt udate o dată pe zi, la ora 13:00.

Răcire automată: ventilatorul este în modul automat și va începe să funcționeze când temperatura crește peste valoarea setată. Cu cât crește temperatura, cu atât puterea ventilatorului este mai mare.

Încălzitor automat: Încălzitorul este în modul automat și va începe să funcționeze imediat ce temperatura scade sub valoarea setată. Histerezisul este de 1°, adică încălzitorul se va opri imediat ce temperatura depășește valoarea setată cu 1 grad.

Sere sunt concepute pentru a oferi un microclimat optim pentru creșterea și dezvoltarea plantelor. Acestea pot fi clădiri industriale mari sau un loc mic pe pervaz pentru cultivarea florii tale preferate. Dar chiar și cea mai mică seră de pe pervaz are nevoie de îngrijire: udare, menținere a temperaturii dorite, nivel de lumină etc.

Mulți sunt fericiți să se apuce de o astfel de agricultură, dar pur și simplu nu au energia sau timpul pentru asta. Și doar un vis sugerează: dacă ar exista un design care ar fi atât de inteligent încât ar face totul singur. O astfel de seră va fi solicitată de cei care nu doresc să petreacă mult timp îngrijind plantele și, de asemenea, este posibil să nu aibă posibilitatea de a face acest lucru în cazul unei absențe lungi - călătorii de afaceri, vacanțe etc.
Vom începe să creăm o astfel de seră, să o numim inteligentă. Și ne va ajuta să creăm Controler inteligent pentru seră Arduino. Ce funcții va îndeplini o seră inteligentă?
În primul rând, este necesar să obținem rapid toate informațiile necesare despre parametrii climatici ai serei noastre: temperatura și umiditatea aerului, temperatura și umiditatea solului, iluminarea serei. Aceste. monitorizează parametrii climatici ai serei.

Ce problemă a clientului va rezolva funcția de monitorizare?În primul rând, va elimina îngrijorările cu privire la faptul că totul este în regulă cu plantele în timpul absenței lui: există apă în sistem, a fost întreruptă curentul electric, poate sistemul de ventilație să ofere temperatura dorită dacă camera devine prea caldă etc. .

Puteți afișa datele de monitorizare pe afișaj sau puteți utiliza LED-uri pentru a notifica valorile critice ale parametrilor climatici sau puteți primi date prin Internet sau pe o tabletă.
În continuare, este necesar să se implementeze capacitatea de a controla sera - udarea, încălzirea, ventilarea plantelor și reglarea luminii plantelor. Controlul se poate face automat sau de la distanță (prin Internet sau prin telefon (tabletă)).

Următoarea etapă este funcția de autonomie a serei. Când nivelul de umiditate a solului scade sub o anumită valoare, este necesar să porniți udarea atunci când temperatura din seră scade, este necesar să porniți încălzirea serii în funcție de un anumit ciclu; .

Figura 1. Reprezentarea schematică a unei sere inteligente

În lecțiile noastre ne vom uita la implementarea practică a unui proiect de seră inteligentă. Să creăm un proiect inteligent de seră -
„Floarea de acasă” Și să începem cu implementarea funcției de monitorizare a parametrilor serei. Pentru a monitoriza, trebuie să obținem următoarele date despre mediul florii noastre:

  1. temperatura aerului;
  2. umiditatea aerului;
  3. umiditatea solului;
  4. iluminarea florii.

Pentru a implementa funcția de monitorizare avem nevoie de următoarele detalii:

  1. Arduino Uno;
  2. cablu USB;
  3. Placă de prototipare;
  4. Fire tată-tată – 15 buc;
  5. Fotorezistor – 1 bucată;
  6. Rezistor de 10 kOhm – 1 bucată;
  7. Senzor de temperatura TMP36 – 1 bucata;
  8. Modul de temperatură și umiditate aerului DHT11 – 1 buc.
  9. Modul de umiditate a solului – 1 buc.

Pozițiile 1-6 sunt disponibile în kiturile din seria „Dare” („Basic”, „ ” și „Smart Home”), senzorul de temperatură TMP36 este disponibil în kiturile „Basic” și „Learning Arduino”. Link-urile către pozițiile 8 și 9 vor fi date la sfârșitul articolului.
În primul rând, să ne familiarizăm cu senzorii pe care îi vom folosi pentru funcția de monitorizare a parametrilor proiectului nostru.
Folosind un fotorezistor (Figura 2), se măsoară iluminarea. Cert este că în întuneric rezistența fotorezistorului este foarte mare, dar când lumina îl lovește, această rezistență scade proporțional cu iluminarea.

Figura 2. Fotorezistor

Senzorul de temperatură analogic TMP36 (Figura 2) vă permite să convertiți cu ușurință nivelul tensiunii de ieșire într-o citire a temperaturii în grade Celsius. Fiecare 10 mV corespunde la 1 0C Puteți scrie o formulă pentru a converti tensiunea de ieșire în temperatură.

0C = [ (Vout în mV) - 500] / 10

Offset -500 pentru lucrul cu temperaturi sub 0 0C.

Figura 3. Senzor de temperatură analogic TMP36

Senzorul DHT11 este format dintr-un senzor capacitiv de umiditate și un termistor. În plus, senzorul conține un ADC simplu pentru conversia valorilor analogice ale umidității și temperaturii. Vom folosi senzorul în versiunea de modul pentru Arduino (Figura 4).

Figura 4. Modulul DHT11

Modulul de umiditate a solului (Figura 5) este conceput pentru a determina conținutul de umiditate al solului în care este scufundat. Vă permite să aflați despre udarea insuficientă sau excesivă a gospodăriei dvs. sau plante de gradina. Modulul este format din două părți: o sondă de contact YL-28 și un senzor YL-38, sonda YL-28 este conectată la senzorul YL-38 prin două fire. Se creează o tensiune mică între cei doi electrozi ai sondei YL-28. Dacă solul este uscat, rezistența este mare și curentul va fi mai mic. Dacă pământul este ud, rezistența este mai mică, curentul este puțin mai mare. Pe baza semnalului analogic final, puteți judeca gradul de umiditate.

Figura 5. Modulul de umiditate a solului

Acum să asamblam circuitul prezentat în Figura 6 pe o placă de breadboard.

Figura 6. Schema de conectare pentru parametrii de monitorizare pentru „Floarea de acasă”.

Să începem să scriem schița. Fotorezistorul, senzorul de temperatură TMP36 și modulul de umiditate a solului sunt senzori analogici obișnuiți. Pentru senzorul TMP36, putem converti valorile analogice în citiri de temperatură în grade Celsius. Pentru a lucra cu modulul DHT11 vom folosi biblioteca Arduino DHT (Descărcare). Vom măsura datele la intervale de 5 secunde și vom trimite valorile către portul serial Arduino.
Să creăm o nouă schiță în Arduino IDE, să adăugăm codul din Lista 1 în ea și să încărcăm schița pe placa Arduino. Vă reamintim că în setările Arduino IDE trebuie să selectați tipul plăcii ( Arduino UNO) și portul de conectare la bord.

Listarea 1.

// conectarea bibliotecii DHT #include "DHT.h" // tip senzor DHT #define DHTTYPE DHT11 // contact pentru conectarea datei de intrare a modulului DHT11 int pinDHT11=9;

// contact pentru conectarea ieșirii analogice a modulului de umiditate a solului int pinSoilMoisture=A0;

// contact pentru conectarea ieșirii analogice a senzorului de temperatură TMP36 int pinTMP36=A1;

// contact pentru conectarea ieșirii analogice a fotorezistorului int pinPhotoresistor=A2; // instanțierea unui obiect DHT DHT dht(pinDHT11, DHTTYPE); void setup() ( // pornește portul serial Serial.begin(9600); dht.begin(); ) void loop() ( // primește date de la DHT11 float h = dht.readHumidity(); if (isnan(h) ) ) ( Serial.println("Nu s-a putut citi de la DHT"); ) else ( Serial.print("HumidityDHT11= "); Serial.print(h);Serial.println(" %"); ) // obținerea valoarea de la ieșirea analogică a modulului de umiditate a solului int val0=analogRead(pinSoilMoisture("SoilMoisture= "); to mV int mV=val1*1000/1024 // conversie în grade Celsius t=(mV-500)/10("TempTMP36= "// obținerea valorii de la ieșire analogică a fotorezistorului int val2=analogRead(pinPhotoresistor) Serial.print("Serial.println(val2); // pauză 5 secunde Serial.println(); (5000);

După ce ați încărcat schița pe placă, deschideți monitorul portului serial și observați ieșirea valorilor cu citirile senzorilor noștri (Figura 7).

Figura 7. Ieșirea valorilor cu citirile senzorilor noștri către monitorul portului serial Arduino.

Și iată floarea noastră crescută (Figura 8).

Figura 8. Proiectul „Floare de acasă”

Vizualizarea citirilor senzorului printr-un port serial nu este în întregime convenabilă în lecția următoare;
După cum am scris deja în ultima parte, inițial nu era planificată configurarea parametrilor serei folosind butoane cu afișaj pe afișaj, așa că am furnizat butoane și comutatoare în cutie.
Toate acestea ar putea fi implementate și programatic, dar din moment ce le-am făcut deja, își păstrează funcționalitatea:
Comutator de încălzire a solului (încălzire oprită / încălzire automată pornită),
- buton de udare,
- comutator mod de udare (o data pe zi / de doua ori pe zi)
- buton pentru aprinderea luminii de fundal a display-ului, instalat deasupra sertarului. Aprinde lumina de fundal timp de 30 de secunde.

Este imediat clar că toate acestea sunt pentru cazurile în care ceva nu merge brusc cu automatizarea.
Acum despre setările care pot fi setate din butoanele de pe panou. În această iarnă, încercând să simulez cât mai mult posibil o seră, am lucrat la scrierea codului pentru o cutie întinsă pe masă.

Deci, meniul principal este format din 3 elemente:
1. Meniul Setări.
2. Setarea datei și orei.
3. Program de testare pentru întrerupătoare de limită și motoare de deschidere a ferestrelor.

Totul este clar cu setarea datei și orei. Program de testare - pentru a conecta ferestrele, a le conduce folosind butoane, a verifica cum se închid, dacă sunt conectate corect, a regla funcționarea întrerupătoarelor de limită etc.

În meniul de setări puteți seta următorii parametri:

1. Timp de udare.
2. Ora a doua udare (dacă modul de udare este activat de 2 ori pe zi)
3. Timpul de colectare a apei.
4. Temperatura de deschidere a ferestrei.
5. Temperatura de închidere a geamului.
6. Temperatura de pornire pentru încălzirea solului.
7. Temperatura de oprire a încălzirii solului.
8. Temperatura de pornire a încălzirii aerului.
9. Temperatura de oprire a încălzirii aerului.

Soția a spus că, deoarece nu există rezervă și protecție dacă întrerupătoarele de limită nu funcționează, este, de asemenea, necesar să se stabilească limita pentru funcționarea pompei și a motoarelor ferestrelor. Aceasta a fost o remarcă corectă și corectă, așa că a trebuit să introduc următoarele setări:

10. Limitați timpul de funcționare al motorului de deschidere a ferestrei 1.
11. Limitați timpul de funcționare al motorului de deschidere a ferestrei 2.
12. Limitați timpul de funcționare al motorului de închidere a geamurilor 1.
13. Limitați timpul de funcționare al motorului de închidere a geamului 2.
14. Limitați timpul de funcționare a pompei.
15. Timpul de funcționare al pompei pentru a începe irigarea.

Acum, pentru a ilustra cum funcționează meniul, vă sugerez să vizionați un scurt videoclip:/p>

În ciuda faptului că mai aveam zăpadă la mijlocul lunii aprilie, am instalat unitatea de control în seră și am conectat încălzirea solului (pardoseală caldă) deocamdată fără automatizare și încălzirea aerului cu un încălzitor cu control automat. După ce a trecut o săptămână și solul s-a încălzit până la 30 de grade, în momentul inspecției încălzitorul este oprit, temperatura aerului este de 22 de grade - soarele funcționează deja așa cum ar trebui.
În plus, pe 15 aprilie am activat ventilația automată pentru a-i observa funcționarea. De asemenea, puteți vedea cum funcționează auto-ventilația în videoclip:

Am încercat următoarele setări:

Deschiderea ferestrei 25 de grade;
- inchiderea geamurilor la 21 de grade;
- pornirea încălzitorului la 18 grade;
- opriți încălzitorul la 20 de grade.

Setările s-au dovedit a fi suboptime. Adica temperatura afara este de 8 grade si bate vant. Aproximativ la fiecare 20 de minute temperatura în seră a ajuns la 25 de grade, ferestrele s-au deschis, sera a fost rapid ventilată, ferestrele au început să se închidă la 21 de grade, în timp ce se închideau, temperatura a scăzut și mai jos, așa că imediat după închiderea ferestrelor pt. 5 minute. încălzitorul a pornit.

Setări schimbate:

Deschiderea ferestrei 28 de grade;
- inchiderea geamurilor la 22 de grade;
- pornirea încălzitorului la 16 grade;
- încălzire oprită la 19 grade.

Totul s-a așezat, sera a încetat să-și trântească geamurile. Poate că trebuie să instalați un senzor de temperatură în exterior și să corelați cumva controlul temperaturii din seră pe baza citirilor sale.

Timp de două săptămâni, nu numai că sistemul automat de menținere a temperaturii a fost testat în seră, dar au fost plantați și castraveți pe 20 aprilie. Acum vă voi spune despre udarea automată. Designul său în sera mea arată cam așa:>

Dintr-un rezervor mare, o dată pe zi la o anumită oră (setată folosind meniul), apa este turnată într-un rezervor situat în seră cu ajutorul unei pompe. In cazul meu la 10-00. Cantitatea de apă este determinată de activarea senzorului de plutire. Pentru orice eventualitate, prin meniu puteți seta timpul maxim de funcționare al pompei (protecție împotriva defecțiunii senzorului. Deci, apa s-a umplut:

După aceasta, apa din rezervor este încălzită toată ziua în seră, care este caldă. Și seara, am setat la 19-00, pompa pornește timp de 40 de secunde, apa se revarsă și prin gravitație, conform legii vaselor comunicante, se revarsă pe patul grădinii:

Cum am configurat udarea automată poate fi văzut și în videoclip:

La începutul lunii mai, temperatura a scăzut la -8C în câteva nopți. Încălzitorul funcționa, temperatura în seră nu era mai mică de +12C, temperatura solului era de +20C. Lucrul în acest mod a dezvăluit deficiențele releelor ​​chinezești. În ciuda faptului că specificațiile indică 10A 250V, iar încălzitorul este de 1kW, releul responsabil pentru pornirea încălzitorului de aer a început să se încălzească și să se „lipească”. A trebuit să pun în serie un releu mai puternic. Udarea automată este în prezent activată și funcționează. Săptămâna viitoare sper să aduc sera online ca să-i pot observa parametrii pe site-ul meu.
În prezent, schița pentru Arduino arată astfel: https://ideone.com/GvHs7u Vă rugăm să nu criticați codul - sunt programator începător, dar codul funcționează, ceea ce a fost dovedit, deși pentru scurt timp, de operare.

GuyverControl– un temporizator universal pentru sere și alte locuri unde este necesară automatizarea folosind un temporizator sau indicatori de microclimat/alți senzori, are 10 canale de control configurabile separat, este asamblat din componente chinezești ieftine și înlocuiește mai multe controlere „cumpărate din magazin” în diverse scopuri: udarea, controlul luminii, deschiderea ușilor și multe altele. Poate fi folosit atat pentru sere/paturi, cat si pentru acvarii, terarii, incubatoare si alte sisteme automate. Asigurați-vă că citiți documentația către controler (link-urile de mai sus), toate posibilitățile sunt descrise acolo în detaliu. Iată doar o listă scurtă!

Acest proiect este complet deschis, adică oricare dintre voi poate face un controler pentru o seră cu propriile mâini. GyverControl combină un controler pentru udare, iluminare, ventilație și multe altele. Cel mai important lucru este că puteți să vă faceți un astfel de controler inteligent de seră pentru dvs. la preț, de exemplu. la prețul de vânzare cu amănuntul al componentelor chinezești. Și este foarte ieftin.

Fier:

  • ArduinoNano(ATmega 328p) ca controler principal al sistemului
  • 7 canale cu o ieșire logică de 5V, la care puteți conecta un releu obișnuit, un releu solid, întrerupătoare de alimentare (tranzistoare, module pe bază de tranzistori)
  • 2 canale servo, conectați modele convenționale de servo de dimensiuni mari și mici
  • 1 canal controlul unei acționări electrice liniare cu întrerupătoare de limită de mișcare și funcționare cu time-out
  • Senzor de temperatura aerului ( BME280)
  • Senzor de umiditate a aerului ( BME280)
  • 4 senzori analogici(umiditatea solului sau altele)
  • Modul de referință (în timp real). RTCDS3231 autoalimentat
  • Mare Afișaj LCD(LCD 2004, 20 de coloane, 4 rânduri)
  • Corpul de conducere - codificator
  • Suportă senzori de umiditate DHT11/DHT22, temperatură DS18b20 și termistor

Caracteristici software:

  • Stocarea tuturor setărilor în memoria nevolatilă ( nu resetați la repornire)
  • Senzorii de umiditate a solului (toți senzorii analogici) nu sunt sub tensiune constantă, se serveste numai la momentul sondajului, care vă permite să prelungiți durata de viață chiar și a celor mai ieftini senzori de umiditate a solului (tensiunea este aplicată cu 50 ms înainte de sondare și se oprește la 50 ms după).
  • Optimizat afişarea datelor
  • Fiecare dintre cele 10 canale (7 relee, 2 servo-uri și 1 drive) are setări individualeși poate funcționa prin temporizator sau senzori
  • 4-6 moduri de operare fiecare canal: trei temporizatoare diferite și funcționare condiționată de la senzori, moduri PID și zori
  • Servo funcționează cu biblioteca mea ServoSmooth, acest lucru le asigură deplasarea lină: accelerare și frânare lină cu o limită de viteză maximă, precum și absența smucirilor și a mișcărilor neplanificate la pornirea sistemului
  • Acționarea liniară are întrerupătoare de limită,butoane externe pentru management și setarea vitezei miscarile. Frecvența driverului PWM este de 31 kHz, adică nu scârțâie
  • Ecran de depanare, unde sunt afișate toate informațiile curente despre starea hardware-ului și a senzorilor
  • Diagrame temperatura și umiditatea aerului și citirile de la senzorii analogici în ultimele 24 de ore
  • Meniu de servicii, permițându-vă să controlați manual fiecare piesă hardware

Aplicație ca controler de seră/cutie:

  • Udare periodica (releu)
    • Schema cu pompe/supape individuale
    • Schema cu o pompa si mai multe supape
  • Udare pe baza citirilor de la senzorii de umiditate a solului
  • Controlul luminii (releu) în funcție de ora din zi
  • Ventilație (conducerea deschide geamul/servo deschide clapeta) pe baza senzorului de temperatură sau umiditate
  • Umidificare (pornirea umidificatorului) folosind un senzor de umiditate a aerului
  • Încălzire (pornirea încălzitorului) prin senzor de temperatură
  • Efectuarea de acțiuni servo-acționate (apăsarea butoanelor pe dispozitive, rotirea mânerelor, rotirea supapelor, mișcarea obiectelor) pe baza unui senzor sau temporizator

Aplicație ca controler de acvariu:

  • Modul Dawn pentru benzi LED (prin MOSFET) și lămpi cu incandescență (servo drive)
  • Controler PID pentru menținerea temperaturii apei
  • Servo (2 buc) pentru resetarea alimentelor
  • Canalele rămase pot fi folosite de temporizatoare pentru a rula filtre/aeratoare/iluminare de fundal

Alte utilizări:

  • Sistemul acceptă 4 senzori analogici, aceștia nu trebuie neapărat să fie senzori de umiditate a solului, chinezii au o mulțime de alte „module de senzori” care exact la fel conectat la circuit:
    • Senzor de lumină: sistem de iluminat inteligent, iluminare de rezervă
    • Termistor(până la 80 de grade): control încălzire obiect
    • Senzor de sunet: închiderea geamului când este mult zgomot afară (de ce nu? =))
    • Senzor IR(senzor de incendiu) - diferite opțiuni pentru semnalizare, sau chiar stingere (porniți pompa de apă, deschideți robinetul servo)
    • Senzor de ploaie: inchiderea geamurilor, semnalizare, pornirea pompelor pentru pompare
    • Senzor de nivel al apei/senzor prezența apei: umplerea automată a rezervorului, pomparea automată a apei din rezervor/subsol cu ​​o pompă, oprirea conductelor de apă în caz de scurgere, alarmă de scurgere
    • Analizoare de gaze in stoc: alarma sau chiar ventilatie (deschide fereastra) pentru nivelul de monoxid de carbon si alte gaze industriale
    • Optic senzor de obstacol: asta necesită imaginație
    • Potențiometru: ca organism suplimentar de control al sistemului
  • Servoacționarea este un lucru destul de universal, poate deschide/închide clapele, poate apăsa butoanele altor dispozitive, poate roti butoanele de reglare ale altor dispozitive și, cu o biela atașată, are capacitatea de a muta liniar obiecte/glisoare ale altor dispozitive. dispozitive. Sunt servo-uri dimensiuni diferite, de la micro (2 kg/cm) și mediu (13 kg/cm) la foarte puternic (50 kg/cm)
  • Releul poate închide contactele de alimentare și poate controla orice dispozitiv, de asemenea, releul poate porni o sursă de alimentare (de exemplu, o bandă LED). Releul poate fi plasat paralel cu firele la butonul altui dispozitiv și îl va porni sau opri.
  • Versiunea 1.4 și o versiune superioară vă permite să mențineți temperatura folosind un controler PID, pt
    terarii/incubatoare/orice menținere a temperaturii:
    – Aplicați un semnal PWM tranzistorului cu efect de câmp care controlează încălzirea
    – Rotiți butonul de reglare a rețelei cu ajutorul unui servomotor
  • Versiunea 1.4 și o versiune ulterioară are un mod Dawn care vă permite să utilizați controlerul pentru
    acvariu/terariu și alte „ferme de animale”
  • Principalul organ de conducere este codificator, al cărui mâner poate rotiți și apăsați(este un buton). Când sistemul pornește, ajungem la setarea canalului 0. Prin rotirea mânerului codificatorului, puteți muta cursorul de selecție (săgeata) prin elementele de meniu. Pentru a modifica valoarea articolului selectat, aveți nevoie apăsați butonul codificator și rotiți-l în timp ce îl țineți apăsat. De asemenea, puteți face clic pe butonul, cursorul se va schimba de la o săgeată la o bifă > , iar prin rotire puteți modifica valoarea selectată. Făcând clic din nou, se va întoarce săgeata, care poate fi folosită pentru a selecta un alt element de meniu. Țineți rotația când este selectat numele canalului – schimbați canalul pentru acord. Derulați la dreapta și vom avea în ordine 7 canale relee, două servomotoare și o unitate liniară.
  • Pentru a continua la setarea modului, aveți nevoie plasați cursorul peste el și faceți clic pe butonul fără să se întoarcă. Se va deschide o fereastră de setări ale modului, din care puteți ieși făcând clic pe semnul ÎNAPOI. Ținând și rotind butonul de pe numele modului selectat, puteți schimba modul, sunt 4 în total.
  • La rădăcina meniului(selectarea canalului) derularea la stânga canalului 0 va deschide ecranul de depanare ( DEBUG) și modul de service ( SERVICIU). Ecranul de depanare afișează toate pozițiile actuale ale releului, actuatoarele și citirile senzorilor. Rotirea butonului de pe ecranul de depanare derulează secvenţial diagrame zilnice citiri de la senzori: temperatura aerului, umiditate și citiri de la senzori analogici. Diviziunile de pe grafic au un pas 1,6 ore. Pe ecranul de service, puteți controla orice canal în modul manual când ecranul de service este activ, automatizarea nu funcționează, sistemul este complet în modul manual; Prin rotirea butonului, puteți selecta canalul dorit, poziția servo sau setarea actuală a orei și țineți apăsat rotirea pentru a o schimba.
  • Dacă porniți sistemul cu mânerul prins codificatorul se va întâmpla resetare completă canale și moduri.

Moduri de operare a canalului

  1. Cronometru– temporizator periodic simplu: sunt setate perioadele PAUZE si timp FABRICĂîn formatul HH:MM:SS. Cu perioada PAUZĂ, acțiunea selectată este efectuată și executată în perioada de LUCRU. De exemplu, PAUZĂ costă 1 oră, LUCRU costă 10 secunde. În fiecare oră va exista o acțiune timp de 10 secunde, adică dacă este selectat un canal de releu, releul se va porni și se va opri după 10 secunde, apoi se va porni din nou după o oră și se va opri după 10 secunde și așa mai departe. Modul în care se comportă canalul în secțiunea OPERATION este specificat în parametrul DIRECTION, adică poate fi pornit/opritŞi oprit/pornit(releu), dreapta/stângaŞi stânga/dreapta(servo) și deschide/închideŞi închide/deschide(actuator liniar). Acest mod nu este legat de timp real, repornirea sistemului resetează cronometrul curent. Atenţie! MUNCĂ nu ar trebui să fie mai lungă decât o PAUZĂ!
    • Min. valoare: 1 secundă
    • Max. valoare: 999 ore
    • Referință în timp real: nr
  1. CronometruRTC– un cronometru periodic, spre deosebire de cel precedent, este legat de timp real și are o setare PERIOADĂ includere și durată FABRICĂ(în secunde) care vor fi efectuate și ÎNCEPUT– ora inițială de la care începe perioada ( pentru perioade mai mari de 2 ore). De exemplu, perioada 15 minute, operațiune 10 secunde: la fiecare 15 minute va avea loc o acțiune cu durata de 10 secunde. Conectarea la timp real funcționează după cum urmează: acțiunea va fi efectuată cu perioada selectată de la începutul orei, adică dacă se selectează 15 minute, atunci acțiunea va fi la 0, 15, 30 și 45 minute toată lumea ore. Dacă PERIOADA selectată este mai mare de o oră (două sau mai mult), atunci puteți selecta ora START de la care va începe numărătoarea inversă. Toate perioadele sunt multiple de 24 de ore, așa că munca începe la aceleași ore în fiecare zi! Exemplu: PERIOADA 8 ore, ora de pornire 0. Acțiunea se va efectua la 0, 8 și 16 ore ale fiecărei zile. Dacă setați ora inițială (START) la ora 3, atunci acțiunea va fi efectuată la ora 3, 11 și 19 în fiecare zi. Când alimentarea este resetată, următoarea acțiune va fi efectuată la cea mai apropiată oră de alarmă. Atenţie! MUNCĂ nu trebuie să depășească PERIOADA!
    • Perioade selectabile: la fiecare 1, 5, 10, 15, 20, 30, 60 de minute și 1, 2, 3, 4, 6, 8, 12, 24 de ore
    • Aplicare: udare in sisteme hidroponice, ventilatie fara senzor
Perioadă O dată pe zi Când funcționează
1 min 1440 În fiecare minut
3 min 480 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57 min. în fiecare oră
5 min 288 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55 min. în fiecare oră
10 min 144 0, 10, 20, 30, 40, 50 min. în fiecare oră
15 min 96 0, 15, 30, 45 min. în fiecare oră
30 min 48 0,30 min. în fiecare oră
1 oră 24 În fiecare oră
2 ore 12 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22 de ore din fiecare zi (+ schimb la ora de începere)
3 ore 8 0, 3, 6, 9, 12, 15, 18, 21 de ore din fiecare zi (+ schimb la ora de începere)
4 ore 6 0, 4, 8, 12, 16, 20 de ore din fiecare zi (+ schimb la ora de începere)
6 ore 4 0, 6, 12, 18 ore din fiecare zi (+ schimb la ora de începere)
8 ore 3 0, 8, 16 ore din fiecare zi (+ schimb la ora de începere)
ora 12 2 0,12 ore în fiecare zi (+ schimb la ora de începere)
24 de ore 1 Ora 0 în fiecare zi (+ schimb la ora de începere)
  1. Săptămână(anterior Ziua) - un cronometru simplu pentru o acțiune cu referire la timp real, are o setare Pe(ora în format HH:MM:SS) – ora de la care acțiunea este activă și Oprit(ora în format HH:MM:SS) – ora de la care acțiunea nu este activă. Există, de asemenea, 7 „celule” - zile ale săptămânii Zile, de luni până duminică. La repornire, acțiunea va reveni la poziția dorită în funcție de ora curentă. Exemplu: cronometrul este setat la 6 și 20 de ore (Start și Stop). Acțiunea corespunzătoare canalului curent și parametrului Direcție va fi activă între orele 6:00 și 20:00 și inactivă între orele 20:00 și 6:00 a doua zi. În cazul unei reporniri bruște, sistemul va efectua acțiunea așa cum ar trebui să fie în această perioadă de timp, adică din exemplul anterior, dacă are loc o repornire bruscă între 6 și 20 de ore, la pornire sistemul va activa acțiunea prin canal. Atenţie! Pornit trebuie să fie mai mic decât Off!
    Modul are și o setare Global, care forțează orice alt mod să funcționeze „la program” Săptămâna. Ce oferă acest lucru: de exemplu, puteți configura udarea marți și vineri între orele 17 și 18 (din butoi), bifați caseta globală și configurați modul Senzor pentru udare. Cum va funcționa: sistemul va uda acest canal folosind modul Senzor, dar o va face numai la un program (marți și vineri 17-18).
    • Selectați ziua săptămânii
    • Selecția timpului: 0-23 ore, multipli de 1 oră
    • Referință în timp real: da
    • Aplicare: ideal pentru iluminare și udare rar
  1. Senzor– acțiune bazată pe senzori. Cu perioada de votare PERIOADĂ a apelat senzorul selectat SENSOR iar când valoarea prag este depăşită PRAG acțiunea se realizează în funcție de canalul selectat (releu/servo/drive). Perioada de interogare este specificată în secunde sau minute (în creștere). Senzorul este selectat din lista: T.VDM.- temperatura aerului, V.VDM. SENS_1 De SENS_4. Valoarea THRESHOLD este setată de la 0 la 1023 cu pași de la 1 până la o valoare de 50 și cu pași de 10 începând de la 50 (senzorii de umiditate a solului au un interval de valori 0-1023). De exemplu, este selectat un senzor de temperatură a aerului, perioada de interogare este de 1 oră și valoarea de prag este de 25. În fiecare oră, sistemul verifică temperatura dacă se depășește 25 de grade, se va efectua acțiunea corespunzătoare canalului (pornire releu, deschide fereastra). Verificarea se va face din nou peste o oră.
    • Aplicație: deschiderea/închiderea clapetelor în funcție de temperatură/umiditate (acționare), udare în funcție de umiditatea solului, controlul unui ventilator/umidificator (releu) sau clapete (servo) în funcție de temperatură/umiditate.
  1. PID(pentru canalele 3, 4 și servo) – controler proporțional-integral-derivat, vă permite să mențineți valoarea controlată (încălzire-temperatura, clapetă-temperatura, ventilator-temperatura, ventilator-umiditate și așa mai departe) cu o precizie ridicată. Modul este disponibil pentru canalele 3 și 4 (marcate cu un asterisc), precum și pentru ambele canale servo în modul servo. Are setări de cote P, eu, D(Probabil că nu veți avea nevoie de D în munca reală, dar este încă acolo). Alege Sens– sursa semnalului de intrare – unul dintre senzori, ca în modul Senzor ( Aer t.- temperatura aerului, Aer h.– umiditatea aerului si 4 senzori analogici (umiditate sol) cu SENS_1 De SENS_4). Setări Set indică la ce valoare de citire de la senzorul selectat regulatorul va încerca să aducă sistemul. Setări
    T setează perioada de iterație a calculului, pentru procesele lente, este logic să o setați mai mare (citiți în capitolul separat „Configurarea controlerului PID”). Setări minŞi max sunt responsabili pentru semnalul de control minim și maxim de la un canal dat, pentru canalele 3 și 4 acesta este un semnal PWM, interval de funcționare 0-255. Pentru canalele servo, acesta este un unghi de 0-180 de grade.
    Aplicație: menținerea unei valori date (temperatură, umiditate) într-un mod non-releu, i.e. lin și fără incluziuni bruște. Semnalul PWM poate controla tranzistorul, care este responsabil pentru încălzitor. Servo poate roti clapetele (ventilație) sau butoanele de luminozitate pentru a controla încălzitoarele de rețea, ventilatoarele și alte echipamente.
  1. Zori(pentru canalele 3, 4 și servo) – modul „zori” pentru a controla iluminarea cu un zori și amurg lin. Modul este disponibil pentru canalele 3 și 4 (marcate cu un asterisc), precum și pentru ambele canale servo în modul servo. Se aprinde ușor la oră Început pe tot parcursul Dur minute, apoi se oprește la o oră Stop pentru Dur minute. Se aprinde până când valoarea maxima, specificat în max, și se oprește până când min. Pe canalele 3 și 4, această valoare setează ciclul de lucru al semnalului PWM, domeniul de operare este 0 - 255. Puteți controla tranzistor cu efect de câmp, De exemplu, Banda LED. Pe canalele servo, domeniul de funcționare este de 0 - 180 de grade de rotație a arborelui servo. Poate controla butonul de reglare a rețelei pentru lămpi cu LED incandescente sau reglabile.
    Aplicație: organizarea condițiilor de iluminare apropiate de cele reale pentru acvarii, terarii, coșuri de găini etc.

Setările canalului releu

  1. Direcţie– cum se comportă releul când este activat de un temporizator/senzor. ON-OFF sau OFF-ON
  2. TIP– logica funcționării releului
    • Releu– canalul releului se comportă ca un releu obișnuit și poate fi folosit pentru a controla orice DC sau AC(gestionați dispozitivele de rețea): udare cu pompe individuale, udare cu supape individuale dintr-o sursă de apă sub presiune, control umidificatoare, încălzitoare, ventilatoare, dispozitive de iluminat și orice altceva de genul acesta. Nu depinde de alte canale.
    • Supapă– un tip de canal releu pentru un sistem în care există o pompă/supapă comună de la o sursă de apă și mai multe supape individuale pentru udarea diferitelor zone. Un canal releu configurat ca supapă simultan cu activarea acestuia (prin temporizator/senzor) activează un alt canal/canale configurate ca general.
    • General– un tip de canal releu pentru un sistem în care există o pompă/supapă comună de la o sursă de apă și mai multe supape individuale pentru udarea diferitelor zone. Un canal releu configurat ca comun nu are setări de mod. În schimb el se activează singur simultan cu orice alt canal configurat ca supapă. Se dezactivează automat dacă nu există canale de supapă inactive.

Setările canalului servo

  1. Direcţie– cum se comportă servo când este activat de un temporizator/senzor. Virați în direcție MIN-MAX unghi sau invers MAX-MIN colţ
  2. Limite– unghiuri de rotație servo de la 0 la 180 de grade în trepte de 10
  3. În plus: în schița din secțiunea de setări există o setare pentru viteza maximă de deplasare a servo-urilor (SERVO1_SPEED și SERVO2_SPEED) și accelerația acestora pentru accelerare și decelerare (SERVO1_ACC și SERVO2_ACC). Nu le-am adăugat la setările meniului de servicii și canale, pentru că... nu sunt necesare foarte des.

Drive setările canalului

  1. Direcţie– cum se comportă unitatea atunci când este activată de un temporizator/senzor, DESCHIS-ÎNCHIS sau ÎNCHIS-DESCHIS
  2. Pauză– ora la care va fi dat semnalul pentru deplasarea unității. Întrerupătorul de limită (dacă există unul) va întrerupe mișcarea unității

Dragi colegi!
Aș dori să completez puțin publicațiile deja disponibile pe forum cu un mic articol care completează seria de automatizări la prețuri accesibile pentru cabane de vară. STM32, ca o serie de microprocesoare, poate completa grupul de dispozitive de automatizare construite pe Arduino.
Puțină istorie - de ce s-a născut în primul rând un astfel de sistem. De curând am devenit mândrul proprietar a 140 de tufe de zmeură remontanți și, bineînțeles, i-am plantat. În ciuda faptului că s-au făcut eforturi, rezultatul a fost dezastruos. Plantarea a fost acoperită cu mulci și echipată irigare prin picurare- dar mai mult de jumătate din tufișuri s-au dovedit a fi neviabile până în toamnă. Ceea ce este surprinzător este că nu au fost observate dăunători sau boli. Tocmai acesta a fost imboldul pentru începerea lucrului.
În primul rând, a fost efectuată o analiză a apei - și s-a dovedit că apa are o compoziție care nu este foarte bine acceptată de zmeură. Vestea tristă este că asta înseamnă că fără un sistem special de pregătire este imposibil să folosești apa care este pur și simplu disponibilă în exces pe site. Desigur, internetul mă ajută - iar rezultatele sunt pur și simplu șocante... Prețul unui sistem gata făcut depășește 270 de mii de ruble și nu îl puteți cumpăra pur și simplu - este realizat individual, iar pentru volumul meu Sony are prea multa performanta. A devenit o rușine pentru țară – iar acum, după un an (!) de muncă, s-a născut un sistem care a trecut cu succes testele și anul acesta va controla udarea și fertilizarea plantărilor mele. Și nu numai zmeură.
De fapt, vei observa pe bună dreptate - asta este aterizări deschise, și aici discutăm despre teren închis. Da – adevărul este că colegul meu, care are 3 sere, s-a interesat de proiect. Și acum i-au fost făcute controlere într-o serie mică, fotografii din care le vedeți mai jos

Câteva detalii tehnice - placa principală este o placă de depanare cu stm32f103c8t6 instalat. Sursa de alimentare este de 220V AC, există o magistrală izolată galvanic din standardul RS485 și, de asemenea, o magistrală izolată galvanic din standardul cu 1 fir. Controlerul este liber programabil - comenzile sunt complet compatibile cu controlerul Mitsubishi FX2N.
Suportă protocolul de comunicație Modbus RTU atât pentru master, cât și pentru slave. Are, de asemenea, un al 2-lea port serial de date - dar acceptă doar modbus RTU slave.
Datorită prezenței unei magistrale cu 1 fir, funcționează cu ușurință cu senzorii de temperatură obișnuiți DS18B20. În plus, suportă până la 128 de piese.
De asemenea, aș dori să adaug la această publicație un videoclip cu funcționarea unui sistem de 4 controlere care funcționează printr-o magistrală modbus.

De ce m-am hotărât să fac o astfel de publicație? Da, este foarte simplu - la urma urmei, nu toată lumea poate ridica un fier de lipit și asambla ceea ce are nevoie. Acest controler face posibilă implementarea oricărei idei sau idei a fermierului fără cunoștințe speciale.
Am descris sistemul puțin haotic - scuze. Dacă aveți întrebări, sunteți bineveniți, voi răspunde la toate cât mai mult posibil. De asemenea, dacă această postare este ratată, voi publica materiale despre cum va fi instalat acest sistem într-o seră. Sper că această experiență va fi de folos.