Taula de continguts:

Construïu un sensor de qualitat de l’aire IoT intern No calen núvols: 10 passos
Construïu un sensor de qualitat de l’aire IoT intern No calen núvols: 10 passos

Vídeo: Construïu un sensor de qualitat de l’aire IoT intern No calen núvols: 10 passos

Vídeo: Construïu un sensor de qualitat de l’aire IoT intern No calen núvols: 10 passos
Vídeo: Создан универсальный привод для электроинструмента и бытовой техники | Проект «Совэлмаш» 2024, Juny
Anonim
Creeu un sensor de qualitat de l’aire IoT intern que no requereixi núvol
Creeu un sensor de qualitat de l’aire IoT intern que no requereixi núvol
Creeu un sensor de qualitat de l’aire IoT intern que no requereixi núvol
Creeu un sensor de qualitat de l’aire IoT intern que no requereixi núvol
Creeu un sensor de qualitat de l’aire IoT intern que no requereixi núvol
Creeu un sensor de qualitat de l’aire IoT intern que no requereixi núvol
Creeu un sensor de qualitat de l’aire IoT intern que no requereixi núvol
Creeu un sensor de qualitat de l’aire IoT intern que no requereixi núvol

La qualitat de l’aire interior o exterior depèn de moltes fonts de contaminació i també del clima.

Aquest dispositiu captura alguns dels paràmetres més comuns i alguns dels més interessants mitjançant l’ús de 2 xips de sensor.

  • Temperatura
  • Humitat
  • Pressió
  • Gas orgànic
  • Micropartícules

Els sensors que s’utilitzen aquí són el BME680 per obtenir valors de temperatura, humitat, pressió i gas orgànic i el PMS5003 per obtenir la densitat de les micro partícules.

En utilitzar la biblioteca HomeDing, és fàcil crear un dispositiu que només estigui connectat a la vostra xarxa domèstica i que pugui accedir i controlar qualsevol navegador de la xarxa. Inclou una selecció d’elements que permeten utilitzar els xips, dispositius i altres serveis més habituals del sensor.

També ofereix una solució completa per allotjar un dispositiu web al lloc en lloc d’utilitzar una solució basada en el núvol per mostrar les dades del sensor i interactuar amb el dispositiu.

Subministraments

Tot el que necessiteu per construir aquest projecte és una placa basada en l’ESP8266 com la placa nodemcu i un conjunt de sensors per mesurar la qualitat de l’aire. La biblioteca HomeDing que s’utilitza en aquest projecte admet alguns dels xips de sensors habituals per a temperatura, humitat, pressió i qualitat. Aquí s’utilitza el xip BMP680.

  • Un endoll USB i un cable micro-usb per a la font d'alimentació.
  • 1 placa nodemcu amb la CPU ESP8266.
  • 1 placa de sortida del sensor BME680.
  • 1 sensor làser de partícules d’aire PM2,5 tipus PMS5003

És fàcil canviar el sensor BME680 amb un sensor DHT22, ja que la biblioteca també els admet entre molts altres.

Pas 1: prepareu l'entorn Arduino per a l'ESP8266

Prepareu l'entorn Arduino per a l'ESP8266
Prepareu l'entorn Arduino per a l'ESP8266
  1. Instal·leu la versió més recent d'Arduino IDE (actualment la versió 1.8.2).
  2. Utilitzeu Board Manager per instal·lar el suport d'esp8266. Podeu trobar una instrucció detallada aquí:
  3. Configureu les opcions del tauler per a un NodeMCU 1.0 amb un sistema de fitxers SPIFFS de 1 MB com es mostra a la captura de pantalla

Pas 2: incloeu les biblioteques necessàries

Inclou les biblioteques obligatòries
Inclou les biblioteques obligatòries

La biblioteca HomeDing es basa en algunes biblioteques addicionals habituals perquè funcionin els sensors i les pantalles.

Quan instal·leu la biblioteca HomeDing, veureu una finestra emergent amb aquestes biblioteques necessàries que es poden instal·lar automàticament a la imatge i és fàcil instal·lar-les totes.

