- Komponente potrebne
- Sharp senzor GP2Y1014AU0F
- OLED modul zaslona
- Kružni dijagram
- Izgradnja kruga na Perf ploči
- Objašnjenje koda za analizator kvalitete zraka
- Testiranje međusobnog povezivanja Sharp GP2Y1014AU0F senzora s Arduinom
Zagađenje zraka glavni je problem u mnogim gradovima, a indeks kvalitete zraka svakim je danom sve gori. Prema izvješću Svjetske zdravstvene organizacije, više ljudi prerano stradava od posljedica opasnih čestica u zraku nego od prometnih nesreća. Prema Agenciji za zaštitu okoliša (EPA), zrak u zatvorenom može biti 2 do 5 puta otrovniji od vanjskog zraka. Dakle, ovdje gradimo projekt za praćenje kakvoće zraka mjerenjem gustoće čestica prašine u zraku.
Dakle, u nastavku naših prethodnih projekata kao što su LPG detektor, detektor dima i Monitor kvalitete zraka, ovdje ćemo povezati Sharp GP2Y1014AU0F senzor s Arduino Nano za mjerenje gustoće prašine u zraku. Osim senzora za prašinu i Arduino Nano, za prikaz izmjerenih vrijednosti koristi se i OLED zaslon. Sharpov senzor prašine GP2Y1014AU0F vrlo je učinkovit u otkrivanju vrlo sitnih čestica poput cigaretnog dima. Dizajniran je za uporabu u pročistačima zraka i klima uređajima.
Komponente potrebne
- Arduino Nano
- Sharp senzor GP2Y1014AU0F
- 0,96 'SPI OLED modul zaslona
- Jumper žice
- Kondenzator 220 µf
- Otpornik od 150 Ω
Sharp senzor GP2Y1014AU0F
Sharpov GP2Y1014AU0F maleni je šest-pinski analogni izlazni optički senzor za kvalitetu zraka / optički prah koji je dizajniran da osjeti čestice prašine u zraku. Radi na principu laserskog raspršenja. Unutar senzorskog modula, infracrvena dioda i fotosenzor dijagonalno su postavljeni u blizini rupe za ulaz zraka, kao što je prikazano na donjoj slici:

Kada zrak koji sadrži čestice prašine uđe u komoru senzora, čestice prašine raspršuju IR LED svjetlo prema fotodetektoru. Intenzitet raspršene svjetlosti ovisi o česticama prašine. Što je više čestica prašine u zraku, to je veći intenzitet svjetlosti. Izlazni napon na V OUT pinu senzora mijenja se prema intenzitetu raspršene svjetlosti.
GP2Y1014AU0F Isječak osjetnika:
Kao što je ranije spomenuto, GP2Y1014AU0F senzor ima 6-pinski konektor. Donja slika i tablica prikazuje dodjele pinova za GP2Y1014AU0F:

|
S. BR. |
Naziv pribadače |
Opis pribadače |
|
1 |
V-LED |
LED Vcc pin. Spojite na 5V kroz otpor od 150Ω |
|
2 |
LED-GND |
LED uzemljeni pin. Spojite se na GND |
|
3 |
LED |
Koristi se za uključivanje / isključivanje LED diode. Spojite se na bilo koji digitalni pin Arduina |
|
4 |
S-GND |
Osovina uzemljenja senzora. Spojite se na GND Arduina |
|
5 |
V OUT |
Priključak analognog izlaza senzora. Spojite se na bilo koji analogni pin |
|
6 |
V CC |
Pozitivni pin za opskrbu. Spojite se na 5V Arduina |
Specifikacije senzora GP2Y1014AU0F:
- Potrošnja male struje: max. 20mA
- Tipični radni napon: 4,5V do 5,5V
- Minimalna veličina prašine koja se može otkriti: 0,5 μm
- Raspon osjetljivosti gustoće prašine: do 580 ug / m 3
- Vrijeme osjetljivosti: Manje od 1 sekunde
- Dimenzije: 46,0 x 30,0 x 17,6 mm (1,81 x 1,18 x 0,69 '')
OLED modul zaslona
OLED (organske diode koje emitiraju svjetlost) je tehnologija koja samostalno emitira svjetlost, konstruirana postavljanjem niza organskih tankih filmova između dva vodiča. Kad se na te filmove primijeni električna struja, stvara se jako svjetlo. OLED-ovi koriste istu tehnologiju kao i televizori, ali imaju manje piksela nego u većini naših televizora.

