Spisu treści:
- Krok 1: Wymagane składniki
- Krok 2: Testarea Si Configurarea Modului Wi-Fi
- Krok 3: Testarea Senzorului DHT22
- Krok 4: Testarea Senzorului De Particule
- Krok 5: Testarea Senzorului De Compusi Organici Volatili
- Krok 6: Afisarea Acestor Data Pe Ecranul TFT
- Krok 7: Prelucari Pe ThingSpeak
- Krok 8: Opiekun Imbinarea Pasilor
- Krok 9: Carcasa
Wideo: Sistem De Monitorizare a Nivelului De Poluare (Arduino Uno): 9 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Proiectul consta in realizarea unui dispozitiv ce afiseaza diferiti parameters de mediu (temperatura, umiditate, nivelul de particule din atmosfera, cantitatea de compusi organici volatili) i trimitate aceste date la of platforma IoT unde sunt realizate pregrafice si al.
Krok 1: Wymagane składniki
- senzor de temperatura- eu am utilizat senzorul de temperatura DHT22 pentru ca este mai precis decat DHT11 dar destul de ieftin fata de alti senzori de temperatura - 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 utilizat acest senzor, desi puteam alege doi diferiti pentru temperatura si umiditate)
- czujnik cząstkowy - jestem na liście DSM501A -
- czujnik lotnych związków organicznych (LZO) - korzystam z MiCS5524 -
- ecran TFT - jestem folią ecranul TFT z kontrolerem 1.8" cu ST7735S -
- Arduino Uno R3 -
- moduł Wi-Fi - ESP8266 ESP-01, epoka ery cegiełki, w której nie ma nowej bułki - https://www.ebay.com/itm/ESP8266-ESP-01-Serial- WI…
- mini płytka stykowa -
- o restauracja 2kOhm
- ogień -
Krok 2: Testarea Si Configurarea Modului Wi-Fi
Realizat schema de mai sus, preluata din ase tutorial pe opieki l-am urmat ca sa testez modulul.
Apoi, dostosuj samouczek acestui, jestem twórcą platformy IoT ThingSpeak, jestem twórcą i konfiguruję pole i korzystam z samouczka, jestem skreślony losowo w polu Acel.
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:
#włączać; //pt DHT
#zdefiniuj DHTPIN 7
#define DHTTYPE DHT22
pływać szum;
temp. pływaka;
DHT dht(DHTPIN, DHTTYPE);
pusta konfiguracja () {
Serial.początek(9600);
}
pusta pętla () {
temp = dht.odczytTemperatura();druk.seryjny(temp); Serial.println(" klasa C");
szum = dht.odczytWilgotność();Serial.print(szum); Serial.println("%");
opóźnienie (500);
}
Krok 4: Testarea Senzorului De Particule
Am urmat acest samouczek, cu mentiunea ca ar trebui pus un opóźnienia w konfiguracji z 60000 ms dla czujnika na aiba timp sa se incalzeasca si w fie precis.
Unitatea de masura care rezulta in urma calculelor prezentujemy w tutorialu va fi.
Krok 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 głos;
pusta konfiguracja () {
Serial.początek(9600);
}
pusta pętla () {
voc = odczyt analogowy(A0);
voc = mapa(voc, 0, 700, 0, 500);
Serial.println(voc);
opóźnienie (500);
}
Nu am gasit nicaieri o formula correcta de calcul pentru a converti valoarea de la senzor in ppm (parti pe milion) asa ca am testat cu etanol (alcool etilic) si valoarea maxima am aproximat-o la maximul pe care senzorul il poate citi la etanol (adica 500), de aceea am facut acea mapare.
Krok 6: Afisarea Acestor Data Pe Ecranul TFT
Folosindu-ma de acest tutorial, am realziat afisarea pe o scara colorata a valorilor. Pentru aceasta, trebuit sa adaptez acel cod din tutorial pentru ecranul meu, fiind prea lung pentru i il to aici, se poate parcurge w codul final din arhiva, unde o sa fie si bibliotecile necesare.
Krok 7: Prelucari Pe ThingSpeak
La Pasul 2, urmand tutorialul atasat, s-a putut obserwowany z dodatkami na platformie 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.
Asa ca jestem Trimis din arduino Datele w kampury 1, 3, 5 i 7, iar w 2, 4, 6 i 8 vor si sate prelukrarile facute de Scripturile MATLAB de pe platforma.
Din bara de sus, de la App, la MATLAB Analysis, se apasa New, se poate alege un exemplu predefinit sau Custom, proszę wprowadzić kod mai jos:
IDKanału odczytu = 482860;
IDPola temperatury = 1;
readAPIKey = 'KBPNYSUY0BLWE5H4';
[tempC, timeStamp] = thingSpeakRead(readChannelID, 'Fields', temperatureFieldID, 'NumMinutes', 5, 'ReadKey', readAPIKey); wyświetlacz (tempC);
wszelkieBrakująceWartości = suma(isnan(tempC));
jeśli suma (dowolne brakujące wartości) > 0
missingValueIndex = find(~sum(isnan(tempC), 2));
cleantempC = tempC (brak indeksu wartości,:);
cleanTimeStamps = TimeStamp(brakujący IndeksWartości);
w przeciwnym razie
cleantempC = tempC;
cleanTimeStamps = znacznik czasu;
kończyć się
średniaTempC = średnia(czystaTempC);
tempF = średnia tempC*9/5 + 32; display(tempF, 'Średnia temperatura w stopniach Fahrenheita');
writeChannelID = 483860; writeAPIKey = 'V2DR3QMRD7NXU8PD';
thingSpeakWrite(writeChannelID, 'Fields', 2, 'Values', tempF, 'writekey', writeAPIKey);
NU UITATI SA MODIFICATI ID-urile SI KEY-urile pentru a nu imi prelua date sau scrie pe canal, multumesc frumos
In loc de 'NumMinutes' se poate folosi si 'NumPoints'.
Sintaxa de la ThingSpeakRead si Write to este może być intai se scrie intre ghilimele ce urmeaza introduci si apoi pui valoarea acelui parametr. Se poate consulta si manualul fiecarei comenzi care se afla la Help in dreapta paginii.
Acest cod preia datele din campul 1 si pentru cape langa ce a primit mai sunt si niste NaN-uri, acel if le aproximeaza la valori similare celor din campul 1. Dupa aceea, acestui vectori de valori ii este facuta media iar apoie ace este convertita din stopień Celsjusza w stopniu Fahrenheita.
Codurile pentru celelalte campuri se fac separat cu diferenta ca fiecare o sa ia din campul odpowiednie marimii si nu o sa se mai faca acel calcul de conversie din w stopniach Celsjusza w stopniach Fahrenheita.
Pentru i reguła automatyzuje skrypty, w których są aplikacje -> TimeControl -> New TimeControl, aby ustawić optymalny czas, optymalnie opiekować się piwem i garnkiem w tle.
thingspeak.com/channels/483860
Krok 8: Opiekun Imbinarea 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
Am luat un plastic de la Dedeman (Hobbycolor) si l-am taiat in forma de cutie si i-am decupat niste „ochiuri” pentru senzori. Początkowa arata ca in poza de mai sus:).
Ewentualnie se poate scapa de breadboard si sa se aranjeze mult mai frumos, eu deocamdata l-am lasat asa.
Zalecana:
Adapter Arduino Nano do Arduino Uno: 6 kroków (ze zdjęciami)
Adapter Arduino Nano do Arduino Uno: Arduino Nano to ładny, mały i tani członek rodziny Arduino. Oparty jest na układzie Atmega328, co czyni go tak potężnym, jak jego największy brat Arduino Uno, ale można go nabyć za mniejsze pieniądze. W serwisie eBay teraz chińskie wersje mogą b
Lewitacja akustyczna z Arduino Uno krok po kroku (8 kroków): 8 kroków
Lewitacja akustyczna z Arduino Uno Krok po kroku (8-kroków): ultradźwiękowe przetworniki dźwięku Zasilacz żeński L298N Dc z męskim pinem dc Arduino UNOBreadboardJak to działa: Najpierw wgrywasz kod do Arduino Uno (jest to mikrokontroler wyposażony w cyfrowy oraz porty analogowe do konwersji kodu (C++)
Potężniejszy Arduino-UNO, Massduino-UNO: 9 kroków
Wydajniejsze Arduino-UNO, Massduino-UNO: Co to jest Massduino? Massduino to nowa linia produktów, która łączy w sobie peryferia platformy Arduino - bogate, wygodne i szybkie w rozwoju, tanie i łatwe w produkcji zalety produkcji na dużą skalę. Prawie cały kod Arduino może być
Sistem De Cartografiere a Rețelelor WiFi: 14 kroków
Sistem De Cartografiere a Rețelelor WiFi: Cartografierea retelelor WiFi este procedeul prin care se doreste gasirea retelelor WiFi, iar apoi lokalizarea acestora cu ajutorul GPS-ului. In urma cartografierii se pot obtine informatii despre retelele WiFi existing cum ar fi: numarul acestora
Sistem De Conversație Bazat Pe Inteligență Sztucznyă: 6 kroków
Sistem De Conversație Bazat Pe Inteligență Artificială: Autor: Stanut Nicolae-RaduGrupa: 333ABNota:8