Obsah:

Sledování systému a Nivelului de Poluare (Arduino Uno): 9 kroků
Sledování systému a Nivelului de Poluare (Arduino Uno): 9 kroků

Video: Sledování systému a Nivelului de Poluare (Arduino Uno): 9 kroků

Video: Sledování systému a Nivelului de Poluare (Arduino Uno): 9 kroků
Video: ZNIČILI TECHNIKU. Frézka F2 250 / TOS FA3V .Box rychlosti, čerpadlo oleje 2024, Listopad
Anonim
Sledování systému a Nivelului de Poluare (Arduino Uno)
Sledování systému a Nivelului de Poluare (Arduino Uno)

Proiectul consta in realizarea unui dispozitiv ce afiseaza differentiti parametrii de mediu (temperatura, umiditate, nivelul de particule din atmosfera, cantitatea de compusi organici volatili) si trimite aceste date la o platforma IoT unde sunt realizate graphice si alte prelucrari.

Krok 1: Componente Necesare

  • teplotní senzor-využíváme teplotní senzor DHT22 pro větší přesnost dekodéru DHT11, který je určen pro všechny typy teplotních senzorů-https://www.ebay.com/itm/DS18B20-KY-015-DHT11-DHT …
  • senzor de umiditate - tot DHT22 (acesta a fost un motiv in plus pentru care am use with acest senzor, desi puteam alege doi differentiti for pentru temperatura si umiditate)
  • senzor částic-am folosit DSM501A-https://www.ebay.com/itm/DSM501A-Dust-Allergic-Sm…
  • senzor pro organické organické těkavé látky (VOC)-používám MiCS5524-https://www.ebay.com/itm/MiCS5524-CO-Alcohol-VOC-…
  • ecran TFT-jsem hlavní echranul TFT de 1,8 "cu řadič-ul ST7735S-https://www.ebay.com/itm/1-8-inch-1-8-TFT-LCD-Dis…
  • Arduino Uno R3-https://www.ebay.com/itm/ATmega328P-CH340G-UNO-R3…
  • modul Wi-Fi-ESP8266 ESP-01, l-am folosit pe acesta deoarece era cel mai ieftin si nu este nevoie de unul mai bun-https://www.ebay.com/itm/ESP8266-ESP-01-Serial- WI…
  • mini prkénko-https://www.ebay.com/itm/5-Color-Mini-Solderless-P…
  • o rezistentní 2kOhm
  • oheň-https://www.ebay.com/itm/Male-to-Female-Dupont-wir…

Krok 2: Testarea Si Konfigurace Modului Wi-Fi

Testarea Si Konfigurace Modului Wi-Fi
Testarea Si Konfigurace Modului Wi-Fi

Realizuji schema de mai sus, preluata din acest tutorial pe care l-am urmat ca sa testez modulul.

Apoi, consistent acestui tutorial, mi-am create un cont pe pe platforma IoT ThingSpeak, mi-am creat a configurat un field you use and codul din tutorial, am trimis cateva valori random si mi le-a pus pe grafic in acel field.

Krok 3: Testarea Senzorului DHT22

Conectand pin-ul modulului la pin-ul digital 7 al Arduino-ului, pin-ul + la 5V si pin-ul-la GND, am realizat codul:

#zahrnout; // pt DHT

#define DHTPIN 7

#define DHTTYPE DHT22

plavat hučení;

plovoucí teplota;

DHT dht (DHTPIN, DHTTYPE);

neplatné nastavení () {

Serial.begin (9600);

}

prázdná smyčka () {

temp = dht.readTemperature (); Serial.print (temp); Serial.println ("stupeň C");

hum = dht.readHumidity (); Serial.print (hum); Serial.println (" %");

zpoždění (500);

}

Krok 4: Testarea Senzorului De Particule

Mám za sebou výukový program, který vám pomůže se zpožděním při nastavování 60 000 ms, což způsobí, že se vaše časové pásmo bude čas od času měnit.

Unitatea de masura care rezult in urma calculelor presentate in tutorial va fi.

Krok 5: Testarea Senzorului De Compusi Organici Volatili

Am conectat pin-ul + al moduleului la 5V, pin-ul-la GND si pin-ul A0 la A0 de la Arduino.

int voc;

neplatné nastavení () {

Serial.begin (9600);

}

prázdná smyčka () {

voc = analogRead (A0);

voc = mapa (voc, 0, 700, 0, 500);

Serial.println (voc);

zpoždění (500);

}

