Crearea Unui Sistem Inteligent Care Sta la Baza Unui Microcontroller Arduino Leonardo

Cuprins

1. Introducere – Contextul proiectului 1

1.1 Domeniul temei de licență 1

1.2 Obiectivele proiectului 2

2. Structura – Descrierea si funcionalitatea componentelor. 5

3. Hardware

3.1 Hardware Arduino 9

3.2 Realizare sistem 9

4. Program 9

4.1 Mediul de programare Arduino 9

4.2 Programare sistem 9

5. Functionare sistem 35

6. Testare și validare 46

7. Concluzii 49

7.1 Concluzii generale

7.1 Contribuții personale

7.1 Posibilități de dezvoltare ulterioară

8. Bibliografie 56

9. Anexe 57

1. Introducere – Contextul proiectului

1.1 Domeniul temei de licență

Lucrarea de față are in vedere creearea unui sistem inteliget care sta la baza unui microcontroller Arduino Leonardo, care este in stransa legatura cu patru senzori si un sistem de comunicare la nivel global(GSM). Lucrarea este dezvoltata în cadrul Universității Transilvania din Brașov si este intitulată:“Sistem de alarma cu comunicare prin intermediul unui telefon GSM”.

Fiecare componenta a sistemului este programata in mediul Arduino.Platforma Arduino se foloseste in scopul de a prelua informațiile de la senzori. Activarea alarmei se face prin in urma activarii celor patru senzori care interactioneaza cu telefonul mobil prin intermediul modulului sistemului de comunicare globala (GSM).

Problema pe care lucrarea de față o abordează este un sistem care promite a functiona în mod eficient deoarece oricat de scump sau ieftin ar fi pretul unui sistem, daca in cazul unui incident aceasta nu isi executa sarcinile in mod corespunzator, atunci acesta devine inutil. Sistemul de alarma se promite a fi unul fiabil, scopul acestuia fiind de a se mentine intr-o cat mai buna functionare pe o perioada indelungata de timp si totodata economic, deoarece factorul financiar este foarte important in achizitia oricarui obiect. De asemeni, sistemul trebuie sa fie flexibil, lucru demonstrat prin componentele sale care ne ofera o siguranta mai mare datorita celor patru senzori incorporati care sunt astfel dezvoltati so configurate sa permita comunicarea cu telefonul personal.

In cadrul Sistemului de alarma cu comunicare prin intermediul unui telefon GSM sa folosit o diversitate mare de componente si anume:

Microcontroller-ul folosit:

Microcontroller de tip Arduino Leonardo, varianta completa, model: ARD-01.

Senzorii folositi:

Senzor Temperatura Brick, model: SEN-VRM-05,

Senzor Lumina Brick, model: SEN-LUM-03,

Kit Senzor Fum si Gaze Inflamabile MQ2, model: SEN-BMT-14

Senzor Senzor PIR, model: SEN-PIR-02.

Alte componente :

Un Mini Difuzor Brick, model: COMP-GEN-10,

Baterie Baterie LIPO 3.7 V 1400 mA, model: SRS-06,

Antena GSM/GPRS Quad Band SMA, model: Antena GSM/GPRS Quad Band SMA

Adafruit FONA 808 – Mini Cellular GSM + GPS Breakout, model: WIR-48,

Cartela SIM pentru celularul GSM,

Un LED,

O rezistenta de 10 kOhmi.

Comparativ cu circuitele analogice, un sistem de comanda si monitorizare bazat pe microcontroller permite o mai mare flexibilitate, și o adaptare mai bună la modificarea parametrilor.

Comunicarea cu telefonul se face folosind un Mini Cellular GSM. Datele circulă în general într-o singură direcție de la senzori spre microcontroller, sau de la acesta spre telefonul personal.

Comunicarea cu microcontroller-ul se face pornind de la senzorii programati pentru a functiona corespunzator.

1.2 Obiectivele proiectului

Principalul obiectiv al acestei lucrări il reprezinta siguranta. Pentru siguranta casei in care locuim sau a institutiei in care lucram, este necesara o monitorizare a parametrilor, a tuturor factorilor care pot cauza un dezastru. Aceasta monitorizare a parametrilor se face prin intermediul unor senzori. Exista pe piata o varietate exstinsa de senzori, insa pentru aceasta lucrare am optat pentru 4 senzori : senzor de lumina, senzor de temperatura, senzor cu o capacitate de detecare a gazelor inflamabile si a fumului si un senzor de miscare PIR. Acestia se vor activa in urma depistarii luminii, temperaturii, a gazelor, respectiv a radiatiilor corpului uman. Cei patru senzori sunt esentiali in componenta unui sistem de monitorizare.

Sistemul de fata este un sistem de alarma cu capacitate de comunicare prin intermediul unui modul incorporat GSM. Este un sistem destul de complex, sigur si cu o buna capacitate de functionare.

In functionarea sistemului se urmaresc anumite aspect importante, anumiti factori si anumite situatii:

Functionarea propriu-zisa a sistemului va consta in activarea senzorilor, lucru sce se va desfasura pe parcursul unor situatii:

1.In prima situatie se urmareste asamblarea senzorilor, legarea firelor de conexiune si sigilarea acestor componente pentru o siguranta optima. Se prezinta in primul caz dezvoltarea celor doi senzori si anume cel de temperatura si senzorul de lumina care vor functiona dupa urmaoarele specificatii: Cand sistemul va receptiona un sms venit de la telefonul propietarului, cei doi senzori se vor activa si se va transmite un sms inapoi pe telefonul propietarului cu detalii in cee ace priveste sitiatia prezenta din casa, mai precis cea a luminii si cea a temperaturii.

2. In cea de a doua situatie se urmareste dezvoltarea senzorului cu capacitate de detectare a gazelor inflamabile. In cacest caz, sezorul in momentul activarii va avea functia sa transmita un sms catre propietar. Sms-ul ii va adduce informatii referitoare la pericol.

3.In cea de a treia situatie se urmareste dezvoltarea unui senzor de miscare PIR. Datorita complexitatii acestui senzor si totodata a sensibilitatii si in acelasi timp a puterii de receptionare a radiatiilor infrarosii ale acestui senzor, se va conecta la acesta o rezistenta de 10 kOhmi, numita rezistenta de pull-up, necesara in scopul mentinerii semnalului in sus. De asemeni se va conecta si la un buzzer care in momentul in care sezorul PIR se activeaza, acesta sa incepe sa emita sunete puternice. Functionarea acestui senzor se doreste a functiona astfel: In momentul in care senzorul de miscare detecteaza miscare in jurul si aria sa vizuala, acesta va transmite un apel telefonic catre telefonul propietarului si va duce la activarea buzzer-ului care va transmite sunete puternice.

2.Structura: Descrierea si functionalitatea componentelor

In componenta unui sistem de alarmare intra mai multe elemente de baza. Un element fundamental este un microcontroller care la randul lui este programat. Alte componente fundamentale sunt senzorii care contribuie la actiunea sistemului.

In cadrul Sistemului de alarma cu comunicare pe telefon mobil GSM avem in primul rand nevoie de o platforma Arduino Leonardo, 4 senzori si un modul GSM . Pe langa aceste componente avem nevoie si de o baterie LIPO si un difuzor. Mai jos avem descrisa fiecare componenta fundamentala impreuna cu modul ei de functionare.

