marți, 31 mai 2016

Sistem de alarma (2)


   Fata de sistemul de alarma prezentat in articolul precedent, in care activarea si dezactivarea alarmei se facea cu un comutator, acum am conectat o tastatura cu 12 butoane:
   Sistemul de alarma functioneaza astfel, dupa incarcarea sketch-ului alarm_system_2a.ino:
- la pornire sistemul este dezactivat, confirmat prin aprinderea led-ului albastru;
- daca se tasteaza codul corect (1234* sau mai bine #1234* pentru a elimia posibilitatea erorilor din cauza unor apasari anteriorare, deoarece tasta # asta face), led-ul albastru se stinge si incepe sa clipeasca led-ul verde timp de 20 secunte, indicand ca alarma se pregateste de armare;
- dupa trecerea timpului de pregatire, se intra in modul activ de supraveghere, indicat de aprinderea continua a led-ului verde;
- daca se detecteaza o miscare, led-ul verde se stinge si se aprinde intermitent led-ul rosu, timp de 10 secunde, timp pentru a putea dezactiva alarma
- daca a trecut timpul si alarma nu a fost dezactivata, ledu-ul rosu se aprinde permanent indicand activarea avertizarii sonore (eu am doar led-ul de pe placa Arduino)
- daca nu se intervine nici acum pentru dezactivare alarma, sistemul trece in supraveghere si daca este iar miscare, asteapta 10 secunde si apoi se declanseaza avertizorul sonor tot 10 secunde.
- alarma se poate dezactiva in orice moment prin intorducerea codului.
   Am facut niste filmulete in care se vede mai bine modul de functionare:

Sistem de alarma


   Pe site-ul polonez http://majsterkowo.pl/ se gaseste un articol foarte interesant cu o alarma, care se poate activa/dezactiva dintr-un comutator.
   Schema alarmei este:
iar sketch-ul original se gaseste in articol, la pagtina 3.
   Dupa ce am tradus variabilele si am urmarit sketch-ul, am constatat urmatoarele:
- pinul D3 este pus permanent la masa (gnd), deci il pot elibera;
- led-ul albastru nu e folosit
- alarma este oprita cand comutatorul este in pozitia din stanga, adica pinul D2 in aer (la +5V prin rezistenta interna)
- alarma este functionala cand comutatorul este in pozitia din dreapta (pinul D2 la masa)
- dupa trecerea comutatorului spre dreapta, alarma este in asteptare timp de 20 secunde (pentru a pleca din casa), led-ul verde clipeste intermitent;
- dupa activarea supravegherii, led-ul verde este aprins permanent;
- daca se detecteaza miscare, led-ul rosu se aprinde cu intermitenta timp de 10 secunde, timp in care se poate dezactiva alarma prin trecerea comutatorului in stanga
- daca alarma nu se dezactiveaza ledul rosu ramane aprins permanent si avertizorul sonor este activ (suna), pana se dezactiveaza alarma (prin trecerea comutatorului in pozitia din stanga).
   Eu am facut mici modificari si schema a devenit:
   Am facut modificari si in sketch (alarm_system_1a.ino):
- comutatorul are pozitie de OFF (pin D2 in aer) sau ON (pin D2 la masa);
- daca alarnma este dezactivata led-ul albastru este aprins
- dupa trecerea comutatorului spre dreapta, alarma este in asteptare timp de 20 secunde (pentru a pleca din casa), led-ul verde clipeste intermitent;
- dupa activarea supravegherii, led-ul verde este aprins permanent;
- daca se detecteaza miscare si alarma nu este dezactivata, dupa trecerea celor 10 secunde, se aprinde led-ul galben (care se poate inlocui ca in schema originala cu un avertizor sonor, la mine este folosit led-ul de pe placa) timp de 10 secunde.. apoi se revine in starea de supraveghere, daca exista miscare, se asteapta iar 10 secunde si apoi 10 secunde avertizare.
 
 
   Am facut si 2 filmulete:

- in engleza, numit Arduino system alarm with delay

marți, 12 aprilie 2016

Afisaj cu 4 cifre controlate de TM1637 si Arduino

   Un afisaj ieftin este cel cu 4 cifre de 0.36"(9,14mm) din 7 segmente led controlate de integratul TM1637:
   El se poate folosi pentru un ceas, pentru indicatii de temperatura si umiditate, ceas cronometru, etc.
   Pentru inceput am cautat pe net si am gasit cateva articoole in care se prezinta acest afisaj impreuna cu Arduino, doar ca eu m-am oprit la articolul de la http://www.arduino.md/hardware/lcd-and-leds/0-36-led-display-4-digit-red/ care foloseste libraria care se poate descarca de la http://www.arduino.md/wp-content/uploads/library/TM1637-4-digit-display-tube.zip !
  Schema de test e foarte simpla:
   Am adaptat libraria mentionata mai sus pentru a afisa si alte simboluri:
si am folosit si un senzor de temperatura si umiditate DHT11 (sketch-ul permite folosirea si a unui senzor AM2302/DHT22):
   Schema utilizata este:
   Pe canalul de github (https://github.com/tehniq3/) am pus libraria mea modificata, care include si sketch-ul cu DHT11, adresa fiind https://github.com/tehniq3/TM1637-display.
   Am facut si un filmulet numit Arduino, afisaj cu TM1637 si senzor DHT11

si inca unul in engleza, numit Arduino, TM1637 display & DHT11 sensor

   

vineri, 12 februarie 2016

Prezentare si stocare date pe pagina ThingSpeak (4) - folosind placa WeMos D1

   De curand, am intrat in posesia unei placi de dezvoltare care se bazeaza pe un ESP8266 si arata ca o placa Arduino Uno. Ea este o clona (copie) a placii WeMos D1.
   

   Pentru a fi mai usor de folosit am notat pe fata si corespondenta pinilor de la ESP8266MOD (asta are a mea inscriptionat, iar pe net apare ca este un ESP8266EX):
   Deoarece se bazeaza pe un ESP8266 ca si placa NodeMCu, am incarcat un sketch similar (NodeMcu_or_WeMosD1_random.ino) pentru a trimite niste date aleatorii catre un canal ThingSpeak, cum am prezentat in articolul Prezentare si stocare date pe pagina ThingSpeak (2) - folosind placa NodeMcu si l-am incarcat folosindu-ma de programul Arduino IDE, cum am prezentat in articolul Placa NodeMcu v.0.9 programata in Arduino IDE, doar ca acum selectez placa WeMos D1:

   Am facut si 2 filmulete:


   Ulterior, am pus un senzor de temperatura DHT11 (ca asta a fost liber) si am incarcat sketch-ul modificat (NodeMcu_or_WeMosD1_DHT.ino), in care pinul de date al senzorului este conectat tot la GPIO5 (ca si in exemplul cu NodeMcu), care are corespondenta la D15/SCL.
   In momentul scrierii acestui articol, datele se pot vedea la https://thingspeak.com/channels/86999:
   Am facut si 2 filmulete:

luni, 1 februarie 2016

Prezentare si stocare date pe pagina ThingSpeak (3) - folosind Arduino si ESP8266-05

   Fata de exemplele anterioare in care am folosit o placa Arduino conectata la o placa de retea tip shield cu W5100 (Prezentare si stocare date pe pagina ThingSpeak), apoi o placa NodeMcu v0.9 ["construita" pe baza unui modul Wi-Fi ESP8266-12E, vezi Prezentare si stocare date pe pagina ThingSpeak (2)], acum o sa ma folosesc de o placa Arduino conectata la un modul Wi-Fi ESP8266-05, care nu are decat partea de comunicare, dupa cum se vede in articolul Modulul de retea "uairles" ESP8266-05 si Arduino:
   Deoarece alimentarea se face cu tensiune de 3,3V trebuie si celelalte intrari sa le am la nivel logic de 3,3V, asa ca am folosit un modul de conversie a nivelului logic
   O alta varianta de interfata este cea prezentata in documentatia modului GPRS M590 si prezentata de mine in articolul Modul GPRS cu M590 (3)
   O schema de conectare este:
doar ca eu am folosit un Arduino Nano si un modul extern de alimentare, pastrand, in mare, modul de conectare:
ulterior, am folosit un cablaj de test cu conectori:
   Sketch-ul folosit de mine este ThingSpeak_arduino_esp8266_ds18b20.ino si se bazeaza pe combinatia a 2 sketch-uri gasite in articolele A Simple IoT Project with the ESP8266 WiFi module si ESP8266 Wifi Temperature Logger.
   In momentul testelor, am realizat un canal, care se vede asa:
   Am facut si 2 filmulete:

vineri, 15 ianuarie 2016

Module radio NRF24L01 (2)

   In articolul precedent am transmis pozitia unui joystick (axele x si y), inclusiv pozitia butnonului de pe el (apasat sau liber). Datele transmise si primite se puteau vedea in ecranele de monitorizare seriala.
   Am zis sa termin sketch-ul din articolul RadioLink-Joystick-To-Servos de pe site-ul arduino-info.wikispaces.com in care se transmitea pozitia joystick-ului catre 2 servomotoare montate, dar nu implementase aprinderea unui led cand se apasa butonul de pe joystick.
   Schema de conectare a joystick-ului la placa Arduino Uno si a modulului radio NRF24L01 ramane identica cu cea prezentata anterior:
iar receptoprul are schema de conectare astfel:
   Am folosit o sursa externa de 5V/1A pentru alimentarea celor 2 servomotoare, decoarece alimentarea prin USB de la calculator nu ar fi fost suficienta.
   Cateva imagini cu montajul in functiune:
- in repaus:
- buton apasat:
- joystick la stanga:
- joystick la dreapta:
- joystick in sus:
- joystick in jos:
   Am facut si 2 filmulete:

 
   Pe https://github.com/tehniq3/ am postat cele 2 sketch-uri:
- pentru emitator: nrf24l01_tx_2servo_sw.ino
- pentru receptor: nrf24l01_rx_2servo_sw.ino