De vegades (amb motius desconeguts) la instal·lació de les biblioteques falla, de manera que cal instal·lar-les manualment totes les biblioteques necessàries.

Podeu trobar més detalls sobre les biblioteques necessàries al lloc web de documentació a

Aquesta és la llista de biblioteques necessàries actuals:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • Controlador Oled ESP8266 i ESP32 per a pantalla SSD1306
  • RotaryEncoder
  • Biblioteca de sensors DHT per ESPx
  • OneWire

El sensor làser de partícules d’aire PMS5003 es comunica mitjançant un senyal de línia sèrie de 9600 bauds. Aquest senyal es capta mitjançant la biblioteca SoftwareSerial que inclou la instal·lació de les eines ESP8266. Assegureu-vos de no tenir instal·lada una versió anterior com a biblioteca.

Pas 3: personalitzeu el croquis d’exemple estàndard

Personalitzeu l’esbós d’exemple estàndard
Personalitzeu l’esbós d’exemple estàndard

L'exemple estàndard ja inclou alguns dels sensors més comuns com a elements, de manera que només caldrà una certa configuració.

Això s'aplica al sensor BME680 compatible amb l'element BME680.

El sensor PMS5003 és menys comú i s’ha d’activar incloent l’element PMS al firmware. Això es fa definint #define HOMEDING_INCLUDE_PMS a la secció de registre d’elements de l’esbós.

#define HOMEDING_INCLUDE_BME680 # define HOMEDING_INCLUDE_PMS

Per simplificar l’addició del nou dispositiu a la xarxa, podeu afegir el SSID i la frase de contrasenya del WiFi de casa vostra al fitxer secrets.h al costat del fitxer d’esbós standard.ino. Però també podeu utilitzar el gestor de WiFi integrat per afegir el dispositiu a la xarxa sense aquesta configuració codificada.

Ara es fa tot el relatiu a la implementació de l'esbós i es pot compilar i carregar el firmware.

Pas 4: pengeu la IU web

L'exemple estàndard inclou una carpeta de dades que conté tots els fitxers de la IU web.

Abans de penjar aquests fitxers, és possible que vulgueu afegir els fitxers env.json i config.json que podeu trobar amb aquest article perquè això facilitarà les coses.

El contingut d’aquests fitxers fa que el dispositiu IoT sigui especial i es comporti com un sensor de qualitat de l’aire. S’explica amb detall en aquesta història.

Utilitzeu la utilitat de càrrega de fitxers ESP8266 i pengeu tots els fitxers. Necessita un reinici per activar la configuració.

Pas 5: afegiu el sensor BME680

Afegiu el sensor BME680
Afegiu el sensor BME680
Afegiu el sensor BME680
Afegiu el sensor BME680
Afegiu el sensor BME680
Afegiu el sensor BME680

El sensor BME680 es comunica amb la placa mitjançant el bus I2C.

Com que possiblement es comparteix amb altres extensions, com ara altres sensors o pantalles, es configura al nivell del dispositiu a env.json juntament amb el nom de xarxa del dispositiu. Aquí teniu una mostra extreta de la configuració del dispositiu i de l'I2C:

"dispositiu": {

"0": {"name": "airding", "description": "Sensor de qualitat de l'aire", … "i2c-scl": "D2", "i2c-sda": "D1"}}

A la taula de visualització podeu veure els cables de connexió al sensor: 3,3 V = vermell, GND = negre, SCL = groc, SDA = blau

La configuració de BME680 es pot utilitzar a config.json:

"bme680": {

"bd": {"address": "0x77", "readtime": "10s"}}

Afegirem les accions més endavant.

Per provar la configuració, feu servir un navegador i obriu https://airding/board.htm i veureu els valors reals del sensor que es mostraran i s’actualitzaran cada 10 segons:

Pas 6: afegiu el sensor PMS5003

Afegiu el sensor PMS5003
Afegiu el sensor PMS5003

No tenia cap sensor amb un connector adequat per a taulers, així que vaig haver de tallar un dels connectors del cable amb la meva soldadora per connectar-lo directament a la placa nodemcu. Es pot veure encara a les imatges finals.

La potència d’aquest sensor s’ha de prendre del Vin que normalment funciona amb el bus USB. GND és el mateix, però també està disponible al costat del pin Vin.

Les dades del sensor es transfereixen en un format sèrie estàndard de 9600 baud, de manera que cal configurar els pins rx i tx i el temps de lectura:

"pms": {

"pm25": {"description": "sensor de partícules pm25", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}

Afegirem les accions més endavant.

Per tornar a provar la configuració, reinicieu el dispositiu i utilitzeu un navegador i obriu https://airding/board.htm i veureu el valor pm35 real del sensor que es mostrarà i s'actualitzaran cada 10 segons aproximadament, però aquest valor normalment és no canvia sovint.

Podeu obtenir valors més alts col·locant una llum de vela al costat del sensor, ja que una vela produeix gran part d’aquestes partícules.

Ara podeu posar-ho tot en un bon allotjament perquè totes les altres configuracions i fins i tot actualitzacions de programari es poden fer de forma remota.

Pas 7: afegir algunes funcions de xarxa

El següent extracte de configuració a env.json està habilitant

  • actualitzant el firmware per antena
  • permet detectar la xarxa mitjançant el protocol de xarxa SSDP i recuperar l'hora actual d'un servidor ntp.

{

… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Escolteu les actualitzacions de l'OTA 'over the air'"}}, "ssdp": {"0 ": {" Fabricant ":" el vostre nom "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}

Heu d'ajustar la zona horària a la vostra ubicació. Si teniu dubtes, podeu utilitzar el lloc web https://www.timeanddate.com/ per obtenir la compensació de UTC / GMT. "2" és adequat per a l'estiu d'Alemanya.

També podeu ajustar la contrasenya d’OTA després de llegir les instruccions sobre el mode d’estalvi de la documentació a

Després de reiniciar-lo, és possible que trobeu el dispositiu de transmissió a la xarxa i, després de rebre una resposta del servidor ntp, es disposa de l'hora local.

Pas 8: afegir alguns registres

És possible que els valors reals no donin prou, de manera que es poden utilitzar alguns elements més.

Per a aquesta història, l'element Log i l'element NPTTime s'utilitzen per registrar l'historial dels valors del sensor en un fitxer de registre i la targeta d'interfície web d'aquest element es pot mostrar com a gràfic.

La configuració següent crea els 2 elements de registre per a gas i partícules:

{

"log": {"pm": {"description": "Registre de pm25", "file name": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Registre de qualitat del gas "," nom del fitxer ":" /aqlog.txt "," mida del fitxer ":" 10000 "}}}

Pas 9: accions

Accions
Accions

Ara hem de transferir els valors reals als elements del registre mitjançant accions. Les accions utilitzen una notació d'URL per passar un kay i valorar a l'element de destinació. Molts elements admeten accions d'emissió en determinats esdeveniments que passen com la captura d'un valor de sensor nou.

Les accions es configuren a l'element que emet accions. Es necessiten 2 entrades:

  • L'esdeveniment onvalue pms / p25 envia el valor real a l'element log / pm mitjançant una acció de valor.
  • L'esdeveniment ongas bme680 / bd envia el valor real a l'element log / pm mitjançant una acció de valor.

{

"pms": {"pm25": {… "onvalue": "log / pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log / aq? value = $ v "}}}

Ara tots els elements estan configurats.

Pas 10: Imatges i fitxers de configuració

Imatges i fitxers de configuració
Imatges i fitxers de configuració
Imatges i fitxers de configuració
Imatges i fitxers de configuració
Imatges i fitxers de configuració
Imatges i fitxers de configuració

Aquí teniu algunes imatges del meu sensor final de qualitat de l’aire IoT.

Cal canviar el nom dels fitxers de configuració per descarregar a *.json (no.txt) abans de penjar-los.

Enllaços i referències

  • Dipòsit de codi font de HomeDing:
  • Documentació:
  • Exemple estàndard:
  • Element BME680:
  • Element PMS:
  • Element de registre:
  • Element NtpTime:

Recomanat: