Casă inteligentă pe mega 2560. Proiectați și organizați propria „casă inteligentă” folosind arduino

În timpul nostru de dezvoltare activă a științei și tehnologiei, dispozitivele electronice pătrund din ce în ce mai mult în viața oamenilor. Treptat, toate funcțiile pe care oamenii le îndeplineau cu propriile mâini cad pe umerii de fier ai mașinilor, care adesea fac lucrurile mai bine, mai rapid și cu o calitate mai bună. Mașinile inteligente devin din ce în ce mai accesibile și vine momentul când vor intra în fiecare casă.

În zilele noastre, aproape fiecare persoană, dacă are anumite cunoștințe de bază, are posibilitatea de a asambla cu propriile mâini un fel de dispozitiv electronic care este util în viața de zi cu zi. Internetul are un număr mare de forumuri tematice, site-uri cu recomandări detaliate, planuri gata făcute, coduri de program partajate de designeri experimentați. Practic, astfel de dezvoltări de casă sunt create pentru a-ți face viața mai ușoară, casa. Prin urmare, devin diverse controlere - dispozitive care pot citi orice informație specifică și, pe baza acesteia, îndeplinesc anumite funcții. Dacă o casă (apartament, cameră) este echipată cu senzori similari care vă permit să controlați o gamă largă de aspecte ale vieții de zi cu zi, atunci o astfel de casă se numește „inteligentă”.

Proiectele de casă inteligentă sunt în prezent discutate activ și sunt implementate în întreaga lume. De regulă, acestea sunt case care au o eficiență sporită a resurselor și o automatizare maximă a tuturor proceselor care au loc în viața de zi cu zi. Orice astfel de proiect are propriul său cost și propriile sale condiții de aplicare. Pentru a înțelege cât de inteligent îți poți face propria casă, hai să încercăm să înțelegem mai detaliat ce îi conferă „inteligenta”.


Ce este o casă „inteligentă”?

În forma sa cea mai extremă, o casă „inteligentă” este o structură în care toate domeniile vieții de zi cu zi a unei persoane sunt controlate de mașini. Filmele științifico-fantastice prezintă adesea exemple de astfel de case, în care un computer trezește o persoană, o pregătește de muncă, îi pregătește micul dejun, îi vorbește etc. Proiectele moderne ambițioase, din păcate, nu au fost încă implementate, deoarece mașinile nu au atins încă nivelul adecvat de dezvoltare. Prin urmare, funcțiile lor se limitează la controlul luminii, energiei, umidității, temperaturii din casă etc. De regulă, astfel de proiecte de la companii profesioniste implicate în case inteligente costă destul de mult bani mariși nu sunt disponibile pentru o gamă largă de consumatori. Dar, ca întotdeauna, există o altă modalitate - să-ți asamblați singur casa „inteligentă”.


Cum să faci asta?

Trebuie înțeles că o casă „inteligentă” este pur și simplu un set de controlere cu senzori conectați care citesc informații și execută comenzi specifice pe baza acestora. De exemplu, un regulator de încălzire. Când senzorul detectează o scădere a temperaturii sub un anumit nivel, va porni alimentarea cu căldură a încăperii. Aparatele de aer condiționat automate funcționează pe acest principiu. Și într-o casă „inteligentă”, astfel de controlere cu senzori sunt amplasate peste tot, ceea ce vă permite să acoperiți numărul maxim de sarcini cu control. Bineînțeles, pentru a-ți face propria casă „inteligentă”, vei dezvolta mai întâi un mic proiect în cap, ținând cont în el exact ce domenii ale vieții tale ai vrea să îmbunătățești și de ce ai nevoie pentru asta.

Deci, pentru a vă face casa mai autosuficientă, veți avea nevoie de controlere de care ați putut profita. Faptul este că nu este suficient să le cumpărați - trebuie, de asemenea, să le programați, să conectați surse externe de informații și să le configurați locul de muncă potrivit. Aici se pune problema lipsei de cunoștințe într-o anumită zonă, deoarece multe astfel de dispozitive sunt destul de complexe de operat și nu atât de mulți oameni pot lucra cu ele. Dar când apare cererea (cine nu ar dori să asambleze un dispozitiv electronic funcțional cu propriile mâini?), apare o ofertă corespunzătoare. O companie este în prezent aproape cel mai popular furnizor de materiale ușor de utilizat și ușor de înțeles dispozitive electronice. Aceasta este compania Arduino.

Înainte de a începe să luați în considerare acest sistem, trebuie să țineți cont de faptul că nu există un design universal de casă inteligentă pentru acest sistem. Fiecare utilizator își realizează propriul proiect special, pe care îl implementează în felul său, folosind unicul său solutii tehnice. Acesta este unul dintre avantajele sistemului, pe care îl vom lua în considerare mai jos.

Ce sunt sistemele Arduino?

Arduino este acum un designer electronic convenabil, un mediu de programare ușor de înțeles și, în general, un instrument convenabil pentru crearea propriilor modele atât pentru începători, cât și pentru profesioniști. Ceea ce face populară platforma Arduino este că este programată într-un limbaj simplu și ușor de înțeles, programele sunt transferate prin USB (nu este nevoie de programator, cu alte cuvinte, un transmițător de programe pentru dispozitivul necesar), de asemenea, codul sursă deschis (baza pe care este creată platforma, nucleul său software, cu ajutorul căruia toate programele necesare). Sursă deschisă util pentru utilizatori, deoarece își pot crea propriile programe „de casă” pe baza acestuia, mai degrabă decât să le folosească numai pe cele furnizate de Arduino însuși.


Care este esența tehnologiei Arduino? Permite unui computer obișnuit să „intră” în spațiul real și să înceapă să „simtă”. Acest lucru se realizează prin intermediul unor senzori care, folosind unele mijloace (cel mai adesea fără fir), transmit informații despre mediu iar pe baza cărora poate lua decizii independente cu privire la gestionarea unor dispozitive de control. Astfel, această tehnologie poate fi configurată pentru aproape orice. În același timp, produsele Arduino sunt universale și pot interacționa cu acestea un număr mare sisteme, atât pe un computer personal, cât și pe dispozitive mobile. Un anumit utilizator poate fie să cumpere umplutura în sine de la o placă mică și completări la aceasta într-o versiune prefabricată, fie să o asambla independent de componentele de care are nevoie. Toți conectorii de pe plăcile Arduino sunt standardizați cât mai mult posibil, ceea ce face mai ușor pentru producătorii terți să producă piese compatibile. Toate software disponibil pentru descărcare gratuită, ceea ce crește semnificativ popularitatea Arduino pe Internet.

„Versatilitatea Arduino vă va ajuta să vă economisiți banii, timpul și nervii – trei într-unul”, spun inginerii de acasă cu experiență pe diverse forumuri și comunități. De fapt, proiectul casei tale „inteligente” va fi într-adevăr mult mai ușor, pentru că nu va trebui să cumpărați componente scumpe, rare atunci când aveți o selecție largă de piese mai simple, mai ieftine, care nu sunt inferioare ca funcționalitate. În plus, popularitatea sistemului joacă, de asemenea, în favoarea dvs. - astăzi există o dezvoltare activă a codurilor, planurilor și proiectelor gata făcute pentru acesta, care sunt realizate atât de profesioniști, cât și de amatori. Toate acestea sunt combinate în biblioteci uriașe unde puteți găsi funcționalități pentru toate gusturile.


Ce ar trebui să poată face o casă „inteligentă”?

Când vine vorba de a vă crea propria casă „inteligentă”, Arduino a devenit de mult timp aproape un nume cunoscut, atât de populară este utilizarea acestei tehnologii pentru automatizare și telecomanda propria viata. Deja acum a existat un număr imens de dezvoltări ale utilizatorilor „acasă” care se bazează pe această tehnologie, iar scopul lor variază de la pur și simplu aprinderea și stingerea luminii și până la astfel de sisteme complexe cum să conduci computere.


În primul rând, trebuie să stabilim ce calități ar trebui și poate avea o casă „inteligentă”, dacă punem deoparte science fiction? La urma urmei, în designul casei tale poți asigura lucruri care nu sunt fezabile în realitate. Este puțin probabil să reușiți să găsiți un sistem care să vă aleagă automat hainele pentru serviciu. După câteva cercetări pe forumuri și site-uri web, puteți ajunge la concluzia că o astfel de casă ar trebui să poată:

  1. Ar trebui să controleze aprinderea și stingerea luminii. Cu cel mai progresiv vector de dezvoltare, nu este ușor să stingi becurile pe baza unui semnal de la telecomandă sau a unui semnal sonor (clap), ci, de exemplu, să stingi automat luminile atunci când nimeni nu este la acasă sau când toată lumea din casă doarme.
  2. Controlați temperatura din interiorul casei. Aceasta este interacțiunea unui computer automat cu sisteme de ventilație, încălzire și similare. Principiul de funcționare aici este destul de simplu: atunci când temperatura se schimbă, care este înregistrată de senzor, sistemul pornește sau oprește automat orice dispozitivele necesare. Există și perspective aici, de exemplu, crearea unui set de comenzi astfel încât după ce te culci, temperatura să scadă încet (este mai confortabil să dormi în faza adâncă într-o cameră răcoroasă) și după trezire (alarma). se stinge), dimpotrivă, crește (este mai plăcut să te trezești într-o cameră mai caldă).
  3. Monitorizare mediu extern. În spatele acestor termeni științifici se află definiția temperaturii exterioare, indicarea ploii, zăpezii și altele asemenea. De regulă, toate informațiile despre vreme ar trebui fie să fie prezentate pe un anumit ecran, fie pot fi, de asemenea, însoțite de semnale sonore. Unul dintre designeri a propus ideea de a se trezi mai devreme în caz de ploaie, deoarece în ploaie o persoană se pregătește mai încet și durează mai mult până ajunge la serviciu/școală.
  4. Comandă uși și intrare/ieșire. Această categorie include o gamă destul de largă de dispozitive diferite, cum ar fi sistem de securitate(de multe ori acesta este un set de ultrasunete și senzori cu infraroșu, care înregistrează prezența persoanelor în spații într-un moment în care nu ar trebui să fie acolo), încuietori automate ale ușilor, încuietori electronice cu diverse modificări (de exemplu, pe baza citirii amprentei) și destul de dispozitive simple cum ar fi închiderea automată a ușii când locuiesc cu tine oameni care uită să o închidă în urma lor.
  5. Un sistem de avertizare pentru diverse scurgeri și scurgeri, acesta include și funcția de detectare a fumului și a focului deschis în cameră. Un astfel de sistem poate fi modificat până în punctul în care începe să cheme pompierii.
  6. Alte sisteme, dintre care poate exista o mare varietate. Cele utilizate în mod obișnuit includ controlul echipamentelor (de exemplu, pornirea automată a instrumentelor muzicale, TV), diverse sisteme de colectare a datelor (de exemplu, un dispozitiv afișează informații despre temperatura apei dintr-un acvariu la fiecare câteva minute).