Microcontroller de tip Arduino Leonardo, varianta completa, model: ARD-01(Fig. 2.0).

Arduino Leonardo este o platforma de procesare cu sursa libera, bazata pe parte software cat si hardware.

Este o platforma bazata pe microcontroller-ul ATMega32U4. Are pini digitali in numar de 20. Pinii digitali sunt pini de intrare si pini de iesire. Din cei 20 de pini digitali, 7 suporta PWM, 12 dintre cei 20 de pini pot fi utilizati si ca pini de intrare analogical.

Este o platforma flexibila si simplu de folosit deoarece este similara cu Arduino UNO. Aceasta platforma este construita in jurul unui procesor de semnal si are capacitatea de a prelua date din mediul inconjurator . Acest lucru se face printr-o serie de senzori, De asemeni, platforma are capacitatea si de a efectua anumite actiuni asupra mediului. Acest lucru se face prin intermediul luminilor, a motoarelor, a servomotoare, si de asemeni alte tipuri de dispozitive mecanice. Procesorul sau are capacitatea sa ruleze un cod care este scris intr-un limbaj de programare.

Limbajul de programare in care acesta este scris este foarte similar cu limbajul C++. Placa Arduino Leonardo se conecteaza la un port USB al calculatorului prin intermediul unui cablu de tip USB A-B, care este disponibil in doua variante 😮 prima variant este de 1.5 metri si o alta variant este de 3 metri.

Alimentarea acestuia se poate face in mod extern (din priza) prin intermediul unui alimentator extern sursa care sa fie cuprins intre (7 V si 12 V). Necesitatea alimentarii externe apare in situatia in care consumatorii pe care ii avem conectati la placa necesita un curent mai mare de cateva sute de miliamperi.

In caz contrar, platforma poate fi alimentata direct din PC, printr-un cablu USB. Este foarte important faptul ca placa permite comunicarea USB in mod direct fara a fi a mai fi alt ceva necesar. De asemeni acest lucru ii perminte placii sa se comporte conform unui mouse sau a unei tastaturi. Modul de functionare are loc la 16MHz.

Pentru o functionare corecta a plaformei este foarte important sa se respecte urmatoarele specificatii:

Specificatii:

Fig. 2.0 Platforma ARDUINO Leonardo

Senzorii folositi:

In cadrul acestui sistem de alarma se regasesc patru tipuri de senzori si anume:

Senzor de temperatura,

Senzor de lumina,

Senzor de gaz si fum,

Senzor PIR.

Mai jos este descries fiecare senzor impreuna cu modul sau de functionare:

Senzor Temperatura Brick, model: SEN-VRM-05 (Fig. 1.1)

Senzorul de temperatura Brick este o componenta care sesizeaza nivelul temperaturii din mediul ambiant.

Masurarea temperaturii reprezinta un proces uzual de masurare. Pentru transformarea energiei termica in energie electrica este necesara utilizarea unor detectori rezistivi, termoelectrici si piezoelectrici.

Atunci cand avem un senzor care este introdus intr-un obiect sau este plasat pe o suprafata a obiectului are loc un transfer de caldura intre senzor si obiect. Modul de schimbare al senzorului este urmatorul;

Intr-o prima situatie senzorul isi modifica temperatura din cald in rece si totodata isi modifica temperatura si din rece in cald.

Exista doua metode in cadrul procesarii semnalului si anume:

Prima metoda este reprezentata de o metoda a echilibrarii si de asemeni o alta metoda este metoda predictiva.

Pinul de semnal se cupleaza la pinul analogic 0 al placii Arduino.

Fig. 2.1 Senzor Temperatura Brick, model: SEN-VRM-05

Senzor Lumina Brick, model: SEN-LUM-03 (Fig. 2.2)

Senzorul de lumina intra in component sistemului de alarma si are o functie de sesizare a nivelului de iluminare al mediului.

Valoarea iluminarii are o variatie situate intre 0 si 1024. 

Exista mai multe variante de senzori de iluminare si anume :

senzori cu valoare exprimata in lucsi;

senzori cu valoare numerica;

Senzorul de lumina de fata nu este un senzor cu functie de calibrare. Valoarea obtinuta nu este exprimata in lucsi, valoarea este exprimata ca si o valoare numerica, care este direct proportionala cu nivelul de iluminare insa fara a avea o unitate de masura

Fig. 2.2 Senzor Lumina Brick, model: SEN-LUM-03

Senzor Fum si Gaze Inflamabile MQ2, model: SEN-BMT-14 (Fig. 2.3)

 Pentru acest tip de senzor se foloseste un Circuit imprimat numit PCB( Printed Circuit Board), un rezistor cu valoare de 10K, un potentiometru care are rolul de a regla sensibilitatea si un conector care este in unghi cu trei pini. (Fig. 1.4).

Un sezor de acest tip este o componenta foarte importanta a unui sistem de monitorizare deoarece in cazul unei situatii nefericite de incendiu sau scurgeri de gaz, antentionarea in cel mai scurt timp ajuta la rezolvarea rapida a problemei. De exmplu, in cazul unui incendiu, atentionarea imediata previne extinderea acestuia.

Pentru o functionare corecta a acestui senzor este foarte important sa se respecte urmatoarele specificatii:

Specificatii:

Tensiunea de alimentare : 5V 

Temperatura de functionare : -20 +50

Curentul  : 150mA

Dimensiuni : 16.8 mm diametru 9.3 mm inaltime(nu se iau in considerare pinii)

Fig. 2.3 Kit Senzor Fum si Gaze inflamabile

Fig. 2.4 Senzor Fum si Gaze inflamabile

Fig. 2.5 Circuit imprimat, rezistor, potentiometru

Senzor Senzor PIR, model: SEN-PIR-02 (Fig. 2.6)

Senzorul PIR (Passive Infrared Sensor), este un senzor infrarosu pasiv care are capacitatea de  măsurare a radiației infraroșie emisă de obiecte aflate in apropierea sa.

Este un senzor foarte complex, deoarece are capacitatea de a recunoaste miscarile corpului, cel al persoanelor cat si el al obiectelor. Sezorul PIR este o componenta foarte importanta, necesara a se afla in cadrul sistemelor de securitate, de monitorizare de care avem nevoie intr-o locuinta sau intr-o companie. Este unul din cei mai utilizati senzori de miscare.

Denumirea de PIR vine de la capacitatea acestui senzor de a detecta radiația infraroșie (IR). Detectarea temperaturii crescute a corpului aduce la activarea acestui senzor.

In momentul in care acesta simte miscare in apropierea sa se activeaza.

Fig. 2.6 Senzor PIR

Alte componente :

Mini Difuzor Brick, model: COMP-GEN-10 (Fig 2.7) :

Este un dispozitiv de sunet. In cadrul unui sistem de monitorizare este esential deoarece este necesara emiterea unor sunete in momentul activarii anumitor senzori.

In momentul in care un senzor se activeaza, difuzorul porneste si transmite un sunet specific.

Fig 2.7 Mini Difuzor

Baterie LIPO 3.7 V 1400 mA, model: SRS-06 (Fig. 2.8)

