Machine Translated by Google
Automatizare acasă cu un Arduino:
Un tutorial de bază
(Actualizat iulie 2022)
În acest tutorial veți descoperi cum să construiți o soluție simplă de automatizare a
locuinței folosind un kit de dezvoltare pentru microcontroler Arduino și un
modul Bluetooth, astfel încât să o puteți controla de pe smartphone.
Machine Translated by Google
De la controlul luminilor camerei cu smartphone-ul tău până la programarea automată a
evenimentelor, automatizarea locuinței a dus confortul la un nivel cu totul nou.
În loc să folosiți întrerupătoare mecanice, acum puteți controla convenabil toate dispozitivele
din casă din vârful degetelor.
Acest tutorial vă va arăta cum să configurați o soluție simplă de automatizare a locuinței,
permițându-vă să controlați aproape orice dispozitiv electric de pe smartphone.
Hardware-ul de bază este destul de simplu și constă doar dintr-un kit de microcontroler Arduino,
un modul wireless Bluetooth și un releu.
Iată de ce aveți nevoie pentru a începe:
– Arduino UNO (sau Mega, Pro, Mini – dar în acest tutorial folosim UNO)
– Modul releu
– Modul Bluetooth fără fir HC 05
– Lampă
- Rezistor de 2,2 k ohmi
- Rezistor de 1k ohm
– Placa de preparare
– Fire jumper
Machine Translated by Google
Schema circuitului
După ce aveți toate componentele necesare, iată cum trebuie să conectați lucrurile:
(Click aici pentru a vizualiza o imagine de înaltă rezoluție)
Cum se conectează Bluetooth HC-05 la Arduino:
1) Conectați pinii +5V și GND ai Arduino la benzile de magistrală de pe placa de breadboard, așa cum se
arată în schema de circuit de mai sus.
2) Alimentați modulul HC-05 conectând pinii de 5V și GND la benzile de magistrală de pe placa.
Machine Translated by Google
HC-05 este alimentat folosind 5VDC, dar include un regulator de tensiune la bord care generează o sursă de 3,3V
pentru a alimenta transceiver-ul. Aceasta înseamnă că pinii TXD/RXD funcționează la doar 3,3 V.
3) Conectați pinul TXD de pe modulul HC-05 cu pinul RXD (Pinul 0) de pe Arduino. Această conexiune
permite HC-05 să trimită date către Arduino.
Motivul pentru care împerechem TXD pe modulul Bluetooth cu RXD pe Arduino este că pinul TXD este folosit pentru
a transmite date de la transceiver-ul Bluetooth, în timp ce pinul RXD este folosit pentru a primi date pe Arduino.
Deși Arduino folosește niveluri de semnal de 5 V, iar HC-05 utilizează doar niveluri de semnal de 3,3 V, nu este
necesară nicio schimbare de nivel pentru acest semnal special.
Acest lucru se datorează faptului că Arduino se bazează pe un microcontroler ATmega328 care definește o
logică înaltă ca orice nivel peste 3V. Deci nu este necesară nicio schimbare de nivel atunci când treceți de la 3,3
V la 5 V.
Cu toate acestea, acest lucru nu este întotdeauna adevărat atunci când mergeți în cealaltă direcție de la 5V la
3,3V, așa cum vom discuta în pasul următor.
4) Acum trebuie să conectăm pinul TXD de pe Arduino la pinul RXD de pe HC-05. Această conexiune va forma a
doua jumătate a comunicației bidirecționale și este modul în care Arduino trimite informații către HC-05.
Deoarece liniile de date ale receptorului de pe HC-05 sunt tolerante doar la 3,3 V, trebuie să convertim semnalul de
transmisie de 5 V care vine de la Arduino într-un semnal de 3,3 V.
Deși acest lucru se face de obicei cel mai bine folosind un convertor de nivel logic, în schimb, folosim doar un simplu
divizor de tensiune pentru a converti semnalul de 5V într-un semnal de 3,3V.
După cum se arată în schema de circuit, am conectat un rezistor de 1k ohm și 2,2k ohm peste pinii GND și TXD de
pe Arduino.
Acesta se numește divizor de rezistență deoarece împarte tensiunea de intrare. Semnalul de nivel de 3,3V îl obținem
de la intersecția acestor două rezistențe.
Machine Translated by Google
Ecuația pentru o tensiune împărțită este Vout = [2.2k/(2.2k + 1k)]*5V = (2.2k/3.2k)*5V = 3.46V, care
este suficient de aproape de 3.3V pentru a preveni orice deteriorare a HC-05.
Această soluție brută nu ar trebui să fie utilizată niciodată cu un semnal de mare viteză, deoarece
rezistențele formează un filtru trece-jos RC cu orice capacitate parazită pe conexiune.
Odată ce ați conectat modulul HC-05 la Arduino, puteți alimenta Arduino cu o sursă de 12V DC sau un cablu
USB. Dacă LED-urile roșii și albastre de pe HC-05 clipesc, atunci ați conectat cu succes modulul bluetooth la
Arduino.
Nu folosim pinii STATE și EN pe modulul HC-05, deoarece nu sunt necesari pentru această configurare.
Configurarea circuitului de relee
Următorul pas este să conectăm Arduino la un modul releu, astfel încât să putem porni/opri dispozitivul
conectat.
După cum se arată în schema de circuit de mai sus, vom conecta modulul releului în serie cu sarcina
noastră electrică, astfel încât să putem întrerupe conexiunea atunci când dorim să oprim dispozitivul și să
completăm circuitul când dorim să-l pornim.
Machine Translated by Google
Pentru această aplicație, folosim un modul de releu care include circuitul de comandă a releului, permițându-i să se
conecteze direct la un pin GPIO al microcontrolerului.
Modulul de releu pe care îl folosim poate gestiona până la 10 amperi de curent la până la 240 V AC.
Acesta este suficient curent pentru o mulțime de dispozitive, dar nu suficient pentru aparate de mare putere, cum ar
fi un încălzitor sau un uscător. Pentru aparatele de mare putere, probabil că veți avea nevoie de aproximativ dublul
capacității curente (~ 20 de amperi).
Puteți fie să faceți upgrade la un releu de curent mai mare, fie să plasați mai multe relee în paralel.
Două relee de 10 amperi în paralel sunt echivalente cu un singur releu de 20 amperi, deoarece jumătate din curent
trece prin fiecare releu.
PERICOL: AC înaltă tensiune poate fi potențial foarte periculoasă, așa că asigurați-vă că urmați
măsuri de siguranță adecvate. Predictable Designs nu își asumă nicio responsabilitate pentru
orice vătămare sau daune care pot apărea prin urmarea acestui tutorial.
Cum se conectează modulul releu la Arduino:
1) Mai întâi, conectați pinii de 5V și GND ai modulului de releu la bornele magistralei de pe placa.
2) Apoi, conectați pinul IN1 de pe modulul releu cu PIN-ul 4 de pe Arduino. Dacă aveți un modul multicanal (2, 4 sau
8 canale), puteți conecta IN2, IN3... In(n) cu diferiți pini digitali pe Arduino și repetați pașii de mai jos pentru
configurarea celorlalți pini.
3) Acum trebuie să conectăm sarcina AC la modulul releu. Dacă te uiți cu atenție la blocul de borne de pe modulul
releului, vei găsi aceste trei terminale:
C: Obisnuit
NC: În mod normal, închis
NU: În mod normal deschis
Machine Translated by Google
Iată cum funcționează modulul releu:
Când releul este oprit, terminalul COM este conectat la terminalul NC (normal închis), ceea ce înseamnă
că dacă conectați becul la terminalul NC, acesta se va porni chiar și atunci când releul nu este alimentat.
Dar nu asta ne dorim. Vrem să aprindem becul doar atunci când trimitem un semnal de la smartphone.
Acesta este motivul pentru care conectăm sarcina la terminalul NO (normal deschis), astfel încât atunci
când releul este declanșat de la Arduino, contactul comută de la terminalul NC la terminalul NO,
completând astfel circuitul.
Încărcarea Codului
După ce ați conectat cu succes lucrurile, următorul pas este să încărcați codul pe Arduino.
Pentru a încărca codul, conectați Arduino prin portul USB de pe computer și deschideți Arduino IDE.
După aceea, copiați schița de mai jos într-o fereastră nouă și încercați să o rulați pe Arduino.
#define RELAY_ON 0
#define RELAY_OFF 1
#define RELAY_1 4
date char = 0;
void setup() {
// Setați pinul ca ieșire.
pinMode(RELAY_1, OUTPUT);
// Inițializați releul unul ca oprit, astfel încât la resetare să fie oprit până la
Machine Translated by Google
implicit
digitalWrite(RELAY_1, RELAY_OFF); [Link](9600);
[Link](„Type: 1 pentru a aprinde
becul. 0 pentru a-l stinge!”); } void loop() { if ([Link]() > 0) { data = [Link](); //Citiți datele primite și stocați-
le în date variabile
[Link](data); //Tipărește valoarea în interiorul datelor în
monitorul serial [Link](“\n”); //Linie nouă if(data == '1'){ digitalWrite(RELAY_1, RELAY_ON); [Link](„Becul este acum
pornit.”); } else if(data ==
'0'){ digitalWrite(RELAY_1, RELAY_OFF); [Link](„Becul este acum OPRIT.”); } } }
Codul este de fapt destul de simplu. Inițializează mai întâi releul în metoda setup() și apoi
așteaptă intrarea pe portul serial în metoda loop(). Dacă se primește „1” ca intrare, pornește
releul, iar dacă se primește „0”, acesta oprește releul.
Deoarece Arduino UNO își folosește portul UART pentru programare, nu poate comunica
cu computerul și nu poate primi date de la modulul Bluetooth HC-05 în același timp. Dacă
ați încercat codul de mai sus pe un UNO, ar trebui să primiți eroarea:
avrdude: stk500_getsync() încercarea 1 din 10: nu este sincronizată: resp=0x00
A apărut o eroare la încărcarea schiței
Nu-ți face griji totuși. Pur și simplu deconectați firul jumper conectat la pinul 0 de pe
Arduino UNO (pinul RXD) și încercați din nou actualizarea codului.
Machine Translated by Google
Acum ar trebui să puteți actualiza codul cu succes. După finalizarea programării, reconectați firul
jumper.
Controlați becul de pe dispozitivul dvs. Android
Acum că am configurat hardware-ul și am încărcat cu succes codul, următorul pas este să controlăm
configurarea de pe un smartphone.
Pentru aceasta, va trebui să descărcați controlerul Bluetooth Arduino aplicația pe dispozitivul dvs.
Android.
Iată cum vă configurați dispozitivul Android pentru a trimite comenzi către Arduino:
1) Deschideți aplicația pe smartphone. Va cere permisiuni Bluetooth. Faceți clic pe „Permite”.
Machine Translated by Google
2) În continuare, va lista toate dispozitivele disponibile în vecinătatea dvs. Selectați HC-05.
Machine Translated by Google
3) După ce ați selectat dispozitivul, veți fi conectat la transceiver-ul HC-05. Aplicația vă va
solicita acum să intrați în modul pe care doriți să îl utilizați. Selectați modul „Comutare”.
Machine Translated by Google
4) Ar trebui să fiți redirecționat către următorul ecran. Faceți clic pe pictograma „Setări”
din colțul din dreapta sus al ecranului.
Machine Translated by Google
5) Acum vă va cere să setați valori pentru ON și OFF. Introduceți „1” în caseta de text ON și „0” în caseta
de text OFF. Faceți clic pe Trimiteți.
Machine Translated by Google
Asta este! Iată un scurt videoclip arătând configurația în acțiune.
Folosind configurația de mai sus, puteți transforma orice dispozitiv într-un dispozitiv inteligent
care poate fi controlat de pe smartphone.
Deși am folosit un singur releu în acest exemplu, vă puteți extinde cu ușurință sistemul utilizând un
modul de releu multicanal.
Pentru a menține lucrurile simple, am folosit o aplicație Bluetooth care vă permite să controlați doar o
singură încărcare, dar în cazul în care doriți să controlați mai multe dispozitive, puteți utiliza o
aplicație de control Bluetooth mai sofisticată. sau scrieți propria dvs. aplicație Android personalizată.