Toate aceste sisteme, care la prima vedere par complexe și destul de fantastice, sunt deja implementate de utilizatori în propriile case folosind Sisteme Arduino. În epoca actuală a smartphone-urilor, ideea de a-ți controla casa prin telefoane mobile, iar cel mai adesea astfel de sisteme sunt create pe baza sistemului de operare sistem mobil Android, ca cel mai deschis și mai convenabil pentru dezvoltatori. Astfel, o persoană poate, de exemplu, să hrănească animale folosind Twitter sau să pornească încălzirea camerei înainte de sosire, pur și simplu făcând un apel.

Astfel, putem spune că Arduino îți permite să implementezi un proiect pentru aproape orice îmbunătățire în casa ta. Capacitățile largi și, cel mai important, flexibilitatea sistemului, care poate interacționa cu o mare varietate de produse software, servesc drept un instrument excelent pentru realizarea planurilor dumneavoastră.

„Arduino, de fapt, este instrumentul ideal pentru a-ți aduce proiectele și visele la viață”, spun designeri experimentați pe forumuri, care își prezintă ei înșiși proiecte urbane și proprii. case de tara, pe care l-au dezvoltat și implementat ei înșiși.


De ce Arduino?

Apare o întrebare logică: este posibil să achiziționați toate astfel de sisteme și să comandați instalarea acestora de către profesioniști care, pe lângă instalare, vor putea proiecta frumos astfel de sisteme (de exemplu, ascunde aceleași fire). De ce să le faci singur folosind Arduino? Răspunsul este simplu - este o chestiune de preț și comoditate. De regulă, companiile care instalează profesional astfel de sisteme fac majorări foarte, foarte semnificative atât la prețul componentelor și al dispozitivelor similare, cât și la costul instalării lor.

Bineînțeles, vor face totul pentru tine și va fi suficient de rapid, dar în primul rând, vei pierde ocazia de a schimba ceva după gustul tău și, în același timp, de a repara ceva în cazul unui fel de defecțiune (ca aceste companii folosiți alte sisteme care nu sunt nici pe departe la fel de bine și convenabil standardizate și unificate și nu sunt atât de ușor de utilizat). Placa Arduino și componentele sale, precum și piesele suplimentare necesare, vă vor costa mult mai puțin și, având în vedere faptul că cu siguranță va trebui doar să înțelegeți cum funcționează, dacă este necesar, puteți remedia defecțiunea și înlocuiți piesa necesară și ajustați sistemul pentru a vă potrivi.


În același timp, platforma Arduino, datorită popularității sale justificate, are un număr mare de biblioteci diferite, în care utilizatorii experimentați au adăugat deja codurile de program necesare, bine modificate, care, fără îndoială, vor facilita rezolvarea tot felul de probleme și problemele care apar în procesul de plasare a acestor sisteme în proiectul dumneavoastră „inteligent”.

Salutare tuturor. Nu am mai scris nimic de mult. Astăzi vom vorbi despre baze de date. Da, exact despre ei. De ce a devenit relevant acest subiect? În timpul implementării sistemului casă inteligentă, mă confrunt cu o mare problemă: adăugarea de noi senzori la sistemul meu. Acest lucru duce, la rândul său, la adăugarea de noi parametri și date care trebuie transferate din...

La mulți ani tuturor! În ajunul sărbătorii, vom vorbi despre ghirlanda de Revelion controlată de pe tabletă sau smartphone prin Bluetooth. Lista componentelor proiectului: LED RGB panglică (ghirlandă) cu cip de control Arduino pro mini Modul Bluetooth Tabletă bazată pe Android (smartphone) Există multe altele diferite la vânzare benzi RGB, pe diferite jetoane. Mai jos este o listă de microcircuite cu care putem...

Senzor de umiditate DHT În ultimul articol ne-am uitat la controlul unui ventilator de baie folosind un fotorezistor convențional. Este timpul să adăugăm la schema noastră de casă inteligentă tip nou senzor Senzor de umiditate și temperatură - DHT (pini 9,10). O descriere și un exemplu de lucru cu senzorul găsiți în articolul Folosind senzorul DHT vom măsura umiditatea din baie...

Vom face iluminare automată de noapte în baie folosind un senzor de mișcare și un senzor de lumină (fotorezistor). Ca element luminos vom folosi o bandă LED de 12v Profil cu Banda LED Senzor de mișcare în cutie Fotorezistor (instalare temporară) Algoritmul de control este destul de simplu. Dacă este întuneric și senzorul de mișcare este declanșat, porniți lumina de fundal pentru un timp. De asemenea, este necesar să asigurați cazul când ieșiți...

După scrierea ultimului articol, a apărut o problemă cu supraîncălzirea unuia dintre senzorii DS18B20. După mai multe ori după pornire, am început să observ că datele de la senzorii DS nu veneau. După repornirea întregului sistem, unul dintre senzori arăta 35-40 de grade, iar în 15 minute temperatura a scăzut la cea reală. Am încercat să înlocuiesc senzorul cu unul nou, nimic nu a ajutat. Cum atunci...

Următorul pas în proiectarea casei noastre inteligente va fi proiectarea controalelor de ventilație. Avem 3 ventilatoare alimentate de o rețea de 220 cu o sarcină de 180 W - Un ventilator în baie combinat cu o toaletă - Un ventilator în bucătărie pentru ventilarea tavanului - Un ventilator pentru unitatea de control smart home și desktop (PC, zonă de lipit ) Ventilatorul este controlat printr-un releu, care...

Este dificil să ne imaginăm viața modernă fără utilizarea tehnologiei: internetul, smartphone-ul, aparate de bucătărieși sisteme Casă inteligentă" Dacă nu sunteți încă familiarizat cu acesta din urmă sau doriți să instalați singur un astfel de sistem, atunci informațiile de mai jos sunt pentru dvs.



Controlul unei case inteligente de pe o tabletă

Ce este „Smart Home”

Majoritatea oamenilor nu-și permit să achiziționeze un astfel de proiect. Dar, stăpânind principiul de funcționare al unei case inteligente, puteți dezvolta singur un astfel de proiect și îl puteți instala singur printr-o aplicație specială.

Conceptul sau „Smart Home” poate fi descris ca un simplu set de controlere și senzori. Aceste dispozitive pot funcționa ca energie termică, și pe mișcări. De regulă, astfel de kituri controlează funcționarea echipamentelor din interiorul casei, sistemele de comunicații și de securitate. Există, de asemenea, proiecte mai „inteligente”: sistemele pornesc încălzirea într-un program și încep să lucreze aparate electrocasnice etc. Imaginează-ți doar: ai venit acasă, unde deja te așteaptă o cină încălzită la cuptorul cu microunde și o baie fierbinte. Interesant? Atunci are sens să o faci singur.



O „casă inteligentă” poate fi descrisă ca un set simplu de controlere și senzori

Cum funcționează senzorii și controlerele?

Un astfel de echipament citește informațiile și le procesează folosindu-le program specialși trimite comanda. Senzorii pot răspunde la mișcare, sunet ascuțit sau temperatură.

Cel mai simplu și mai cunoscut exemplu de sistem de mișcare poate fi văzut în blocuri de apartamente, unde cand deschizi usa de pe scara, lumina se aprinde automat. De asemenea, controlere sau senzori pot fi văzute în fiecare clădire din complexul de alarmă de incendiu - atunci când temperatura crește brusc, alarma este declanșată.

Înainte de a începe să instalați un sistem Smart Homes pentru casa dvs., trebuie să dezvoltați un proiect conform căruia acești senzori vor fi amplasați. Deoarece multe sisteme de acest tip necesită o anumită experiență și cunoștințe în domeniul programării și electronicii, ar trebui să alegeți echipamente cât mai simple.

Cu alte cuvinte - adaptat pentru un utilizator începător. Sistemele Arduino pot fi numite chiar așa. Compania furnizează sisteme ușor de instalat și fiabile pentru case inteligente.



Vă rugăm să rețineți că nicio companie, inclusiv Arduino, nu oferă un sistem universal „inteligent” pentru proiectele de case inteligente.

Proiect complet Arduino pentru Smart Home

Avantajul sistemului Arduino este la mare căutare în rândul oamenilor care sunt departe de a programa, în primul rând datorită interfeței sale clare.

  • De asemenea, ar fi util să evidențiem următoarele avantaje ale sistemului pentru case inteligente:
  • posibilitatea de a crea propriile programe, deoarece codul sursă este deschis;
  • limbaj de programare simplu;

Toate programele necesare pot fi transferate folosind un cablu USB.

Astfel, achiziționând un singur program cu un set standard de funcții, îl puteți personaliza cât mai convenabil.

Software-ul suplimentar pentru Arduino Uno poate fi oricând descărcat prin Internet și gratuit. Puteți controla sistemul fie cu un PC obișnuit, fie folosind un smartphone prin instalarea unei aplicații speciale. Folosind transmisia de date fără fir, senzorii transmit comenzi și alte informații către un computer sau un smartphone (tabletă). Folosind un program special, datele sunt procesate și comanda necesară este executată.



Senzorul central, care este cel principal din sistemul Arduino, poate fi achiziționat sau asamblat cu propriile mâini. Conectorii de pe plăci sunt de tip standard. Acest lucru simplifică foarte mult selecția componentelor din sistemul Arduino Uno.

Principiul de funcționare al sistemului Arduino

Materiale necesare pentru asamblare

  • Dacă decideți să asamblați un proiect Smart Home cu propriile mâini, veți avea nevoie de următoarele: senzor;
  • Arduino Uno
  • Modul Ethernet ENC28J60; senzorii și comenzile necesare r
  • s;
  • senzor de mișcare;
  • cablu torsadat;
  • comutator;
  • releu;
  • rezistor;

cablu pentru modulul Ethernet. De asemenea, nu uitați de instrumentele necesare

Vă rugăm să rețineți că este mai bine să achiziționați kituri pentru sistemul Smart Home pe Arduino la punctele de vânzare certificate.

Datorită faptului că munca unor astfel de proiecte implică energie electrică, utilizarea contrafăcute poate fi nesigură. Toate programele necesare pentru adaptarea sistemului pot fi descărcate de pe Internet.



În ceea ce privește senzorii, aici alegi un set de ceea ce ar trebui să fie în sistemul tău „inteligent” - controlul temperaturii în casă, iluminatul pornit/oprit etc. Materiale necesare

pentru asamblarea unei „Smart Home” cu propriile mâini

Procesul de instalare Vă rugăm să rețineți că Smart Home de pe Arduino Uno trebuie să aibă doar lămpi cu led

. Nu se recomandă utilizarea lămpilor cu incandescență convenționale - acestea nu pot rezista la sarcină.



Odată ce proiectul este gata, puteți începe să conectați controlerele și senzorii necesari la Arduino. Acest lucru trebuie făcut strict conform desenului sau diagramei pe care o veți folosi. Toate contactele trebuie să fie bine izolate.