O astfel de baterie, este folosita pentru alimentare. In cazul nostru se foloseste pentru alimentarea placii Arduino. Pentru o functionare corecta a acesteia este foarte important sa se respecte urmatoarele specificatii:

Specificatii:

– Tensiune de incarcare 4.2 V, tensiune nominala 3.7 V

– Curent maxim de incarcare 700 mAh

– Curent maxim de descarcare 1400 mAh

– Dimensiuni 50 X 34 X 8 mm

– Greutate 27 grame

Fig. 2.7 Baterie LIPO

Antena GSM/GPRS Quad Band SMA, model: Antena GSM/GPRS Quad Band SMA (Fig. 2.8)

Aceasta antena este necesara pentru a captiva semnalul de retea. Captivarea unui semnal de retea este foarte important deoarece pentru a putea exista conexiune intre o platforma Arduino si un Sistem Global pentru Comunicații Mobile(GSM) este necesara existenta de semnal de retea.

Pentru o utilizare corecta a antenei este foarte important sa se respecte urmatoarele specificatii:

Specificatii:

– GSM/850E : intre 824 si 894MHz,

– GSM : intre 880 si 960MHz,

– DCS : intre 1710 si 1880MHz,

-PCS : intre 1850 si 1990MHz

Fig. 2.8 Antena GSM/GPRS

Adafruit FONA 808 – Mini Cellular GSM + GPS Breakout, model: WIR-48 (Fig. 2.9)

Este o placa de dimensiuni cuprinse intre 4.44 cm x 4.06 cm. Aceasta contine in centru un Sistem Global pentru Comunicații Mobile, adica un modul celular GSM (Global System for Mobile Communications), care este foarte puternic (ultima versiune de SIM808), care detine un GPS integrat.

Pentru o functionare corecta a acestui model este foarte important sa se respecte urmatoarele specificatii:

Specificatii GSM(Global System for Mobile Communications):

Quad band 850/900 / 1800 / 1900MHz –  se conecteaza pe orice retea GSM la nivel mondial cu orice 2G SIM,

GPS integrat complet (Chipset MT3336), utilizeaza acelasi port serial,

Efectueaza si primeste apeluri vocale, folosind o casca sau un difuzor extern,

SMS,

GPRS (TCP / IP, HTTP, etc.),

PWM / Buzzer de control al motorului de vibratie,

Interfata AT 

Specificatii GPS(Global Positioning System):

22 canale de urmarire / 66 canale de achizitie

GPS L1 C / A code

Sensibilitate: Tracking: -165 dBm, cold starts: -147 dBm

Time-To-First-Fix: cold starts: 30s, hot starts: 1s, warm starts: 28s

Precizie: aprox 2.5 metri

Caracteristici:

Este un circuit inclus pe placa pentru incarcarea bateriei pentru ca proiectul sa poata fi deplasat fara a aparea probleme. Se poate utiliza orice fel de baterie cu conditia ca aceasta sa fie de 500mAh+ si se poate reincarca, in cazul in care aceasta se consuma cu ajutorul unui microUSB ,

In component exista doua LED-uri care ne atentioneaza cand se incarca sic and se descarca,

Jack standard pentru casti ,

Breakout pentru difuzor extern de 32Ω,

Circuit pentru schimbarea nivelului logic pentru a putea rula cu logica de 2.8V – 5V,

Driver pentru buzzer, astfel incat sa puteti avea notificari silentioase,

Conexiuni uFL pentru antene externe,

LED-uri indicatoare pentru conectivitate la retea si pentru alimentare,

SIM-ul standard se gliseaza in spate.

Fig. 2.9 Adafruit FONA 808 – Mini Cellular GSM + GPS Breakout

Cartela SIM pentru celularul GSM (Fig. 2.10)

Cartela SIM este necesara in cadrul modulului GSM pentru a putea comunica sistemul cu telefonul mobil. Aceasta se introduce in modulul GSM, dar nu inainte de a se activa.

Fig. 2.10 Cartela SIM pentru modul GSM

Un Smart LED( Fig. 2.11)

Acest tip de led este unul cu o luminozitate foarte puternica.

Specificatii:

-Diametru 12.5 mm,

-Protocol  800 KHz,

-Tensiune 5-9 V,

-Curent constant 18.5mA

Fig. 2.11 LED

O rezistenta

Rezistenta de 10 kOhmi (Fig. 2.13) s-a folosit pentru senzorul de miscare PIR, in scopul de a mentine semnalul in sus. Se foloseste o rezistenta de pull-up (Fig. 2.12)

Rezistentele de pull-up sunt foarte frecvente atunci când se utilizează microcontrolere ( MCU ) sau orice dispozitiv de logica digitala.

Fig 2.12 Rezistenta de pull-up

Fig. 2.13 Rezistenta de 10 kOhm

Pentru a putea lega componentele necesare pe o platforma Arduino se folosesc fire de conexiune multicolore.(Fig 2.10) Firele mulicolore sunt esentiale deoarece pentru a putea respecta o anumita ordine in legarea componentelor diversitatea de culori este foarte importanta.

Lipirea firelor se face cu ajutorul unui Letcon (Fig 2.11), impreuna cu Fludor (Fig 2.12).

Letconul reprezinta un cocan de lipit avand o alimentare de la retea cuprinsa intr 200-24- V si cu dimensiuni cuprinse intr 230×26 mm

Fludorul reprezinta un aliaj folosit pentru lipire, are diamentrul de 1 mm.

Fig. 2.10 Fire de conexiune multicolore

Fig. 2.11 Letcon

Fig. 2.12 Fludor

3.Hardware

3.1 Hardware Arduino Leonardo

Definire:

Arduino Leonardo este un microcontroller bazat pe microcontroller-ul ATmega32u4.

Arduino Leonardo este o platforma de procesare cu sursa libera, bazata pe parte software cat si hardware.

Este o platforma bazata pe microcontroller-ul ATMega32U4. Are pini digitali in numar de 20. Pinii digitali sunt pini de intrare si pini de iesire. Din cei 20 de pini digitali, 7 suporta PWM, 12 dintre cei 20 de pini pot fi utilizati si ca pini de intrare analogical. De asemeni detine o mufa de alimentare, un oscillator de 16 MHz, conexiune prin USB, buton de resetare.

Eficienta:

Arduino Leonardo difera de celalalte platforme prin faptul ca ATmega32u4 este dezvoltat in ceea ce priveste comunicarea prin intermediul unei magistrala serial universal USB(Universal Serial Bus) fapt prin care nu mai exista necesitatea unui alt processor. Acesta ii permite platformei sa se conecteze la un calculator precum un mouse sau o tastatura în plus față de un port serial virtual. De asemeni, platforma detine si alte aspecte pozitive prin utilizarea unui singur microcontroller atat pentru schite cat si pentru comunicarea cu calculatorul prin intermediul unui port serial Prin imbinarea celor doua functii importante intr-un singur procesor, platforma Arduino Leonardo ne permite sa comunicam intr-un mod mult mai flexibil. De asemeni, este util deoarece detine un cost mai redus datorita faptului ca nu mai este necesara folosirea unui procesor aditional.

Comunicare:

