Deoarece voiam sa monitorizez 2 camere ale apartamentului, creasem 2 canale pe contul meu, pe unul aveam de ceva timp un senzor DS18B20 ce trimite prin intermediul unei placi Arduino Nano, care comanda un ESP8266-05 prin comenzi AT, dupa cum se vede in articolul Prezentare si stocare date pe pagina ThingSpeak (3) - folosind Arduino si ESP8266-05
Dupa ce am citit si vazut ca senzorii gen Sonoff sau Xiomi au toate informatiile intr-un loc, apoi am vazut la setari ca un canal ThingSpeak poate avea 8 campuri (Fields), am zis sa trimit, ca si pana acum pe campul 1 temperatura de la senzorul DS18B20, prin intermediul grupului Arduino Nano - ESO8266, apoi pe campurile 3, 4 si 5 informatiile de la senzorul BME280 ce trimite prin intermediul unei mai vechi placi Wemos D1. Am lasat canalul 2 liber in ideea ca voi schimba senzorul DS18B20 cu un DHT22 (AM2302) si sa pot pune si umiditatea relativa din prima camera, deoarece e simplu de inlocuit fizic DS18B20 cu DHT22, deoarece am alimentare (+5V), pin de masura si masa (GND).
Revenind la realizarea practica, am pastrat montajul, ce are schema
In mare, primul sistem va trimite doar valoarea temperaturii de la DS18B20, iar al doilea va trimite valorile temperaturii, umiditatii relative si presiunii de la senzorul BME280.
Am achizitionat un senzor de presiune-temperatura-umiditate de tip BME280. In trecut am achizitionat si testat un senzor BMP280, care este senzor doar pentru presiune-temperatura, dar mie mi se pare utila si informatia despre umiditatea relativa a aerului, asa ca va prezint ce am testat acum.
Dupa ce am lipit conectorii tata la partea de i2c, deoarece asa are implicit realizate legaturile (puntile, strapurile) pe cablaj .
Avand de mai mult timp instalata libraria Adafruit_BME280, am urmat indicatiile din articolelele Adafruit BME280 Humidity + Barometric Pressure + Temperature Sensor Breakout si SparkFun BME280 Breakout Hookup Guide, realizand schema aceasta, alimentat ca acolo, cu 3,3V:
Am modificat programul de test pentru a avea presiunea in unitatile uzuale de la noi, in mmHg (milimetri coloana de mercur), acesta devenind BME280_test1.ino
Primul test a fost facut cu o placa de dezvoltare Arduino Uno
Deoarece imi emai comod de programat o placa cu ESP8266, am pus si la una mai veche, de a fost la indemana. Puteti vedea un material in articolul Create A Simple ESP8266 Weather Station With BME280, unde se vede si schema de conectare:
Am adaptat un program ce functioneaza pe un canal de pe serverul Thingspeak, acesta devenind BME280_Thingspeak.ino.
In ecranul de monitorizare seriala vedem conectare reusita
Bun, dupa instalarea librariei Adafruit-Fingerprint-Sensor, am legat ca in schema din articolul de la Adafruit, de fapt, cum e in libraria lor, doar ca am alimentat dintr-o sursa externa de 3,6V deoarece nu am fost sigur ca e ok si la 5V, bineinteles ca am avut fir comun (GND) intre sursa externa si Arduino.
Am mai conectat si un led RGB cu rezistente de 100-220 ohmi fiecare.
Pentru a inregistra amprente, am incarcat programul enroll din librarie
si am memorat 3 amprente, degetul mare de la mana stanga, degetul mare si degetul mic de la mana dreapta. Memorarea se face simplu, se apasa pe cifra 1, se pune degetul, se astepta confirmarea si apoi se ia degetul, apoi se repune cand este solicitat in ecranul de monitorizare seriala.
Apoi se incarca programul fingerprint din exemple si vedem in ecranul de monitorizare ca a recunoscut amprenta.
Eu adaugand modulul cu ledul RGB, l-am configurat sa palpaie ledul albastru pentru a sti ca sistemul e activ,
se aprinde cca o secunda ledul verde cand este recunoscuta una din amprente,
respectiv se aprinde ledul rosu cand se recunoaste o ampreinta, dar nu este din cele memorate.
In filmuletele urmatoare se vede modul de functionare, daca se foloseste programul modificat de mine numit fingerprint_rgb.ino
Am constatat ca modulul alimentat la 3,6V consuma foarte putine, intre 10 si 30mA, asa ca am zis dupa vreo ora de teste sa il alimentez si la 5V, dar modulul a "decedat subit", (la comutarea de la 3,6V la 4,8V, dupa cum am constatat ulterior) consumul crescand la 220mA chiar daca are ledurile stinse si nu reactioneaza de nici un fel.
Am utilizat microscopul sa vad ce microcontroler e folosit si apoi cautat pe internet datasheet-ul "cipului" AS608, gasind ca e produs de SynoCHIP, dar am constatat si ca are un stabilizator integrat de la 5V la 3,3V si altele pentru teniuni reduse
Momentan, am intrerupt testele, dar dupa ce o sa imi ajunga alt modul, o sa reaiu testele, iar ca masura de precautie o sa pun o dioda Zenner de 3,6V.
7.11.2019
Din pacate, modulul s-a defectat deoarece sursa de alimentare, la comutarea de pe treapta de 3,6V la 4,6V are un "spike" (salt) pana la cca 12V, dupa cum se vede pe oscilogramele cu un osciloscop Hantek DSO5072P:
- captura generala:
- valoare maxima impuls ~12V
- detaliu varf, la o alta actionare
- timpul tranzistiei periculoase este de 28ms:
Asa ca o regula generala, cand se fac schimbari de trepte sau chiar potentiometru, mai ales la surse ieftine, trebuie deconectata sarcina pe perioare reglajului..
12.11.2019
A sosit un alt senzor, ce are scris clar alimentare la 3,3V asa ca nu am mai riscat. Din teste a rezultat ca acest senzor e "mai greu de cap", in sensul ca recunoaste mai greu o amprenta, nu recunoaste intotdeauna amprentele corecte, dar macar nu a recunoscut vreunul necunoscut ca fiind "acceptat".