Nyní jsme získali přesný vzorec pro výpočet a převod hodnot valoarea de la senzor v ppm (částka milionu) jako maximum testů etanolu (ethanol alkoholu) a hodnoty valoarea maxima am aproximat-o la maximumul pe care senzorul il poate citi la etanol (adica 500), de aceea am facut acea mapare.

Krok 6: Afisarea Acestor Date Pe Ecranul TFT

Výukový program zaměřený na acest, jsem skutečný zájem o barevnou škálu. Pentru aceasta, a trebuit sa adaptez acel cod din tutorial pentru ecranul meu, fiind prea lung pentru a il include aici, se poate parcurge in codul final din arhiva, unde o sa fie si bibliotecile necesare.

Krok 7: Prelucrari Pe ThingSpeak

Prelucrari Pe ThingSpeak
Prelucrari Pe ThingSpeak
Prelucrari Pe ThingSpeak
Prelucrari Pe ThingSpeak

La pasul 2, urmand tutorialul atasat, s-a putut observa cum se pot trimtie date pe platforma de la Arduino.

Acum, o sa ne folosim de acele date pentru a le putea prelucra, de exemplu eu am facut media valorilor din jumatate in jumatate de ora.

Datle arduino data arduino datele in campurile 1, 3, 5 si 7, iar in 2, 4, 6 si 8 vor si afisate prelucrarile facute de scripturile MATLAB de pe platforma.

Všechny aplikace, aplikace, analýzy MATLAB, nové aplikace, více než předdefinované nebo vlastní, úvodní kód:

readChannelID = 482860;

temperatureFieldID = 1;

readAPIKey = 'KBPNYSUY0BLWE5H4';

[tempC, timeStamp] = thingSpeakRead (readChannelID, 'Fields', temperatureFieldID, 'NumMinutes', 5, 'ReadKey', readAPIKey); displej (tempC);

anyMissingValues = sum (isnan (tempC));

if sum (anyMissingValues)> 0

missingValueIndex = find (~ sum (isnan (tempC), 2));

cleantempC = tempC (missingValueIndex,:);

cleanTimeStamps = timeStamp (missingValueIndex);

jiný

cleantempC = tempC;

cleanTimeStamps = časové razítko;

konec

avgTempC = průměr (cleantempC);

tempF = avgTempC*9/5 + 32; zobrazení (tempF, 'Temperatura medie in Fahrenheit');

writeChannelID = 483860; writeAPIKey = 'V2DR3QMRD7NXU8PD';

thingSpeakWrite (writeChannelID, 'Fields', 2, 'Values', tempF, 'writekey', writeAPIKey);

NU UITATI SA MODIFICATI ID-urile SI KEY-urile for a nu imi prelua date sau scrie pe canal, multumesc frumos

V loc de 'NumMinutes' se poate folosi si 'NumPoints'.

Sintaxa de la ThingSpeakRead si Write a caia intai se scrie intre ghilimele ce urmeaza sa introduci si apoi pui valoarea acelui parametru. Potřebujete poradit se s manuální péčí o pomoc při hledání pomoci při vytváření stránek.

Datum a čas pro výběr dat 1 a více pro více informací NaN-uri, acel if le aproximeaza la valori similare celor din campul 1. Dupa aceea, acestui vectori de valori ii este facuta media iar apoi aceasta medie este convertita din grade Celsius in grade Fahrenheit.

Codurile pentru celelalte campuri with fac separat with differententa ca fiecare o sa ia din campul relevant marimii si nu o sa sa mai faca acel calcul de conversie din Celsius in Fahrenheit.

Pentru a rula automatic aceste script -uri, de la Apps -> TimeControl -> New TimeControl si se seteaza optiunile dorite, optiunile pe care le -am ales eu se pot vedea in poza de mai sus.

thingspeak.com/channels/483860

Krok 8: Imbinarea Tuturor Pasilor

M-am folosit in codul final de "millis ()" si variabile care retin acesti timpi pentru a ordona afisajele si trimiterile la server (trebuie o data cam pe la 25 de secunde sa se trimita ceva, mai repede nu are rost pentru ca oricum platforma nu le-ar primi).

Krok 9: Carcasa

Carcasa
Carcasa

Získejte plasty od Dedemana (Hobbycolor) a získejte tvar, který si vyberete a ochutnáte podle svých představ. Počáteční arata ca v poza de mai sus:).

Případně se poate scapa de breadboard si sa se se aranjeze mult mai frumos, eu deocamdata l-am lasat asa.

Doporučuje: