Senzor PM2.5 și praf PM10 SDS011

Au fost multe recenzii pentru tot felul de senzorimonitorizarea condițiilor de aer, vreau să arăt o scurtă trecere în revistă a senzorului care măsoară cantitatea de particule de praf PM2.5 (diametru mai mic de 2,5 microni) și PM10 (diametru de la 2,5 până la 10 microni) în aer.
Principiul de funcționare se bazează pe analiza luminii împrăștiate din particulele de praf iluminate de radiația laser.
Pentru detalii, îmi cer ...
Senzorul este destul de nou, dezvoltat de inovafit.
caracteristici:
1) viteza de reacție declarată de cel puțin 10 s;
2) rezoluție: 0,3 μg / m3;
3) tensiune de alimentare: 4,7 ~ 5,3 V;
4) consum de energie> 1 W (înțeleg vârful);
5) produsele au trecut certificarea CE / FCC / RoHS (poate cineva va veni la îndemână);
6) Interval de temperatură: -20 ~ +50 ° C;
7) Dimensiuni: 71 mm * 70 mm * 23 mm.
Datele de la senzor sunt emise pe UART o dată pe secundă.
Iată câteva imagini care s-au tras de aici:

Acesta este deja meu:


Înainte de asta, senzorii mi-au venit mai ușor GP2Y1010AU0Fdar să le facă în mod adecvat să lucreze cu arduinaNu puteam, senzorul a dat valori prea mici la ieșirea analogică, care, atunci când a fost recalculată folosind formula din descriere, a dat o valoare negativă ... (În mod normal, reacționa doar la creion în gaură și apoi a dat tensiune greșită, ceea ce mă așteptam). Nu exclud curbura mâinilor, dar într-un fel acest dispozitiv este mai convenabil, oferă date în format digital, are o elice încorporată pentru pomparea aerului și un butuc pentru conectarea unui tub pentru o scurgere mică.
Mi-am conectat senzorul la scutul Orange pi zero,care prin intermediul wifi prin MQTT trimite date către serverul Home Assistant, care activează Malinka. A îndepărtat adevărul în coridor, pentru că Cu toate acestea, elice face zgomot, chiar dacă este liniștit, dar mă împiedică să dorm noaptea (zgomotul este mai silențios decât un laptop liniștit cum ar fi lenovo t61).

Aici este o copie mică a codului altcuiva fără a verifica CRC-ul datelor și cu o medie de 30 de secunde.


serie de import
timpul de import
structura de import
import paho.mqtt.publish după publicare
mosquitto_ip = "192.168.1.86" sens_name = "SDS011_1" n = 30
ser = serial.Serial ('/ dev / ttyS2', baudrate = 9600, stopbits = 1, paritate = "N", timeout = 2)
# ser.open ()
ser.flushInput ()
byte, lastbyte = "\ x00", "\ x00" în timp ce True:
lastbyte = octet
byte = ser.read (dimensiune = 1)
# Avem un antet de pachete valabil
dacă lastbyte == "\ xAA" și byte == "\ xC0":
sentence = ser.read (size = 8) # Citiți încă 8 octeți
citiri = struct.unpack ('