„Smart home” de pe Arduino Uno ar trebui să aibă doar lămpi LED

  • În mod convențional, etapa ulterioară de lucru poate fi reprezentată sub forma următorului algoritm:
  • instalarea codului programului;
  • configurarea aplicației pentru gadgetul utilizat;
  • redirecționarea portului pe router;
  • testare;

efectuarea de modificări (dacă este necesar).

O arhivă cu software-ul necesar este descărcată de pe Internet și instalată pe echipamentul utilizat. Este mai bine să îl descărcați dintr-o sursă de încredere. După ce toate fișierele au fost dezarhivate, ar trebui să reîmprospătați pagina din aplicație sau să reporniți dispozitivul în sine. Aplicația afișează informații de la senzori instalați



. Dacă este necesar, puteți modifica setările adresei IP și puteți activa/dezactiva alarma. Aceeași aplicație vă va transfera date.

Program Arduino pentru Windows

Lucrul cu un router Trebuie să deschideți un port pe router.

  • Pentru a face acest lucru, urmați acești pași:
  • deschideți configurația routerului;
  • înregistrați adresa ip arduino;

deschide portul 80.



După aceasta, atribuiți un nume de domeniu noii adrese. Acum puteți începe să testați proiectul pe care l-ați realizat singur.

Configurarea corectă a routerului este cheia succesului

Trebuie remarcat faptul că pentru acest tip de proiecte nu puteți utiliza o adresă IP publică, deoarece sistemul este ușor piratat prin Internet.

De asemenea, trebuie remarcat faptul că Arduino este unul dintre puținele sisteme de acest gen care are un număr mare de biblioteci cu diferite coduri de program. Prin urmare, nu este dificil să-l asamblați cu propriile mâini prin internet. Trebuie doar să achiziționați toate componentele și să selectați coduri de program gata făcute, testate.

Bună din nou, Habrozhiteliki! Citind Habr în fiecare zi, am întâlnit în mod repetat articole despre Arduino și proiecte DIY bazate pe acesta. Este de remarcat faptul că nu am avut nimic de-a face cu electronica, iar întreaga mea experiență a constat în vizitarea unui cerc de radio bazat pe clubul adolescenților Ogonyok (Petrozavodsk). Într-o zi m-am adunat și am decis să fac o brățară cu senzori (temperatură, presiune, puls) pentru un smartphone (comunicare BT) folosind Arduino Dar am făcut o greșeală la comandă, am primit doar Arduino în sine și un senzor de presiune. Pentru a testa placa, m-am dus la cel mai apropiat magazin de piese radio pentru a cumpăra LED-uri și acolo mi-a atras atenția un senzor magnetic de închidere a ușii. Mi-a dat ideea că locuința într-o cameră (a nu se confunda cu un apartament) ar putea fi puțin îmbunătățită. Fără să pierd timpul, i-am dat o comandă pe Ali cu o grămadă de senzori și Arduino Mega.

După ce am comandat un set de senzori pentru domn (temperatură, umiditate, releu, StarterKit, BT, ceas, contor de distanță, senzor IR), am decis să caut cum își imaginează alții o casă inteligentă. Majoritatea s-au limitat la: controlul candelabrelor și podele calde, deși au fost niște articole cu adevărat mișto. Unele dintre funcțiile comune apartamentelor erau pur și simplu de prisos în cameră: de exemplu, un senzor de gaz sau de scurgere. Am decis să creez personal funcționalitatea necesară într-o cameră inteligentă:

  • Controlul luminii
  • Controlul temperaturii
  • Gestionați în multe feluri
  • Controlul ușii
  • Monitorizarea temperaturii
  • Monitorizarea vremii

S-a dovedit că toți senzorii necesari fuseseră deja comandați și nu mai rămânea decât să aștepte. Și acum au sosit toți senzorii!

Primul pas

Când deja ai clipit LED-urile și te-ai hotărât să asamblați o casă inteligentă, pasul logic ar fi să clipești luminile din cameră, dar căldura timpurie te-a obligat să începi să controlezi temperatura. Pentru început, tocmai am încercat să conectez dht11 de la StarterKita. Ce ar putea fi mai simplu dacă internetul este plin de instrucțiuni? După cum sa dovedit, există multe biblioteci pentru conectarea dht11 și nu toate sunt compatibile cu ultimele versiuni IDE, dar după câteva ore am admirat temperatura afișată în consolă, iar după câteva minute LED-ul clipește în funcție de el. (Deconectați senzorul, puneți-l în frigider, scoateți-l din frigider, conectați-l...)

Prima problemă a fost acuratețea scăzută a dht11 selectat: stătea cu 2-3 grade în ambele direcții - a trebuit să-l înlocuiesc (după aceea încerc să comand senzori în mai multe versiuni).

Apoi am fost la LeroyMerlin și mi-am cumpărat acolo un evantai foarte simplu. După câteva minute de joc cu firele și priza, ventilatorul a fost asamblat. Împreună cu un vecin am scos geamul și l-am instalat (ventilatorul, nu vecinul) în spațiul liber. Am pus ștecherul în priză și... Ventilatorul a început să se rotească. Încet. Foarte lent.
Inutil să spun că am instalat incorect ștecherul și ventilatorul se învârtea din cauza vântului?


Desigur, este disponibilă oprirea manuală a curentului. Dar care este cel mai bun mod de a controla un ventilator prin intermediul unui releu? Conectați direct la ventilator? Am decis să conectez ventilatorul la releu printr-o priză: acest lucru oferă flexibilitate sistemului (puteți înlocui ventilatorul cu altceva).

Testarea ventilației