Având în vedere că plăcile nu au un cip dedicat pentru a gestiona comunicarea serială, aceasta înseamnă că portul serial este virtual si reprezinta o rutină de software , atât pe sistemul de operare , cat si pe placa in sine. La fel ca și calculatorul, acesta creează o instanță a conducătorului auto port serial atunci când ne conectam la orice Arduino , Leonardo / Micro si se creează o instanță de serie ori de câte ori se execută. Placa este un exemplu al driver-ului portului serial universal conectat la o calsa de dispozitive ( CDC ) . Aceasta inseamna ca de fiecare data cand resetam platforma, conexiunea cu portul serial universal va fi restabilita, lista porturilor va fi reenumerata.

Resetare:

Este important de stiut faptul ca nu poate avea loc o resetare a platformei atata timp cat avem un port serial deschis. Spre deosebire de Arduino Uno , Leonardo și Micro nu va reporni schița atunci când deschidem un port serial de pe calculator . Asta înseamnă că nu putem avea acces la vizualizarea unor date seriale care au fost trimise initial la un calculator.

Alimentare:

Alimentarea platformei Arduino Leonardo se face cu ajutorul unui port serial universal (USB) sau prin intermediul unei surse de alimentare externa. Sursa de alimentare este selectata in mod automat.Alimentarea externa se poate face prin intermediul unui adaptor care se introduce in mufa de alimentare. Platforma poate opera la o tensiune de alimentare cuprinsa intre 6 si 20 de volti. Daca alimentarea se face sub valoarea tensiunii de 7 volti, in acest caz platforma poate devenii instabila. Totodata daca tensiunea de alimentare este prea mare si anume trece de 12 volti, in acest caz regulatorul de tensiune se poate supraîncălzi și poate cauza deteriorarea placii.
Pinii de alimentare sunt urmatorii :

VIN: Tensiunea de intrare la placa Arduino când se folosește o sursă de alimentare externă (față de 5 volți de la conexiunea USB sau a altei surse de alimentare reglementate ) . Poate furniza tensiune prin acest pin , sau , în cazul în care tensiunea de alimentare prin mufa de alimentare , va avea acces la acesta prin acest PIN 5V: Alimentarea cu energie reglementată utilizata pentru a alimenta microcontroller-ul și alte componente de pe placa . Acest lucru poate veni fie de la VIN prin intermediul unui regulator de la bord , sau să fie furnizate prin USB sau o altă sursă de 5V reglementate,

3V3: O sursă de 3,3 volți generată de autoritatea de reglementare la bord . Consumul maxim de curent este de 50 mA .

GND(Ground): Pinii la sol ,

IOREF: Tensiunea la care pinii de Intare / Iesire ale bordului funcționează (adică VCC pentru bord ) . Acest lucru este de 5V pe Leonardo.

Intrare și ieșire:

Fiecare dintre cei 20 de pini digitali de intrare / iesire de pe Leonardo poate fi utilizată ca si intrare sau ieșire. Acestia funcționează la 5 volți. Fiecare PIN poate sa ofere sau sa primeasca un maxim de 40 mA și are o rezistență pull-up interna(deconectat implicit) de 20-50 kOhmi.

Pini cu functii speciale:

Serial: 0 (RX) și 1 (TX). Este folosit pentru a primi (RX) și pentru a transmite date seriale (TX) TTL utilizând capacitatea de serie hardware ATmega32U4. Pe Leonardo, clasa Serial se referă la comunicarea cu portul serial universal(USB) iar pentru serial-ul Tranzistor-Tranzistor Logic (TTL)se afla pe pinii 0 și 1.

Întreruperi: 3 ,2 0, 1 și 7. Acești pini pot fi configurati pentru a declanșa o întrerupere la o valoare mică, o margine în creștere sau în scădere, sau o modificare a valorii.

PWM(Pulse Width Modulation): 3, 5, 6, 9, 10, 11 și 13.

SPI: pe antetul ICSP. Acești pini suportă comunicare SPI folosind biblioteca SPI. Pinii SPI nu sunt conectate la oricare dintre pinii digitali de intrare/iesire, fiind disponibile numai pe conectorul ICSP. Acest lucru înseamnă că, dacă aveți un scut care utilizează SPI, dar nu are un conector ICSP 6 pini care se conectează la antetul ICSP 6-pini Leonardo, scutul nu va funcționa.

LED: 13. Există o componenta in LED conectat la pinul digital 13. Atunci când PIN-ul este o valoare mare, LED-ul este aprins, atunci când PIN-ul este LOW, este oprit.

Intrări analogice: A0-A5, A6 – A11 (pe pinii digitali 4, 6, 8, 9, 10 și 12). Leonardo are 12 intrări analogice, etichetate A0 prin A11, toate acestea pot fi, de asemenea, utilizate ca digitale i / o. Pins A0-A5 apar în aceleași locații ca și pe Uno; Intrări A6-A11 sunt pe i digitale / o pinii 4, 6, 8, 9, 10 și 12, respectiv. Fiecare intrare analogică furnizează 10 biți de rezoluție (adică 1024 valori diferite). În mod implicit măsura intrări analogice de la sol până la 5 volți, deși este posibil să se schimbe capătul de sus a intervalului lor folosind PIN-ul AREF ,

AREF. Tensiunea de referință pentru intrări analogice.

Resetare. Aduce această linie LOW pentru a reseta microcontroller.Este folosit de obicei pentru a adăuga un buton de resetare la scuturi care blochează cea de pe bord.

Specificatii esentiale legate de platforma Arduino Leonardo:

3.2 Realizare sistem

In realizarea sistemului de alarmare prin comunicarea cu un modul GSM s-au folosit urmatoarele componente:

Microcontroller-ul folosit:

Microcontroller de tip Arduino Leonardo, varianta completa, model: ARD-01.

Senzorii folositi:

Senzor Temperatura Brick,

Senzor Lumina Brick,

Kit Senzor Fum si Gaze Inflamabile MQ2,

Senzor Senzor PIR,

Alte componente :

Un Mini Difuzor Brick,

Baterie Baterie LIPO 3.7 V 1400 mA,

Antena GSM/GPRS Quad Band SMA,

Adafruit FONA 808 – Mini Cellular GSM + GPS Breakout,

Cartela SIM pentru celularul GSM,

Un LED,

O rezistenta de 10 kOhmi

Modul de realizarea al sistemului s-a facut in felul urmator:

S-au lipit cu fludor cate 3 fire multicolore pe fiecare senzor (Fig. 3.1) si anume:

Pe senzorul de temperatura:

– Primul fir de culoare albastru s-a lipit pe Ground(GND),

– Al doilea fir de culoare mov s-a lipit pe tensiunea de alimentare(VCC),

– Al treilea fir de culoare gri s-a lipit pe iesire(OUT),

Pe senzorul de lumina:

– Primul fir de culoare maro s-a lipit pe Ground(GND),

– Al doilea fir de culoare rosu s-a lipit pe tensiunea de alimentare(VCC),

– Al treilea fir de culoare portocaliu s-a lipit pe iesire(OUT),

Pe senzorul de gaz si fum:

– Primul fir de culoare portocaliu s-a lipit pe Ground(GND),

– Al doilea fir de culoare rosu s-a lipit pe tensiunea de alimentare(VCC),

