Taula de continguts:
- Pas 1: Component Necesare
- Pas 2: Testarea Si configurar el mòdul Wi-Fi
- Pas 3: Testarea Senzorului DHT22
- Pas 4: Testarea Senzorului De Particule
- Step 5: Testarea Senzorului De Compusi Organici Volatili
- Step 6: Afisarea Acestor Date Pe Ecranul TFT
- Pas 7: Prelucrari Pe ThingSpeak
- Pas 8: Imbinarea Tutor Pasilor
- Pas 9: Carcasa
Vídeo: Sistem De Monitorizare a Nivelului De Poluare (Arduino Uno): 9 Steps
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Proiectul consta in realizarea unui dispositiu ce afiseaza diferiti parametrii de mediu (temperatura, umiditate, level de particule din atmosfera, cantitatea de compusi organici volatili) si envia aquestes dates a la plataforma IoT unde are realizate grafice si alte prelucrari.
Pas 1: Component Necesare
- sensor de temperatura- eu am used senzorul de temperatura DHT22 per a aquest mai precisament decat DHT11 dar bastant de ieftin fata de alti senzori de temperatura - https://www.ebay.com/itm/DS18B20-KY-015-DHT11-DHT …
- senzor de umiditat - tot DHT22 (aquest a fomenta un motiu per a cura per a aquest amic senzill, desi es pot seleccionar dues diferències per a temperatura i umiditat)
- sensor de particule - am used DSM501A -
- senzor per a components organitzats volàtils (VOC) - utilitzat MiCS5524 -
- pantalla TFT - he used screen TFT de 1.8 "cu controller-ul ST7735S -
- Arduino Uno R3 -
- module Wi-Fi - ESP8266 ESP-01, l-am used per aquest perquè era cel mai ieftin si nu this need of one mai bun - https://www.ebay.com/itm/ESP8266-ESP-01-Serial- WI …
- mini tauler de suport -
- o resistenta de 2kOhm
- foc -
Pas 2: Testarea Si configurar el mòdul Wi-Fi
Am realizat schema de mai sus, preluata din this tutorial pe care l-am urmat ca sa testez modulul.
Apoi, conform this tutorial, mi-am create one cont pe platforma IoT ThingSpeak, mi-am creat si configurat un field si utilitand codul from tutorial, am trimis cateva valori random si mi le-a pus pe grafic in acel field.
Pas 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:
#incloure; // pt DHT
#defineix DHTPIN 7
#define DHTTYPE DHT22
zumblit flotant;
temperatura de flotació;
DHT dht (DHTPIN, DHTTYPE);
configuració nul·la () {
Serial.begin (9600);
}
bucle buit () {
temp = dht.readTemperature (); Serial.print (temp); Serial.println ("grau C");
hum = dht.readHumidity (); Serial.print (hum); Serial.println ("%");
retard (500);
}
Pas 4: Testarea Senzorului De Particule
Am urmat acest tutorial, cu mentiunea ca ar need pus un delay in setup de 60000 ms for ca senzorul sa aiba timp sa se incalzeasca si sa fie precise.
Unitatea de masura care resulta in urma calculelor presentate in tutorial va fi.
Step 5: Testarea Senzorului De Compusi Organici Volatili
Am conectat pin-ul + al modulului la 5V, pin-ul - la GND si pin-ul A0 la A0 de la Arduino.
int voc;
configuració nul·la () {
Serial.begin (9600);
}
bucle buit () {
voc = analogRead (A0);
voc = mapa (voc, 0, 700, 0, 500);
Serial.println (voc);
retard (500);
}
Nu am gasit nicaieri o formula exacta de calcul pentru a converti valor de la senzor in ppm (parti pe milion) asa ca am testat cu etanol (alcool etilic) si la màxima am aproximat-o la maximul pe care senzorul il can citi la etanol (adica 500), de aceea am facut acea mapare.
Step 6: Afisarea Acestor Date Pe Ecranul TFT
Folosindu-ma d'aquest tutorial, am realziat afisarea pe o scara colorata a valorilor. Pentru aquesta, a trebuit sa adaptez acel cod din tutorial for ecranul meu, fiind prea lung for a include here, se can parcurge in codul final din arhiva, unde o sa fie si bibliotecile required.
Pas 7: Prelucrari Pe ThingSpeak
La pasul 2, urmand tutorialul atasat, s-a pogut observar com se pot trimtie date pe platforma de la Arduino.
Acum, o sa ne utilitzant de acele date for a could prelucra, de example eu am facut media valorilor din jumatate in jumatate de ora.
Asa ca am trimis din arduino dades in campurile 1, 3, 5 si 7, iar in 2, 4, 6 si 8 vor si afisate prelucrarile facute de scriptures MATLAB de pe platforma.
Din bara de sus, de la App, la MATLAB Analysis, se apasa New, es pot seleccionar un exemple predefinit o personalitzat, si introdueix el codi de mai més:
readChannelID = 482860;
temperatureFieldID = 1;
readAPIKey = 'KBPNYSUY0BLWE5H4';
[tempC, timeStamp] = thingSpeakRead (readChannelID, 'Fields', temperatureFieldID, 'NumMinutes', 5, 'ReadKey', readAPIKey); visualització (tempC);
AnyMissingValues = suma (isnan (tempC));
if sum (anyMissingValues)> 0
missingValueIndex = find (~ sum (isnan (tempC), 2));
cleantempC = tempC (missingValueIndex,:);
cleanTimeStamps = timeStamp (missingValueIndex);
en cas contrari
cleantempC = tempC;
cleanTimeStamps = timbre;
final
avgTempC = mitjana (cleantempC);
tempF = avgTempC * 9/5 + 32; display (tempF, 'Temperatura medie in Fahrenheit');
writeChannelID = 483860; writeAPIKey = 'V2DR3QMRD7NXU8PD';
thingSpeakWrite (writeChannelID, 'Camps', 2, 'Valors', tempF, 'writekey', writeAPIKey);
NU UITATI SA MODIFICATI ID-urile SI KEY-urile for a nu imi prelua date sau write pe canal, multumesc frumos
Al lloc de 'NumMinutes' es pot utilitzar si 'NumPoints'.
Sintaxa de la ThingSpeakRead si Write this ca mai intai se write intre ghilimele ce urmeaza sa introduci si then pui altar acelui parametru. Podeu consultar si manualment cadascuna de les comencions es troba a Help in dreapta paginii.
Acest cod preia dades del camp 1 si per ca pe langa ce a primit mai sunt si niste NaN-uri, acel if the approximeaza the valors similare celor from campul 1. Dupa aceea, are vectorial of values ii this facuta media iar apoi this medie aquest convertit en grau Celsius en grau Fahrenheit.
Codurile pentru celelalte campuri se fac separat amb diferenta ca each o sa ia din campul relevant marimii si nu o sa se mai faca acel calcul de conversie din Celsius in Fahrenheit.
Per a una regla automàtica d'aquests script-uri, de les aplicacions -> TimeControl -> New TimeControl si es configura optiunile dorite, optiunile pe care le-am ales eu se pot veure in poza de mai sus.
thingspeak.com/channels/483860
Pas 8: Imbinarea Tutor Pasilor
M-am used in codul final de "millis ()" si variabile care retin acesti timpi for a ordona afisajele si trimiterile the server (trebuie o data cam pe the 25 de secunde sa se trimita qualcosa, mai repede nu are rost for ca oricum platforma nu le-ar primi).
Pas 9: Carcasa
Am luat un plastic de la Dedeman (Hobbycolor) si l-am taiat in forma de cutie si i-am decupat niste "ochiuri" for senzori. Arata inicial ca in poza de mai sus:).
Eventual se poate scapa de breadboard si sa se aranjeze mult mai frumos, eu deocamdata l-am lasat asa.
Recomanat:
Monitoramento De Temperatura, Umidade E Amônia Em Aviário Com Arduino Uno: 6 Steps
Monitorament De Temperatura, Umidade E Amônia Em Aviário Com Arduino Uno: O consum de productes de frango creix continuament en el mercat mundial, sendo o Brasil um gran productor com aviários. Desta forma, algunes dificultats es troben amb productes produïts com a mort prematura dos ànims i deficiències causam perd
El més poderós Arduino-UNO, Massduino-UNO: 9 passos
El més poderós Arduino-UNO, Massduino-UNO: Què és Massduino? Massduino és una nova línia de productes que combina la plataforma Arduino perifèrica, rica, còmoda i ràpida de desenvolupament, de baix cost i fàcil de fabricar a gran escala. Gairebé tot el codi Arduino pot ser un
Sistem De Conversație Bazat Pe Inteligență Artificială: 6 Steps
Sistem De Conversație Bazat Pe Inteligență Artificială: Autor: Stanut Nicolae-RaduGrupa: 333ABNota: 8
Sistem De Apertura / cierre Con Contraseña: 4 Steps
Sistem De Apertura / cierre Con Contraseña: 1. Primerament es divulga la qualitat de les im à genes i els inconvenients addicionals noten l’equip per a la qualitat de les im à genes i no es preocupen pel cablejat que es veu per un esquema de fritzing. El primer ha de tenir la identificació
Cargador De Baterías 18650 Y Baterías Ego, Dos En Uno .: 6 Steps
Cargador De Baterías 18650 Y Baterías Ego, Dos En Uno .: En mi primer instructable, es un mod mecànic casero amb bateries 18650, en aquest és ensenyar com fer un carregador per a les seves bateries i per a les bateries ego convencionals