Sunteți pe pagina 1din 8

Textul si imaginile din acest document sunt licentiate

Attribution-NonCommercial-NoDerivs
CC BY-NC-ND

Codul sursa din acest document este licentiat


Public-Domain

Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website /
blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul
sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici
un fel de limitari.

Realizarea unui sistem de tip Home


Automation (Partea I)
Arhitectura unui sistem de tip Home
Automation
Prin noiunea de Home Automation se nelege implementarea unui sistem de
automatizare i control centralizat al echipamentelor electronice de automatizare dintro locuin. Automatizarea presupune dou aspecte importante: monitorizarea i
comanda automat. Monitorizarea se realizeaz prin intermediul unor echipamente
electronice de tip senzori i traductoare ce pot msura diveri parametrii specifici
ambientului din locuin (temperatur, umiditate, luminozitate, calitate aer) sau diveri
parametrii de funcionare a echipamentelor electronice (consum electric, stare pornit /
oprit, cldur degajat, presiune sau debit ap etc.). Partea de comand presupune
capacitatea sistemului de a reaciona i de a interaciona cu echipamentele electronice
i electrocasnice (aparate de climatizare, sisteme de securitate, sisteme multimedia,
sisteme de alimentare cu energie electric) prin intermediul unor elemente de acionare.
Conexiunea dintre parametrii msurai i comenzile automate se face prin intermediul
unui sistem de comand centralizat care poate aciona la comanda manual a
utilizatorului sau poate avea comportamente de comand predefinite (dac temperatura
n camer depete 35 de grade Celsius pornete aerul condiionat).
Astfel, arhitectura unui sistem de tip Home Automation implic urmtoarele
subsisteme:
Elemente de achiziie de tip senzori (sensors);
Elemente de acionare (actuators);
Sistem central de comand (controller);
Legtura dintre elementele de achiziie, elementele de acionare i sistemul de comand
implic o reea de comunicaie. La momentul actual majoritatea sistemelor utilizeaz
o reea de comunicaie fr fir datorit comoditii de instalare i operare. Exist mai
multe produse comerciale ce ofer soluii complete de Home Automation dar acestea
sunt incompatibile ntre ele (nu se poate folosi un senzor de tipul X cu un sistem de
comand de tipul Y) i au un cost destul de ridicat.
Exemple de soluii comerciale de Home Automation:
Insteon
http://www.insteon.com/
https://www.robofun.ro/forum/

Z-Wave Home control | Z-Wave Smart Home


http://www.z-wave.com/
Nest
https://nest.com/

n cadrul seriei Realizarea unui sistem de tip Home Automation vom prezenta o
alternativ la soluiile comerciale utiliznd doar elemente open-source (att hardware
ct i software) care asigur un cost mult mai sczut i o inter-operabilitate mult mai
bun cu sisteme similare (open-source sau comerciale).
n cadrul materialului de fa vom prezenta o soluie de reea de interconectare fr fir
pentru elementele de achiziie bazat pe platforma MySensors:
https://www.mysensors.org/

Realizarea unei reele fr fir de elemente


de automtizare
Platforma MySensors este un proiect open-source bazat pe hardware i software
compatibil Arduino ce i propune s ofere o soluie complet pentru realizarea de la
zero a elementelor de achiziie, a elementelor de acionare i a reelei radio fr fir ntre
elementele acestea i un element central de comand. Proiectul nu include partea
software de comand centralizat dar este compatibil cu alte proiecte open-source ce
implementeaz aceast parte: OpenHab (pe care l vom prezenta ntr-un material
viitor), MyController.org, MyNodes.NET etc.
Proiectul poate utiliza pentru transmisia radio fr fir dou tipuri de module radio (cele
dou tipuri de module nu pot fi mixate n aceiai reea):
Module radio bazate pe circuitul nRF24L01+ de la Nordic
Semiconductors n band ISM de 2.4GHz modulaie
GFSK aceste module vor fi utilizate n cadrul
implementrii de fa.

https://www.robofun.ro/wireless/wireless-2-4/transceiver_nRF24L01_antena
https://www.robofun.ro/forum/

Module radio bazate pe circuitul RFM69HCW de la


HopeRF Electronics n band ISM de 433MHz sau
868MHz modulaie FSK/GFSK/MSK/GMSK/OOK.

https://www.robofun.ro/wireless/wireless-433/sparkfun-rfm69-breakout-434mhz-

Pentru implementarea soluie de reea fr fir vom avea nevoie de dou plci Arduino
Uno sau similare i dou module radio nRF24L01+. Ca i plci de dezvoltare putem
utiliza orice variant de plac Arduino Uno:
https://www.robofun.ro/arduino/arduino_uno_v3
https://www.robofun.ro/arduino/redboard
https://www.robofun.ro/platforme/arduino_dev/arduino-industrial

Conexiunea dintre modulul radio i placa de dezvoltare se realizeaz prin magistrala


SPI i presupune urmtoarele conexiuni: Vcc 5V, CE D9, CSN D10, SCK D13,
MOSI D11, MISO D12, GND GND.

https://www.robofun.ro/forum/

Dup realizarea celor dou montaje vom trece la programarea acestora. Vom folosi
Arduino IDE 1.6.9 mpreun cu biblioteca software MySensors 2.0.0 (ultima versiune
aprut pe 9 iulie 2016).
https://github.com/mysensors/MySensors/tree/master
Din cadrul librriei vom utiliza dou exemple pe care le vom ncrca pe cele dou
montaje realizate: MockMySensors i GatewaySerial.