– Al treilea fir de culoare maro s-a lipit pe iesire(OUT),

Pe senzorul de miscare PIR:

– Primul fir de culoare rosu s-a lipit pe “+”,

– Al doilea fir de culoare alb s-a lipit pe Ground(GND),

– Al treilea fir de culoare negru s-a lipit pe alimentare(AL)

S-au lipit 6 fire multicolore pe modulul GSM (Fig 3.2):

– Primul fir de culoare negru s-a lipit pe Ground(GND),

– Al doilea fir de culoare alb s-a lipit pe Vio,

– Al treilea fir de culoare gri s-a lipit pe resetare(Rst),

– Al patrulea fir de culoare mov s-a lipit pe pinul RX(RX),

– Al cincelea fir de culoare albastru s-a lipit pe pinul TX(TX),

– Al saselea fir de culoare verde s-a lipit pe Key(Key)

Dupa aceste operatiuni a urmat lipirea pe o placuta de cupru cu silicon topit a fiecarei componenta.:

Siliconul ajuta la lipirea in mod eficient a pieselor si totodata ajuta la sigilarea acestora. Pentru a delimita corect fiecare component prima data s-a lipit platforma Arduino Leonardo care are dimensiunea cea mai mare si dupa aceasta si celelalte componente. Este importanta corectitudinea lipirii componentelor deoarece trebuie ca fiecare componenta care urmeaza sa fie conectata la Arduino sa fie pusa in directia potrivita.

Dupa lipirea placutei Arduino s-a lipit modulul GSM care este al doilea ca si dimensiunea, urmat de bacteria LIPO, cei 4 senzori, antena si difuzorul.

Dupa lipirea pe placuta de cupru a fiecarei componente a urmat conexiunea intre componente cu platforma Arduino:

– La Ground s-au lipit firele de la fiecare Ground al senzorilor,

– Senzorul de temperatura s-a legat la pinul A0,

– Senzorul de lumina s-a legat la pinul A2,

– Senzorul de gaz si fum s-a legat la pinul A4,

– Senzorul de miscare PIR s-a legat la pinul A11,

– Ledul s-a legat la pinul A7,

– Difuzorul s-a legat la pinul A6,

Fig. 3.1 Cei 4 senzori

Fig. 3.2 Modul GSM

Fig. 3.3 Sistem de alarmare prin comunicarea cu GSM

Program

Mediul de programare Arduino

Mediul de programare Arduino este unul foarte complex, este asemanator limbajului de programare C++ si ne ofera o variatate mare de functii care ne ajuta la configurarea pinilor, senzorilor si a oricarei componente pe care o utilizam in implementare. Este un limbaj de programare extrem de flexibil deoarece permite scrierea aceluiasi program în mai multe feluri, iar programul respective sa executie aceeasi functie. Acesta permite o scriere compactă, instrucțiunile putând fi scrise pe același rând,programul poate fi intr-un mod apropiat de pseudocod deoarece conceperea algoritmilor este mult mai simpla si eficienta. Acest limbaj in programarea de microcontrolere.

Structura unui program Arduino: un program este alcatuit din una sau mai multe funcții. Avem o functie principala main() in care se introduce mai multefunctii mici.

Programarea de tip Arduino poate fi divizata in trei parti esentiale:

Stuctura,

Valori(variabile si constante),

Functii.

Structura:

Functia de configurare: setup(), este apelata in momentul in care se da stratul unei scheme. Se utilizeaza pentru a initializa variabile, pini, inceperea utilizarii unei librarii. Aceasta functie de configurare functioneaza o singura data dupa fiecare pornire sau resetare a platformei Arduino.

Functia de bucla : loop(), este apelata dupa crearea unei functiei de configurare, care inițializează și stabilește valorile inițiale , funcția de buclă are rolul de a face programul sa schimbe si sa raspunda. Este util pentru a mentine activ platforma Arduino.

Pentru control se utilizeaza urmatoarele functii:

Functia de conditionare: if(), este o functie care se utilizeaza pentru a compara prin intermediul unor anumiti operatori, testeaza daca s-au respectat anumite conditii.Dupa ce se face o astfel de verificare intotdeauna are loc o actiune.

Operatorii de comparare sunt:

x == y (x este egal cu y)

x != y (x este diferit de y)

x < y (x este mai mic decat y)

x > y (x este mai mare decat y)

x < = y (x este mai mic sau egal cu y)

x > = y (x este mai mare sau egal cu y)

Functia de conditionare: if() / else() este o functie de control care se apeleaza in cazul in care se face o verificare prin conditia if(). Daca verificarea nu se respecta atunci se va intra pe conditia else() si va avea loc o alta actiune.

Functia: for(), este utilizată pentru a repeta un bloc de declarații închise între acolade . Un contor de creștere este de obicei folosit pentru a incrementa si termina bucla . Aceasta functie este utilă pentru orice operațiune repetitiva , și este adesea folosita în combinație cu o matrice pentru a opera pe colecții de date / pini .

Functia: switch(),aceasta functie permite programatorilor sa specific alt cod , care trebuie să fie executat în diferite condiții . În special , o declarație de comutare compară valoarea unei variabile la valorile specificate în declarațiile de caz . Atunci când se constată o declarație de caz a cărei valoare se potrivește cu cea a variabilei , codul în acest caz declarația este rulat . Cuvântul cheie de pauză (break;) iese din declarația de comutare , și este utilizat în mod tipic la sfârșitul fiecărui caz în parte.

Functia: while(), aceasta functie va creea o bucla pana cand expresia din paranteze nu va mai fi adevarata.

Functia: do..while, este o functie care lucreaza in aceeasi maniera cu functia while(), cu exceptia ca si conditia sa fie verificata la sfarsitul buclei pentru ca astfel sa se ruleze cel putin o data.

Functia: break, este o utilizata pentru a iesi dintr-o situatie precum do, for, while.

Functia: continue, este utilizata pentru a verifica expresia condiționată a buclei , și pentru a continua cu orice iterații ulterioare .

Functia: return, este utilizata pentru a returna o valoare.

Variabile:

Variabilele sunt determinate de constant, tipuri de date, conversii.

Functiile:

Functiile Digitale de intrare/iesire:

pinMode(): configureaza pinul specific pentru a se comporta atat pe intrare cat si pe iesire,

digitalMode(): scrie o valoare cresccuta sau redusa pentru un pin digital,

digitalRead(): citeste o valoare de pe un pin digital indifferent daca are valoare crescuta sau scazuta.

Functiile Analogice de intrare/iesire:

analogReference():configurează tensiunea de referință utilizată pentru intrarea analogică ( adică valoarea utilizată ca partea superioară a intervalului de intrare ) ,

analogRead(): citeste valoarea de pe un pin analogic,

analogWrite():scrie o valoare analogica pe un pin. Poate fi folosita pentru a lumina un LED, prin verificarea luminozitatii, sau pentru diferite viteze ale unui motor.

Comunicarea:

Seriala : se face in scopul comunicarii intre placa Arduino si calculator sau alte dispositive. Toate platformele Arduino au cel putin un port serial. Comunicarea se face pe pinul digital 0 (RX) si pe pinul digital 1 (TX) precum si cu un calculator prin intermediul unui port serial universal(USB).