Și acum codul a fost rescris de la LED la releu. Firmware-ul este încărcat, monitorizez temperatura în așteptarea temperaturii necesare pentru a începe - și acum este momentul! Releul face clic și portul COM dispare. Aparent, în momentul comutării, sarcina pe USB crește și există interferențe de date. La început am crezut că acest lucru se datorează interferențelor de la firele de 220V, dar acestea sunt situate la o distanță suficientă de placă. Ulterior, acest lucru mi-a cauzat multe probleme: atunci când încerc să încarc o nouă schiță, Arduino intră în repornire, comută releul și, prin urmare, elimină portul COM și, prin urmare, procesul de actualizare. Nu am reușit niciodată să depășesc această problemă.

Telecomanda

Desigur, funcționarea constantă a ventilatorului a devenit curând plictisitoare, iar oprirea acestuia prin intermediul comutatorului nu a fost mișto! Așa că am scos Starter Kit-ul și telecomanda de acolo. De fapt, din acel moment au început problemele: habar nu aveam cum arată receptorul. Dar câteva minute de căutare pe google m-au ajutat să-l găsesc, iar după încă o oră controlam cu bucurie ventilatorul cu telecomanda.

La început a fost un algoritm complex cu mai multe steaguri, dar până la urmă am venit cu un mic

algoritm cu temporizator

Dacă (a sosit semnalul)
manual_control_time = 1800;
fan_mode =! fan_mode;
}
Dacă (timp_control_manual!= 0)(
timp_control_manual--;
)altfel(
Dacă (temperatura< 26){
fan_mode = fals;
)altfel(
fan_mode = adevărat;
}
}


Dar și aici au fost câteva probleme: în timpul actualizării firelor, am aplicat 5V la DATE și am pierdut foarte repede receptorul. Asta m-a împins la pasul următor...

Control prin modul BT

Curând am conectat modulul HC-06 BT, am redirecționat ieșirea acolo și am adăugat citirea comenzilor. Am crezut că va fi mult mai dificil, dar datorită articolului de la robocraft.

A funcționat



Vecin și fan

M-am gândit că, învățându-mi vecinul să controleze sistemul de pe un smartphone, voi rezolva problema „Hei, mi-e frig”, dar... aș putea tolera să opresc alimentarea ventilatorului prin întrerupător, dar să închid fereastra m-a înnebunit. De ce? Ventilatorul a suflat în sticlă la o distanță de câțiva centimetri și a fredonat îngrozitor. Din fericire, aveam senzori magnetici în jur, ceea ce m-a determinat să creez sistemul. Un senzor scurtcircuitat semnalează Arduino că ventilatorul nu trebuie pornit. Din păcate, uneori au existat interferențe, așa că a trebuit să fac o simplă verificare: dacă semnalul de închidere vine de mai multe ori la rând, geamul este cu adevărat închis.


Controlul luminii

Acum am putea trece la controlul luminii. După ventilator nu este nimic complicat: o cutie, câteva blocuri terminale - și lumina este deja controlată prin Arduino (desigur, cu posibilitatea de a o opri prin intermediul vechiului întrerupător). Singura mea preocupare este că releele nu sunt cea mai bună modalitate de a controla becurile.

Probleme de sunet

Ei bine, ce fel de control al luminii există fără a bate din palme? Am comandat un microfon. Asta credeam... Îți amintești de lipsă de experiență? De fapt, am comandat un detector de sunet cu setare manuală a pragului. Vi se pare potrivit pentru scopul meu? Dar au existat câteva „dar”:
  • Rază mică de acțiune: aplauzele sunt procesate de la numai zece centimetri
  • Durată scurtă a semnalului: cu un timp lung de execuție a codului, semnalul de la senzor pur și simplu nu a avut timp să fie detectat de Arduino

Returnarea telecomenzii

Puțin căutare pe Google, o excursie la magazin - și în loc de VS1838B ars, am achiziționat un TSOP1836 mai fiabil. De data aceasta, instalarea a avut succes și totul a funcționat imediat.


Mergând afară

Mi-am dat seama pe fereastră, dar ce e în spatele ei? Înarmat cu un fier de lipit, am lipit un senzor de ploaie și un alt dht11 la un cablu VGA de cinci metri. Câteva elemente de fixare în formă de U, bandă electrică neagră, mușchi și sistemul este pregătit pentru serviciul de luptă.


De asemenea, am învățat că puteți afișa text în limba rusă.

A devenit



Puțină comoditate

Se pare că smartphone-ul este mereu la îndemână, dar până îl găsești, până îl conectezi... Uneori este mai rapid să stingi lumina sau ventilatorul prin comutator, dar asta face imposibilă controlul prin Arduino (releele de impuls sunt prea scump), așa că am adăugat doi butoane obișnuite.

Puțină siguranță

Unde ar fi fără o alarmă de incendiu în căminul tehnicienilor? Din lipsă de experiență, am achiziționat un senzor de incendiu, nu unul de fum. Detectarea unui chibrit care arde la o distanță de până la 30 cm este, desigur, mișto, dar nu suficient. Așa că am făcut fără ea deocamdată.

Apropo de alarmele de incendiu în cămin...


  • Un difuzor care emite uneori o sirenă sau șuierul unui mort
  • Detector local de fum
  • Detector de fum de rețea (conectat la consola de securitate)

Vedere generală







Plasarea lui pe carcasa unui computer are un dezavantaj imens: capacitatea de a suna scurt-circuit. Prin urmare, în curând placa se va muta pe un raft personal, iar în loc de carton va exista o carcasă de casă dintr-o carcasă HDD.