MockMySensors este un exemplu ce simuleaz toate tipurile de senzori i elemente


de acionare definite n cadrul bibliotecii; l vom utiliza pentru testarea comunicaiei
radio i pentru nelegerea modului de funcionare a instrumentelor puse la dispoziie
de aceasta. Acest exemplu este un bun punct de plecare n implementarea oricrui tip
de element de msurare sau de acionare. Execuia sa (cu directiva #define
MY_DEBUG comentat) va avea urmtorul efect n consola serial:

Comportamentul implicit al exemplului este mixt: senzor de u S_DOOR


(open/closed) i element de acionare ncuietoare S_ARMED (armed/disarmed).
Operaiile efectuate de sistem sunt urmtoarele: INIIALIZARE COMUNICAIE:
trimite numele i versiunea de sistem (MockMySensors v0.5) ctre sistemul gateway,
solicit configuraia metrologic: metric sau imperial, prezint ctre sistemul
gateway facilitile n nodul de comunicaie (S_DOOR, S_ARMED);
TRANSMITERE/RECEPIONARE PERIODIC INFORMAII: trimite nivelul
bateriei (generat aleatoriu), solicit timpul de la sistemul gateway, trimite starea uii i
a sistemului de nchidere.
GatewaySerial este un exemplu ce permite transformarea mesajelor radio n mesaje
https://www.robofun.ro/forum/

pe interfaa serial (USB); l vom utiliza pentru a testarea comunicaiei radio i pentru
conectarea ulterioar la un sistem de comand centralizat. Execuia sa (cu directiva
#define MY_DEBUG comentat) va avea urmtorul efect n consola serial:

Informaiile afiate n consola serial a sistemului gateway respect urmtorul format


de mesaj:
adres nod; adres senzor; tip mesaj; confirmare; subtip mesaj; mesaj \n

Astfel primul mesaj:

0;255;3;0;14;Gateway startup

complete.

provine de la sistemul gateway (adres 0), subsistem broadcast (255) mesaj ctre
toat reeaua; este un mesaj de tip intern (3) subtip I_GATEWAY_READY (14); nu se
solicit confirmare de primire(0); mesaj: Gateway startup complete.
Un mesaj provenit de la sistemul MockMySensor este de exemplu:

254;1;1;0;15;1
unde adresa sistemului este 254, senzor intern 1 u; mesaj de informare asupra
valorii unui sensor (1) subtip V_ARMED (15), fr confirmare de primire (0), mesaj:
1 adic ncuietoare nchis.
Pentru mai multe informaii legate de formatul mesajelor putei consulta:
https://www.robofun.ro/forum/

MySensors Serial Protocol (2.0)


https://www.mysensors.org/download/serial_api_20
Bineneles, aceste mesaje nu sunt concepute pentru a fi citite i interpretate de
utilizator. Cea mai simpl modalitate de interpretare, n lipsa unui sistem de comand
centralizat, este utilizarea software-ului MYSController:
Windows GUI/Controller for MySensors
https://forum.mysensors.org/topic/838/windows-gui-controller-for-mysensors/2
Acesta este gratuit, ruleaz sub sisteme de operare Microsoft Windows i nu necesit
instalare. Primul pas n utilizarea acestui program este identificarea legturii cu
sistemul gateway. Din meniul Settings / Gateway se va selecta Serial i numrul
portului serial pe care este conectat placa Arduino ce ruleaz exemplul GatewaySerial.

Dup configurare se va da comanda de Connect i n interfaa aplicaiei se vor putea


observa mesajele radio primite / transmise de sistemul gateway ntr-o form mult mai
uor de neles i urmrit. Captura de ecran din pagina urmtoare prezint aceiai
succesiune de mesaje ca i captura serial a sistemului gateway din pagina anterioar.
Se poate observa c pe lng zona de decodificare a mesajelor, interfaa aplicaiei
mai ofer i o list a tuturor nodurilor (sistemelor) din reea precum i o topologie a
reelei (indic dac conexiunea este direct ntre nodul de achiziie i nodul gateway
sau mesajul a fost retransmis prin intermediul altor noduri). Aplicaia mai permite i
transmiterea de mesaje ctre noduri de achiziie / acionare (partea de jos a interfeei)
n cazul exemplului nostru se poate selecta elementul de acionare 1 Outside Door
i completa ca Subtype: V_ARMED i ca Payload: 0 (Unarmed). Dup comanda de
Send se va putea observa o succesiune de 3 mesaje: mesajul de comand ctre nodul
de acionare (Mode: TX, Node: 254 MockMySensor) i 2 mesaje ce raporteaz starea
actual a celor dou subsisteme ale nodului (Mode: RX, Node: 254 MockMySensor,
https://www.robofun.ro/forum/

Subtype: V_TRIPPED status u i V_ARMED: status ncuietoare):

Pe baza exemplului MockMySensors se pot experimenta i alte tipuri de senzori i


elemente de acionare specifice bibliotecii MySensors. Acest lucru se poate realiza
comentnd n sursa exemplului cele dou funcionaliti implicite (S_ARMED i
S_DOOR) i decomentnd alte funcionaliti (S_MOTION, S_SMOKE, S_LIGHT
etc.).

#define ID_S_ARMED

#define ID_S_DOOR

//#define ID_S_MOTION

//#define ID_S_SMOKE

//#define ID_S_LIGHT

n materialul urmtor vom prezenta construirea i programarea unui sistem personalizat


de achiziie a temperaturii cu mai multe zone de msurare compatibil cu platforma
MySensors.
https://www.robofun.ro/forum/

S-ar putea să vă placă și