Stream: Stream este clasa de bază pentru caractere și fluxuri binare. Nu este numit în mod direct , dar este invocat de fiecare dată când se utilizeaza o funcție care se bazează pe el. Flux definește funcțiile de citire în Arduino .

Portul serial universal(USB):

Tastatura si Mouse: Un cuvânt de precauție cu privire la utilizarea bibliotecilor mouse și tastatură : dacă mouse-ul sau tastatura de bibliotecă este în mod rulează in mod constant, placa Arduino va fi greu de programat.

Programare sistem

Sistemul de alarma a fost programat in mediul de programare Arduino. Pentru o functionare corecta a acestuia trebuie respectate cateva norme importante, testate componentele si apoi reunite intr-un program. Modul prin care s-a programat acest sistem a avut loc astfel:

In primul rand s-a verificat conexiunea platformei Arduino cu calculatorul, totodata si functionalitatea fiecarui senzor cat si conexiunea la retea a modulului incorporat GSM.

Fiecare senzor a fost programat individual iar dup ace acestia au fost programati au fost alaturati intr-un singur program pentru a putea functiona simultan.

1.Programarea senzorului de temperatura:

In cadrul sistemului nostru e alarma, senzorul de temperatura are ca si scop functia de a da un status al temperaturii din incapere, in momentul in care se trimite un sms catre modulul GSM. In momentul in care propietarul trimite un sms catre sistem, acesta ii va raspunde cu un status legat de temperatura din incapere exprimata in grade Celsius.

Ca si metoda de citire a datelor seonzorului de temperatura in Celsius:

S-a folosit o metoda de tip float intitulata :”citesteValoareTemperaturaInCelsius” care defineste 2 parametrii de tip integer si anume: count si pin.

Se initializeaza:

– “temperaturaMediata” cu valoarea 0,

-“suma Temperatura” cu valoarea 0,

Se face verificarea cu functia for() in care verificam daca valoarea noastra este mai mica decat “count”.

Se initializeaza parametrul “reading” cu analogRead(pin), pentru a putea citi o valoare analogical de pe pin.

Se initializeaza tensiunea denumita “voltage” cu o valoare de tip float, de 5 volti

Se initializeaza temperatura in grade Celsius denumita “temperatureCelsius” cu (valoarea tensiunii – 0.5 )* 100 ;

In final se va calcula suma Temperaturii : cu suma dintre “sumaTemperatura “ si “temperatureCelsius”,

Aceasta metoda va returna sumaTemperatura raportata la parametrul count.

2. Programarea senzorului de lumina:

In cadrul sistemului nostru de alarma, senzorul de lumina va avea acelasi scop ca si senzorul de temperatura si anume de a da un status al luminii din incapere, in momentul in care se trimite un sms catre modulul GSM. In momentul in care propietarul trimite un sms catre sistem, acesta ii va raspunde cu un status legat de lumina din incapere exprimata in grade lucsi.

Citirea senzorului de lumina se face printr-o metoda numita “citesteValoareLumina()” de tip integer.

Se initializeaza valoarea de iluminare :”valoareIluminare” cu analogRead(1); pentru a putea citi o valoare analogica de pe pin.

Se vor afisa valorile in ordine descrescatoare si vom avea o intarziere delay(10) ;

Se va returna ” valoareIluminare”.

3. Programarea sezorului de Gaze inflamabile si fum:

Sistemul nostru de alarma, pe langa functiile senzorile de mai sus, cel de temperatura si cel de lumina, senzorul de gaz si fum are ca si scop functia de a trimite un sms catre proprietar in situatia in care acesta detecteaza gaz sau fum. In momentul detectarii de caz si fum senzorul se va active si va trimite un sms pe telefonul propietarului. Sms-ul va fi reprezentat de mesajul : “Alarma gaz!”

Acest proces de initializare, depistare a gazului sau fumului si de trimitere a sms-ului s-a programat in felul urmator:

Se citeste valoarea data de senzorul de gaz printr-o metoda numita “citesteValoareGaz()”,

Se initializeaza “gasValue” cu analogRead(4),

Se afiseaza mesajul :”Valoare Gaz:”,

Se afiseaza valoarea lui :”gasValue” si are loc o intarziere delay(10);

Se returneaza valoarea gazului.

Intr-o noua bucla loop() , se initializeaza valoarea senzorului de gaz cu valoarea citita mai sus,

Se afiseaza “valoareSenzorGaz”;

In momentul in care gazul e detectat se trimite sms astfel:

Se pune conditia if() daca “valoareSenzorGaz” este mai mare decat 1010, daca aceasta conditie este indeplinita atunci se trimite sms catre telefon.

Functia de trimitere sms catre numarul dorit se face prin intermediul functiei fona.sendSMS in care se introduce numarul de telefon impreuna cu mesajul care este transmis.

4.Programarea senzorului de miscare PIR:

Modul acestuia de functionare este mai deosebit de cel al celorlalti senzori deoarece in momentul in care acesta detecteaza radiatiile provocate de miscare, in loc sa trimita un sms, va apela telefonul. In momentul in care acest sensor se activeaza se activeaza si difuzorul.Difuzorul este configurat si el printr-o metoda care va fi descrisa mai jos.

Acest proces s-a realizat in felul urmator:

S-a initializat pinul “pirPin” la pinul 11,

Valoarea digitala se citeste cu digitalRead si se pune conditia if() in care daca valoarea pinului este scazuta atunci buzzer-ul este setat la valoarea 200 si se va afisa valoarea in milisecunde prin functia millis() si vom avea o intarziere delay(50);

Pentru situatia in care se citeste pinul digital cu valoarea mai mare atunci se considera ca nu exista pericol si nu se va active buzzer-ul.

5.Programarea si configurarea modulului GSM:

Modulul GSM este extrem de deosebit, deoarece este un modul care ne ofera posibilitatea unei comunicari cu telefonul mobil. Prin intermediul acestuia toti cei 4 senzori descrisi mai sus ne ofera informatii legate de temperatura sau de lumina, ne trimite sms in situatia in care avem de a face cu gaz, fum, sau ne apeleaza in situatia detectarii senzorului de miscare PIR.

Initializarea acestuia s-a facut in felul urmator:

Se seteaza valoarea portului serial incepand cu valoarea115200,

Se afiseaza mesajul de “Initializare GSM…(Poate dura 3 secunde)”,

Se seteaza valoarea serialului cu valoarea 4800, pentru situatia in care se depisteaza o valoare necorespunzatoare modulul nu poate fi initializat, in caz contrar ,modulul se initializeaza.

6. Programarea Buzzer-ului:

In cadrul sistemului nostru, buzzerul are rolul de a functiona in momentul in care se activeaza senzorul de miscare PIR. In momentul in care senzorul de miscare se activeaza, buzzer-ul incepe sa sune si se trimite un sms catre telefon.

Ca si pin, pentru buzzer s-a setat pinul 6, cu ajutorul functiei pinMode(),

Apelarea acestui buzzer se face prin intermediul unei metode initultata “buzzer”,

Obtinerea unui tot se face prin scrierea pe pinul 6 si trimiterea unei valori cuprinsa intre 0-255, adica (0.5 volti),