Za ovaj projekt koristimo monokromatski 7-pinski SSD1306 0.96 ”OLED zaslon. Može raditi na tri različita komunikacijska protokola: SPI 3 Wire način, SPI četverožični način i I2C način. Pribadače i njegove funkcije objašnjene su u donjoj tablici:
OLED i njegove vrste već smo detaljno obradili u prethodnom članku.
|
Naziv pribadače |
Druga imena |
Opis |
|
Gnd |
Prizemlje |
Osovina uzemljenja modula |
|
Vdd |
Vcc, 5 V |
Priključak za napajanje (3-5V podnošljiv) |
|
SCK |
D0, SCL, CLK |
Djeluje kao zatik sata. Koristi se i za I2C i za SPI |
|
SDA |
D1, MOSI |
Podaci za pin modula. Koristi se i za IIC i za SPI |
|
OIE |
RST, VRAĆAJ |
Resetira modul (korisno tijekom SPI) |
|
DC |
A0 |
Podatkovna naredba. Koristi se za SPI protokol |
|
CS |
Odabir čipa |
Korisno kada se pod SPI protokolom koristi više modula |
OLED specifikacije:
- IC upravljačkog programa OLED: SSD1306
- Rezolucija: 128 x 64
- Vizualni kut:> 160 °
- Ulazni napon: 3.3V ~ 6V
- Boja piksela: plava
- Radna temperatura: -30 ° C ~ 70 ° C
Slijedeći vezu saznajte više o OLED-u i njegovom povezivanju s različitim mikrokontrolerima.
Kružni dijagram
Dijagram spoja za povezivanje oštrog senzora GP2Y1014AU0F s Arduinom dat je u nastavku:

Krug je vrlo jednostavan jer s Arduino Nano povezujemo samo senzor GP2Y10 i OLED modul zaslona. GP2Y10 senzor i OLED modul zaslona napajaju se s + 5V i GND. V0 pin je povezan s A5 pinom Arduino Nano. LED pin senzora spojen je na Arduinov digitalni pin12. Budući da OLED modul zaslona koristi SPI komunikaciju, uspostavili smo SPI komunikaciju između OLED modula i Arduino Nano-a. Veze su prikazane u donjoj tablici:
|
S.Br |
Pribadača OLED modula |
Arduino pin |
|
1 |
GND |
Prizemlje |
|
2 |
VCC |
5V |
|
3 |
D0 |
10 |
|
4 |
D1 |
9 |
|
5 |
OIE |
13 |
|
6 |
DC |
11 |
|
7 |
CS |
12 |
|
S.Br |
Osjetnik |
Arduino pin |
|
1 |
Vcc |
5V |
|
2 |
V O |
A5 |
|
3 |
S-GND |
GND |
|
4 |
LED |
7 |
|
5 |
LED-GND |
GND |
|
6 |
V-LED |
Otpornik od 5 V kroz 150Ω |
Izgradnja kruga na Perf ploči
Nakon lemljenja svih komponenata na perf ploči, izgledat će otprilike kao u nastavku. Ali može se graditi i na ploči za kruh. Zalemio sam GP2Y1014 senzor na istu ploču na kojoj sam sučelio senzor SDS011. Tijekom lemljenja vodite računa da žice za lemljenje budu na dovoljnoj udaljenosti jedna od druge.