Cod schiță

Starea curentă

#include
#include
#include
#include
#define DHT_PIN 2 //pin termometru...
#define DHT2_PIN 52 //pin termometru de exterior...
#define RAIN_PIN 53 //pin senzor de ploaie
#define RECV_PIN 3 //pin pentru conectarea receptorului IR
#define FAN_PIN 4 //pin de conexiune releu
#define LAMP_PIN 5 //pin de conectare a releului
#define SOUND_PIN A0 //pin de conexiune la microfon
#define WINDOW_PIN A1 //pin fereastră

#define LAMP_BUT_PIN 50 //pin de conectare la microfon
#define FAN_BUT_PIN 51 //pin fereastră

#define DHTTYPE DHT11

#define TIMER_FAN 0
#define TIMER_WINDOW 1

IRrecv irrecv(RECV_PIN);
decode_results rezultate;
temporizatoare int;
bool FAN_FLAG = fals;
bool LAMP_FLAG = adevărat;
int WINDOW_VAL = 0;

Bool WINDOW_OPEN = fals;
bool WINDOW_FLAG = fals;
bool RAIN_FLAG = fals;

Char incomingByte;

DHT dht(DHT_PIN, DHTTYPE);
DHT dht2(DHT2_PIN, DHTTYPE);

DS1302 rtc(49, 46, 48);
void setup() (
Serial1.begin(9600);

Rtc.halt(fals);
rtc.writeProtect(false);
//rtc.setDOW(SUNDAY); // Setați ziua săptămânii la VINERI
//rtc.setTime(0, 37, 40); // Setați ora la 0:37:00 (format 24 de ore)
//rtc.setDate(25, 5, 2014); // Setați data la 25 mai

Temporizatoare = 0;
cronometre = 0;

PinMode(RAIN_PIN, INPUT);
pinMode(LAMP_BUT_PIN, INPUT);
pinMode(FAN_BUT_PIN, INPUT);

PinMode(FAN_PIN,OUTPUT);
pinMode(LAMP_PIN,OUTPUT);

DigitalWrite(FAN_PIN,LOW);
irrecv.enableIRIn(); // Porniți receptorul

Dht.begin();
dht2.begin();
}
int volum;
void loop() (
WINDOW_VAL = analogRead(WINDOW_PIN); //senzor magnetic
if(WINDOW_VAL > 950)(
if(WINDOW_FLAG)(
cronometre++;
if(cronometre>10)(
WINDOW_OPEN = fals;
}
)altfel(
WINDOW_FLAG=adevărat;
}
)altfel(
WINDOW_OPEN = adevărat;
WINDOW_FLAG = fals;
cronometre=0;
}

If(digitalRead(RAIN_PIN)==HIGH)(
RAIN_FLAG=adevărat;
)altfel(
RAIN_FLAG=fals;
}

Volum = analogRead(SOUND_PIN);
dacă (volum<40){
LAMP_FLAG = !LAMP_FLAG;
}

If(digitalRead(LAMP_BUT_PIN)==HIGH)(
semnal_intrare(1);
}
if(digitalRead(FAN_BUT_PIN)==HIGH)(
semnal_intrare(0);
}

Dacă (irrecv.decode(&rezultate))
{
if (results.value == 16750695) //Cod buton
{
semnal_intrare(0);
}
if (results.value == 16756815) //Cod buton
{
semnal_intrare(1);
}
irrecv.resume(); // Obține următoarea valoare
}
//Serial.println(rtc.getTime().hour);
//Serial.println(rtc.getTime().min);
Serial1.print(rtc.getDOWStr());
Serial1.print(" ");
Serial1.print(rtc.getDateStr());
Serial1.print(" - ");
Serial1.println(rtc.getTimeStr());

Dacă (Serial1.available() > 0) (
incomingByte = Serial1.read();
if(incomingByte == "0") (
Serial1.println("Modul manual dezactivat");
semnal_intrare(0);
)else if(incomingByte == „1”) (
Serial1.println("Modul manual activat");
semnal_intrare(0);
)else if(incomingByte == „2”) (
semnal_intrare(1);
}
}

Float h = dht.readHumidity();
float t = dht.readTemperature();

Dacă (isnan(t) || isnan(h)) (
Serial1.println("Eroare la citirea termometrului intern");
) altfel (
if(temporizatoare<=0){
dacă (t<26){
FAN_FLAG = fals;
)altfel dacă (t>26)(
FAN_FLAG = adevărat;
}
)altfel(
cronometre--;
}
Serial1.print(h);
Serial1.println(“ %\t”);
Serial1.print(t);
Serial1.println(“ *C”);
}

Dacă(cronometre>0)(
Serial1.print(„Modul manual rămâne să funcționeze: „);
Serial1.print(temporizatoare);
Serial1.println(„sec.”);
)altfel(
Serial1.println("Modul manual dezactivat");
}
dacă (FAN_FLAG && WINDOW_OPEN)(
digitalWrite(FAN_PIN,HIGH);
Serial1.println("Ventilator pornit");
)altfel(
digitalWrite(FAN_PIN,LOW);
Serial1.println("Ventilatorul oprit");
}

Dacă(WINDOW_OPEN)(
Serial1.println("Fereastra este deschisă");
)altfel(
Serial1.println("Fereastra este închisă");
}

Dacă(LAMP_FLAG)(
digitalWrite(LAMP_PIN,HIGH);
)altfel(
digitalWrite(LAMP_PIN,LOW);
}

H = dht2.readHumidity();
t = dht2.readTemperature();
Serial1.println("În afara ferestrei:");
if (isnan(t) || isnan(h)) (
Serial1.println("Eroare de citire de la termometrul exterior");
) altfel (
Serial1.print("Umiditate: „);
Serial1.print(h);
Serial1.println(“ %\t”);
Serial1.print("Temperatura: „);
Serial1.print(t);
Serial1.println(“ *C”);
}
dacă (RAIN_FLAG) (
Serial1.println("Fără ploaie");
)altfel(
Serial1.println("Ploaie");
}

Serial1.println("*****");
întârziere (100);
}

Void input_signal(semnal int)(
comutator(semnal)(
cazul 0:
if(rtc.getTime().hour> 1 && rtc.getTime().hour< 8){
cronometre = 1800;
)altfel(
cronometre = 18000;
}
FAN_FLAG = !FAN_FLAG;

Serial1.println("Ventilator comutat");
pauză;
cazul 1:
LAMP_FLAG = !LAMP_FLAG;
Serial1.println("Lumina comutată");
pauză;
}
}

Ce se întâmplă dacă există o eroare în cod?

Folosesc un releu normal închis. Adică, în mod implicit, totul este pornit: puteți deconecta Arduino de la rețea și utilizați comutatoare simple.

Planuri de dezvoltare

Ceea ce am enumerat este doar baza pentru o cameră cu adevărat inteligentă. La urma urmei, toată inteligența sa pornește și oprește ventilatorul, în funcție de temperatură. Plănuiesc următoarele pentru a face camera mai confortabilă și mai „autonomă”.
Alarma
După adăugarea unui ceas la sistem, următorul ceas cu alarmă este următorul în linie. Ca semnal, presupun: un beeper piezo, lumină intermitent și pornirea ventilatorului. Și, desigur, trezirea devreme dacă afară plouă (-10 la viteza de mișcare).

Adăugați un sistem de salvare a alarmelor pe un card SD utilizând un astfel de modul (în caz de pene de curent).

Aplicație pentru computer și smartphone + widget-uri
Ce este o casă inteligentă fără control de la un smartphone sau computer?

Banuiesc ceva de genul asta:


De ce nu Wi-Fi? Prea scump.

Ieșiți sursa de alimentare proprie a Arduino
Cred că comentariile sunt inutile: există pericolul arderii USB și interferențe constante pentru alte dispozitive. În plus, vreau să transfer puterea de la placă la un adaptor special.
Controlarea routerului printr-o priză
Vechiul Asus RT56U iubește să stea cald, mai ales vara. Așa că vreau să o fac să se oprească automat câteva ore pe timp de noapte pentru a-l lăsa să se răcească.
Adăugați monitorizarea prezenței
În prezent, am niște senzori piroelectrici în infraroșu vechi și buni și câțiva senzori de distanță cu ultrasunete. Acest lucru poate fi suficient pentru un simplu control al prezenței.

Doi oameni locuiesc în cameră. Fiecare are patru stări:

  • La calculator
  • Costuri
  • Întins pe pat
  • Absent

Senzorii cu infraroșu detectează prezența în cameră, iar senzorii cu ultrasunete detectează prezența în zone (pat/masă) și monitorizează numărul de persoane care intră/ieșează.

Acest lucru vă va permite să implementați cele mai simple scenarii:

  • Am venit seara și vecinul meu nu doarme: aprinde lumina
  • Toți au plecat: stinge luminile
  • Toată lumea se întinde și nu se mișcă: stinge luminile
Adăugați rezistor fotosensibil
Un clasic al genului: aprinderea automată a luminii dacă există cineva în cameră în zona „La computer” și camera este întunecată.
Adăuga blocare electromecanica si mai aproape
Nu știu despre tine, dar îmi este prea lene să caut cheile tot timpul, așa că îmi doresc foarte mult să instalez o încuietoare electromecanică cuplată cu un cititor de carduri de proximitate sau senzor de amprentă. Intrarea în hostel se face cu permise electronice - cunosc frecvența și pot comanda cu ușurință un cititor pentru Arduino, dar cardurile sunt foarte ușor de clonat (eu însumi am un dispozitiv pentru asta), așa că, atunci când vine momentul, am cel mai probabil se va stabili pe amprentele degetelor.

Vecinul intră des în bucătărie/toaletă/baie și nu închide ușa. Stau vizavi de intrare și nu-mi place că toți cei care trec pe acolo îmi văd chiloții și contemplă dispozițiile din cameră. Un închidere controlat de uși ar fi o soluție excelentă pentru astfel de situații.

Actualizați fereastra
După cum am scris deja, dacă temperatura este peste o anumită limită, ventilatorul se pornește. Dar dacă nu este nimeni în cameră și temperatura este deja sub 20? Aș dori să adaug în sistem deschiderea/închiderea ferestrei. Poate că vor fi simple motoare + fir de pescuit.

Se știe că dacă răcești un bec și îl aprinzi, există o mare probabilitate ca acesta să explodeze. În acest fel, îți va economisi nervii și becurile.

un bec care nu a ajuns la sistemul de control al temperaturii


Înlocuiește DHT11
După cum am scris deja, nu înțeleg senzorii etc. Așa că am cumpărat primii senzori de temperatură pe care i-am întâlnit: dht11. Acum vreau să le înlocuiesc cu dht22 pentru cameră și dht21 pentru stradă. dht22 are o eroare mai mică, iar dht21 are suport pentru temperaturi negative și o carcasă protejată, ceea ce este important pentru stradă. Strada dht11 a început deja uneori să se piardă.
elevii Adaugă etichete