Se seteaza o intarziere delay(delayms) exprimata in milisecunde. Aceasta setare se repeta de 4 ori pentru ca sunetul sa se execute de 4 ori.

7. Programarea Led-ului:

Pentru LED s-a setat pinul 7 cu ajutorul functiei pinMode() , iar stingerea led-ului se face prin functia :stingeLed();

5.Functionare sistem

Sistemul de fata este un sistem de alarma cu capacitate de comunicare prin intermediul unui modul incorporat GSM. Este un sistem destul de complex, sigur si cu o buna capacitate de functionare.

Modul de functionare al sistemului:

In primul rand este esential ca atunci cand pornim sistemul sa il alimentam la bateria LIPO. Dupa ce acesta a fost alimentat acesta poate functiona corespunzator. Atasat de sistem avem un LED cu luminozitate ridicata care este inactiv. Pentru ca acesta sa se aparinda este necesar ca sistemul sa se conecteze la retea. Dup are loc conexiunea sistemului la retea, led-ul se aprinde. Culoarea led-ului este albastru.

Functionarea propriu zisa a sistemului, mai precis activarea senzorilor are loc in urmatoarele cazuri:

1.Primul caz este reprezentat de senzorul de temperatura si senzorul de lumina. Cei doi senzori sunt programati sa functioneze asemanator. Functionarea si activarea acestora presupune receptarea si emiterea unui mesaj pe telefon. Situatia in care cei doi senzori se activeaza are loc in momentul in care acestia receptioneaza un sms de la propietarul apartamenului. Odata receptionat mesajul, cei doi senzori se activeaza iar in urma activarii lor se trimite propietarului un raspuns ce cuprinde o situatie prezenta legata de cei 2 senzori. Mai precis este vorba de o situatie in care este prezentata Temperatura actuala exprimata in grade Celsius cat si Luminozitatea actuala exprimata in lucsi.

2. Cel de al doilea caz este mai important si anume este vorba de senzorul de depistare a gazelor inflamabile si a fumului. Modul acestuia de functionare este mai diferit fata de primul caz deoarece acesta este programat ca in momentul in care depisteaza gaz sau fum sub valoarea maxima permisa sa trimita un sms catre propietar in care s ail informeze ca alarma a depistat gaz si s-a activat.

3. Cea de a treia situatie este reprezentata de senzorul de miscare PIR, care este un senzor estential in orice sistem de Securitate, de alarmare sau monitorizare deoarece are capacitatea de a detecta radiatiile infrarosii transmise de corpul uman cat si capacitatea de a detecta miscarea unor obiecte. Modul acestuia de functionare se realizeaza astfel:

Senzorul de miscare PIR este programat sa functioneze in momentul in care depisteaza miscare. Daca acesta a detectat miscare, se activeaza iar spre deosebire de ceilalti senzori, acesta nu trimite un sms ci apeleaza telefonic propietarul.

5.Testare si validare

Monitorul serial Arduino

Arduino IDE are o caracteristică ce poate fi un mare ajutor in depanarea unor schite sau pentru comanda unui Arduino de la tastatura computerului .

Monitorul serial este o fereastră separată, care acționează ca un terminal separat, care are roul de a comunica prin primirea și prin transmiterea de date seriale . (Fig 5.1)

Fig. 5.1