Objašnjenje koda za analizator kvalitete zraka
Kompletni kod za ovaj projekt dan je na kraju dokumenta. Ovdje objašnjavamo neke važne dijelove koda.
Šifra koristi Adafruit_GFX , i Adafruit_SSD1306 knjižnice. Te se knjižnice mogu preuzeti iz Upravitelja biblioteka u Arduino IDE-u i odatle ih instalirati. Za to otvorite Arduino IDE i idite na Sketch <Include Library <Manage Libraries . Sada potražite Adafruit GFX i instalirajte Adafruit GFX knjižnicu tvrtke Adafruit.

Slično tome, instalirajte Adafruit SSD1306 knjižnice tvrtke Adafruit.
Nakon instalacije knjižnica u Arduino IDE, pokrenite kôd tako što ćete uključiti potrebne datoteke knjižnica. Senzor za prašinu ne zahtijeva knjižnicu jer vrijednosti napona čitamo izravno s analognog pina Arduina.
#include
Zatim definirajte OLED širinu i visinu. U ovom projektu koristimo 128 × 64 SPI OLED zaslon. Možete promijeniti SCREEN_WIDTH i SCREEN_HEIGHT varijable prema vašem zaslonu.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Zatim definirajte SPI komunikacijske igle gdje je povezan OLED zaslon.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Zatim stvorite instancu prikaza Adafruit s širinom i visinom definiranom ranije pomoću SPI komunikacijskog protokola.
Zaslon Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Nakon toga definirajte osjetnike osjetnika prašine i vodilice. Sense pin je izlazni pin na senzoru prašine koji se koristi za očitavanje vrijednosti napona, dok se led pin koristi za uključivanje / isključivanje IR Leda.
int sensePin = A5; int ledPin = 7;
Sada unutar funkcije setup () , inicijalizirajte serijski monitor brzinom prijenosa od 9600 u svrhu otklanjanja pogrešaka. Također, inicijalizirajte OLED zaslon funkcijom start () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Unutar funkcije loop () pročitajte vrijednosti napona s analognog pina 5 Arduino Nano-a. Prvo uključite IR LED i pričekajte 0,28 ms prije očitavanja izlaznog napona. Nakon toga očitajte vrijednosti napona s analognog pina. Ova operacija traje oko 40 do 50 mikrosekundi, pa uvedite kašnjenje od 40 mikrosekundi prije isključivanja senzora prašine. Prema specifikacijama, LED treba pulsirati jednom u 10 ms, pa pričekajte ostatak ciklusa od 10 ms = 10000 - 280 - 40 = 9680 mikrosekundi .
digitalWrite (ledPin, LOW); delayMicroseconds (280); outVo = analogRead (sensePin); delayMicroseconds (40); digitalWrite (ledPin, HIGH); delayMicroseconds (9680);
Zatim u sljedećim redovima izračunajte gustoću prašine pomoću izlaznog napona i vrijednosti signala.
sigVolt = outVo * (5/1024); razina prašine = 0,17 * sigVolt - 0,1;
Nakon toga postavite veličinu i boju teksta pomoću setTextSize () i setTextColor () .
display.setTextSize (1); display.setTextColor (BIJELO);
Zatim u sljedećem retku definirajte položaj na kojem započinje tekst metodom setCursor (x, y) . I ispišite vrijednosti gustoće prašine na OLED zaslon pomoću funkcije display.println () .
display.println ("Prašina"); display.println ("Gustoća"); display.setTextSize (3); display.println (nivo prašine);
I u posljednjem, nazovite display () metodu za prikaz teksta na OLED zaslonu.
display.display (); display.clearDisplay ();
Testiranje međusobnog povezivanja Sharp GP2Y1014AU0F senzora s Arduinom
Kad su hardver i kod spremni, vrijeme je da testirate senzor. Za to spojite Arduino na prijenosno računalo, odaberite ploču i priključak i pritisnite gumb za prijenos. Kao što možete vidjeti na donjoj slici, prikazat će gustoću prašine na OLED zaslonu.

Kompletni radni video i kod dati su u nastavku. Nadam se da ste uživali u vodiču i naučili nešto korisno. Ako imate bilo kakvih pitanja, ostavite ih u odjeljku za komentare ili upotrijebite naše forume za ostale tehničke upite.