Datele seriale sunt transmise într-un singur fir ( in cazul nostru, de obicei circula prin intermediul unui port serial universal(USB) și constă intr- o serie de 1 și 0 ,care este trimisă pe fir . Datele pot fi trimise în ambele direcții ( în cazul nostru pe datele se transmit pe două fire ) .

Pasul 1:

Serial Monitor se utilizeaza in scopul de a depana Schițele Software Arduino sau pentru a vizualiza datele trimise de o schiță de lucru . Este necesar ca Arduino sa fie conectat prin port serial universal(USB) la computer pentru a fi capabil de a activa Serial Monitor . Daca Aplatforma Arduino nu este conectata la un computer printr-un port serial universal, atunci monitorul serial nu functioneaza.

Pasul 2: Cum arata un monitor serial

Când facem click pe acesta, monitorul serial va apărea într -o fereastră nouă (Fig.5.2).

Fig 5.2 Monitor Serial

Descriere fereastra monitor serial:

– Caseta superioara de dimiensiuni mici ne permite sa introducem caractere( hit sau faceți clic pe " Send" )

– Zona mare, se foloseste în situatia în care caracterele trimise de la Arduino vor fi afisate.

– In partea de jos sunt două campuri :

Unul stabilește "linia care se încheie ", care va fi trimisa la Arduino când sau facem clic pe Trimitere,

Cealaltă stabilește rata de transmisie pentru comunicații . ( În cazul în care acest lucru nu se potrivește cu valoarea stabilită în schița de Setup , caracterele vor fi imposibil de citit ) .

Exemplu : Serial.begin ( 9600 ) ; Schițe sau alte aplicații pot utiliza o rată de transfer diferit .

Pasul 3 : Depistarea erorilor prin intermediul monitorului serial:

Dacă testam o nouă schiță , poate fi nevoie să știe ce se întâmplă atunci când incercam să -l rulam . Dar, " Software-ul este invizibil ! " . Prin urmare, avem nevoie sa ii spunem software-ului ce sa ne transmita și, uneori si valoarea variabelilelor schimbate. Serial Monitor se foloseste pentru adăugarea de cod pentru a schița noastra si in scopul de a trimite caractere pe care le putem vizualiza .

Biblioteca SoftwareSerial:

Hardware-ul Arduino este construit ca si suport pentru comunicarea serial pe pinii 0 și 1 (care, de asemenea, se leaga la calculator calculator prin conexiunea cu un port serial universal (USB). Suportul serial nativ are loc printr-o bucată de hardware (construit în cip), numit transmitator/receprot universal asincron(UART). Acest hardware permite cip-ului Atmega sa primeasca comunicare de tip serial, chiar daca in acelasi timp se lucrează la alte sarcini, atâta timp cât există o cameră în buffer-ul serial de 64 octeți.

Biblioteca SoftwareSerial a fost dezvoltata pentru a permite comunicarea de tip serial pe alti pini digitali ale unui Arduino, utilizând software-ul pentru a reproduce funcționalitatea (de aici numele de "SoftwareSerial"). Este posibil să avem un software cu mai multe porturi seriale, avand viteze de până la 115200 bps. Un parametru activeaza semnalizarea inversata a dispozitivelor care necesită acest protocol.

Versiunea SoftwareSerial inclusă în 1.0 și mai târziu se bazează pe biblioteca NewSoftSerial de Mikal Hart.

Limite:

Biblioteca are următoarele limite cunoscute:

În cazul în care utilizează software-ul cu mai multe porturi seriale, numai unul poate primi date de la un moment dat,

Nu toti pinii de pe Mega și Mega 2560 se pot intrerupe, astfel încât numai următoarele elemente pot fi utilizate pentru pinul RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 ( 63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69),

Nu toti pinii de pe platforma Arduino Leonardo și Micro supota schimbari de intrerupere, astfel încât numai următoarele elemente pot fi utilizate pentru pinul RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (Mosi),

Pe Arduino sau GENUINO 101 viteza maximă curentă RX este 57600bps,

Pe Arduino sau GENUINO 101 RX nu funcționează pe PIN 13.

Testarea sistemului:

S-a facut prin intermediul monitorului serial descris mai sus si a unui telefon mobil GSM in felul urmator:

In primul rand s-a testat si verificat functionalitatea corecta a fiecarei componente a sistemului deoarece in situatia in care una dintre acestea nu functioneaza atunci este necesara inlocuirea cu o piesa noua.

Testarea senzorilor:

Fiecare senzor a fost testat individual fiecare dintre ei a avut o mica sectiune de program care a fost introdusa in Arduino pentru a verifica daca acestia functioneaza.

Pentru senzorul de temperatura s-a introdus urmatoarea sectiune de program pentru verificare(Fig. 5.3)

Fig. 5.3 Sectiune de verificare senzor temperatura

Pentru senzorul de lumina s-a introdus urmatoarea sectiune de program pentru verificare(Fig. 5.4)

Fig. 5.4 Sectiune de verificare senzor de lumina

Pentru senzorul de gaze inflamabile si fum s-a introdus urmatoarea sectiune de program pentru verificare(Fig. 5.5)

Fig. 5.5 Sectiune de verificare senzor de gaze inflamabile si fum

Pentru buzzer s-a introdus urmatoarea sectiune de program pentru verificare(Fig. 5.6)

Fig. 5.5 Sectiune de verificare buzzer

Functionalitatea fiecarei componente se verifica in monitorul serial astfel:

Pentru senzorii de temperatura si lumina se vor afisa urmatoarele mesaje(Fig.5.6)

Fig. 5.6 Mesaj de configurare a senzorilor de temperatura si lumina

In cadrul modului GSM, se testeaza daca acesta s-a intitializat cu success. In cazul in care s-a initializat cu success, va aparea mesajul de mai jos (Fig. 5.7).Pentru situatia in care modulul GSM nu se initioalizeaza corespunzator ne va aparea un mesaj : "Modul GSM indisponibil!!!".

Fig 5.7 Mesaj de initializare a modulului GSM

In cadrul senzorului de gaze inflamabile si fum, se testeaza daca platformea preia valorile de la momentul actual ale senzorului.(Fig. 5.8)

Fig 5.8 Valori gaz

Pe telefonul mobil se testeaza daca senzori functioneaza corespunzator si daca in momentul activarii acestora are loc actiunea pe care programul acestora o doreste.

Pentru senzorul de temperatura si lumina (Fig 5.9):

In momentul in care se trimite un sms catre modulul GSM, senzorii de lumina si temperatura se activeaza. In momentul activarii acestia trimit un sms cu un status legat de starea celor doi senzori la momentul actual. Pentru senzorul de temperatura in continutul mesajului transmis vom regasii numele acestuia iar alaturat numarul de grade Celsius. Langa acesta vom regasii numelez senzorului de lumina iar alaturat valorile sale exprimate in lucsi.

Fig. 5.9 Primire mesaj de la modulul GSM

Pentru senzorul de gaze inflamabile si fum(Fig 5.10):

In momentul in care sezorul de gaze si inflamabile detecteaza unul dintre acesti factori se declanseaza. In momentul declansarii, modulul GSM trimite un mesaj catre telefonul GSM in care se atentioneaza propietarul cu privire la situatia prezenta.

Fig. 5.10 Mesaj trimis de catre modulul GSM

Pentru senzorul de miscare PIR (Fig 5.11):

In momentul senzorul de miscare detecteaza miscarea unui obiect sau radiatiile infrarosii(IR) transmise de corpul uman, acesta se activeaza iar modulul GSM lanseaza un apel telefonic catre propietar.

Fig. 5.11 Apel de la modulul GSM

7. Concluzii

Acest capitol este format din trei sub-capitole, si anume: un sub-capilol in care se descriu concluziile generale, un sub-capitol referitor la contributiile personale sic el de al treilea sub-capitol in care se prezinta posibilitățile de dezvoltare ulterioară.

7.1 Concluzii generale

Sistemul de față are principalele atribuții de a mentine siguranta unei locuinte prin intermediul unor senzori si a unui modul GSM care are capacitatea sa interactioneze cu cu utilizatorul. Interactiunea cu utilizatorul se face prin intermediul modulului GSM. Sistemul are la baza o platforma Arduino Leonardo care se conecteaza la retea prin intermediul unui port serial universal (USB).

Se folosesc doi senzori si anume un senzor de temperatura pentru masurarea temperaturii in grade Celsius si un sezor de lumina pentru masurarea in lucsi. Pinii la care cei doi senzori sunt legati sunt: pinul A0 pentru senzorul de temperature si A2 pentru senzorul de lumina.

Un alt senzor si anume un senzor de de gaze inflamabile si fum pentru masurarea nivelului de gaz. Senzorul de gaz si fum este legat la pinul A4.

Se foloseste un senzor de miscare PIR pentru detectarea miscarii obiectelor si a radiatiilor infrarosii(IR) transmise de corpul uman.Pinul la care acest senzor s-a legat este pinul A11.

Pentru a mentine semnalul ridicat al senzorului de miscare se foloseste o rezistenta de 10kOhmi.

Pentru a marca activarea senzorului de miscare se foloseste un difuzor pentru transmiterea unor sunete. Pinul la care acesta a fost legat este pinul A6.

Pentru conectarea platformei la calculator se foloseste un port serial universal(USB).

7.2 Contribuții personale

Contibutia personala in dezvotarea acestui sistem a avut loc atat pe partea de Hardware cat sip e parte de software si anume:

Pe partea de Hardware, contributia personala acordata acestui sistem sta in primul rand in achizitionarea componentelor sistemului si anume: patru senzori, o placuta Arduino Leonardo, un modul GSM, o baterie externa LIPO, un led, un difuzor, fire multicolore de legatura, fludor, letcon, rezistenta de 10kOhmi.

De asemeni, tot de partea de hardware tine si asamblarea acestor piese, stabilirea legaturilor dintre acestia, a pinilor, a tensiunilor de alimentare, a iesirilor, a impamantarilor.

Pe partea de Software, contributia personala a acestui sistem consta in faptul ca pentru functionarea fiecarui senzor a fost necesara programarea acestora. Acest lucru s-a facut in limbajul Arduino, dupa modelul mediulului de programare C++.

O alta contributie personala tine de testarea functionalitatii sistemului, corectarea erorilor in scopul de a obtine un rezultat pozitiv.

7.3 Posibilități de dezvoltare ulterioară

Sistemul de fata este un sistem care poate fi dezvoltat pe viitor datorita varietatii de senzori existenti pe piata.

La momentul actual sistemul are la baza 4 senzori. Ca si o posibila dezvoltare ulterioara a sistemului se poate urmarii dezvoltarea celor 4 senzori existenti, prin adaugarea de componente precum led-uri pentru fiecare sau functii noi.Totodata, se pot adauga noi senzori pentru a ajuta la complexitatea sistemului si totodata pentru a creste calitatea si siguranta pee care acesta il ofera in prezent.

Modulul GSM incorporat detine o librarie complexa cu o multitudine de functii care pot fi configurate in acest sistem.

Similar Posts