- Components necessaris
- Sensor Sharp GP2Y1014AU0F
- Mòdul de pantalla OLED
- Esquema de connexions
- Construint el circuit a la junta Perf
- Explicació del codi per a l'analitzador de qualitat de l'aire
- Prova de la interfície del sensor Sharp GP2Y1014AU0F amb Arduino
La contaminació atmosfèrica és un problema important a moltes ciutats i l’índex de qualitat de l’aire empitjora cada dia. Segons l'informe de l'Organització Mundial de la Salut, hi ha més persones que moren prematurament pels efectes de les partícules perilloses que es presenten a l'aire que pels accidents de cotxe. Segons l'Agència de Protecció del Medi Ambient (EPA), l'aire interior pot ser de 2 a 5 vegades més tòxic que l'aire exterior. Així doncs, aquí construïm un projecte per controlar la qualitat de l’aire mesurant la densitat de partícules de pols a l’aire.
Així doncs, a continuació dels nostres projectes anteriors com el detector de GLP, el detector de fum i el monitor de qualitat de l’aire, aquí farem una interfície amb el sensor Sharp GP2Y1014AU0F amb Arduino Nano per mesurar la densitat de pols a l’aire. A part del sensor de pols i Arduino Nano, també s’utilitza una pantalla OLED per mostrar els valors mesurats. El sensor de pols GP2Y1014AU0F de Sharp és molt eficaç per detectar partícules molt fines com el fum de cigarreta. Està dissenyat per a ús en purificadors d'aire i condicionadors d'aire.
Components necessaris
- Arduino Nano
- Sensor Sharp GP2Y1014AU0F
- Mòdul de pantalla OLED de 0,96 '
- Jumper Wires
- Condensador de 220 µf
- Resistència de 150 Ω
Sensor Sharp GP2Y1014AU0F
El GP2Y1014AU0F de Sharp és un petit sensor de pols òptic de qualitat de l’aire / sortida de pols òptica de sortida analògica de sis pins dissenyat per detectar partícules de pols a l’aire. Funciona sobre el principi de la dispersió làser. Dins del mòdul del sensor, un díode emissor d'infrarojos i un fotosensor estan disposats en diagonal a prop del forat d'entrada d'aire, tal com es mostra a la imatge següent:

Quan l’aire que conté partícules de pols entra a la cambra del sensor, les partícules de pols dispersen la llum LED IR cap al fotodetector. La intensitat de la llum dispersa depèn de les partícules de pols. Com més partícules de pols hi hagi a l’aire, major serà la intensitat de la llum. La tensió de sortida al pin V OUT del sensor canvia segons la intensitat de la llum dispersa.
GP2Y1014AU0F Pinout del sensor:
Com s’ha esmentat anteriorment, el sensor GP2Y1014AU0F ve amb un connector de 6 pins. A la figura i la taula següents es mostren les assignacions de pins per a GP2Y1014AU0F:

|
S. NO |
Nom del pin |
Descripció del pin |
|
1 |
V-LED |
Pin Vcc LED. Connecteu-vos a una resistència de 5V a 150Ω |
|
2 |
LED-GND |
Pin de terra LED. Connecteu-vos a GND |
|
3 |
LED |
S'utilitza per activar / desactivar el LED. Connecteu-vos a qualsevol pin digital d'Arduino |
|
4 |
S-GND |
Pin de terra del sensor. Connecteu-vos a GND d'Arduino |
|
5 |
V OUT |
Pin de sortida analògica del sensor. Connecteu-vos a qualsevol pin analògic |
|
6 |
V CC |
Pin de subministrament positiu. Connecteu-vos a 5V d'Arduino |
Especificacions del sensor GP2Y1014AU0F:
- Baix consum de corrent: 20 mA màx
- Voltatge de funcionament típic: 4,5V a 5,5V
- Mida mínima de pols detectable: 0,5 µm
- Rang de detecció de densitat de pols: fins a 580 ug / m 3
- Temps de detecció: menys d'1 segon
- Dimensions: 1,81 x 1,18 x 0,69 "(46,0 x 30,0 x 17,6 mm)
Mòdul de pantalla OLED
OLED (Organic Light-Emitting Diodes) és una tecnologia autoemissora, construïda col·locant una sèrie de pel·lícules primes orgàniques entre dos conductors. Es produeix una llum brillant quan s’aplica un corrent elèctric a aquestes pel·lícules. Els OLED utilitzen la mateixa tecnologia que els televisors, però tenen menys píxels que a la majoria dels nostres televisors.

Per a aquest projecte, fem servir una pantalla OLED SSD1306 de 0,96 polzades monocroma de 7 pins. Pot funcionar en tres protocols de comunicacions diferents: mode SPI 3 Wire, mode SPI de quatre fils i mode I2C. Els pins i les seves funcions s’expliquen a la taula següent:
Ja hem tractat detalls OLED i els seus tipus a l'article anterior.
|
Nom del pin |
Altres noms |
Descripció |
|
Gnd |
Terra |
Pas de terra del mòdul |
|
Vdd |
Vcc, 5V |
Pin d'alimentació (tolerable de 3-5 V) |
|
SCK |
D0, SCL, CLK |
Actua com el passador del rellotge. S’utilitza tant per a I2C com per a SPI |
|
SDA |
D1, MOSI |
Pin de dades del mòdul. S’utilitza tant per a IIC com per a SPI |
|
RES |
RST, RESET |
Restableix el mòdul (útil durant SPI) |
|
DC |
A0 |
Pin de comandament de dades. S'utilitza per al protocol SPI |
|
CS |
Selecció de xip |
Útil quan s'utilitza més d'un mòdul sota el protocol SPI |
Especificacions OLED:
- IC del controlador OLED: SSD1306
- Resolució: 128 x 64
- Angle visual:> 160 °
- Voltatge d'entrada: 3.3V ~ 6V
- Color de píxels: blau
- Temperatura de treball: -30 ° C ~ 70 ° C
Seguiu l’enllaç per obtenir més informació sobre OLED i la seva interfície amb diferents microcontroladors.
Esquema de connexions
A continuació es mostra el diagrama de circuits per a la interfície del sensor Sharp GP2Y1014AU0F amb Arduino:

El circuit és molt senzill, ja que només connectem el sensor GP2Y10 i el mòdul de pantalla OLED amb Arduino Nano. El sensor GP2Y10 i el mòdul de pantalla OLED s’alimenten amb + 5V i GND. El pin V0 està connectat amb el pin A5 d'Arduino Nano. El pin LED del sensor està connectat al pin digital 12 d'Arduino. Com que el mòdul OLED Display utilitza la comunicació SPI, hem establert una comunicació SPI entre el mòdul OLED i Arduino Nano. Les connexions es mostren a la taula següent:
|
S.No |
Pin del mòdul OLED |
Pin Arduino |
|
1 |
GND |
Terra |
|
2 |
VCC |
5V |
|
3 |
D0 |
10 |
|
4 |
D1 |
9 |
|
5 |
RES |
13 |
|
6 |
DC |
11 |
|
7 |
CS |
12 |
|
S.No |
Pin del sensor |
Pin Arduino |
|
1 |
Vcc |
5V |
|
2 |
V O |
A5 |
|
3 |
S-GND |
GND |
|
4 |
LED |
7 |
|
5 |
LED-GND |
GND |
|
6 |
V-LED |
Resistència de 5V a través de 150Ω |
Construint el circuit a la junta Perf
Després de soldar tots els components del tauler de perf, es veurà com a sota. Però també es pot construir sobre una taula de treball. He soldat el sensor GP2Y1014 a la mateixa placa que he utilitzat per a la interfície del sensor SDS011. Mentre soldeu, assegureu-vos que els cables de soldadura estiguin a una distància suficient entre ells.

Explicació del codi per a l'analitzador de qualitat de l'aire
El codi complet d’aquest projecte es dóna al final del document. Aquí expliquem algunes parts importants del codi.
El codi utilitza el Adafruit_GFX , i Adafruit_SSD1306 biblioteques. Aquestes biblioteques es poden descarregar des del gestor de biblioteques a l'IDE Arduino i instal·lar-les des d'allà. Per a això, obriu l'IDE d'Arduino i aneu a Sketch <Inclou biblioteca <Gestiona biblioteques . Ara cerqueu Adafruit GFX i instal·leu la biblioteca Adafruit GFX d’Adafruit.

De la mateixa manera, instal·leu les biblioteques Adafruit SSD1306 d'Adafruit.
Després d'instal·lar les biblioteques a Arduino IDE, inicieu el codi incloent els fitxers de biblioteques necessaris. El sensor de pols no requereix cap biblioteca, ja que estem llegint els valors de tensió directament des del pin analògic d’Arduino.
#incloure
A continuació, definiu l'amplada i l'alçada OLED. En aquest projecte, utilitzem una pantalla OLED de 128 × 64 SPI. Es pot canviar el SCREEN_WIDTH i SCREEN_HEIGHT variables d'acord a la seva pantalla.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
A continuació, definiu els pins de comunicació SPI on està connectada la pantalla OLED.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
A continuació, creeu una instància de visualització d'Adafruit amb l'amplada i l'alçada definides anteriorment amb el protocol de comunicació SPI.
Pantalla Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Després d'això, definiu el sensor de pols i els passadors LED. El pin de detecció és el pin de sortida del sensor de pols que s’utilitza per llegir els valors de tensió mentre que el pin del led s’utilitza per encendre / apagar el led IR.
int sensePin = A5; int ledPin = 7;
Ara dins de la funció setup () , inicialitzeu el monitor sèrie a una velocitat de transmissió de 9600 per a la depuració. A més, inicialitzeu la pantalla OLED amb la funció begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Dins de la funció loop () , llegiu els valors de tensió del pin analògic 5 d'Arduino Nano. Primer, enceneu el LED IR i espereu 0,28 ms abans de llegir el voltatge de sortida. Després, llegiu els valors de tensió del pin analògic. Aquesta operació triga entre 40 i 50 microsegons, de manera que introduïu un retard de 40 microsegons abans d’apagar el led del sensor de pols. Segons les especificacions, el LED s’ha d’encendre un cop cada 10 ms, així que espereu la resta del cicle de 10 ms = 10000 - 280 - 40 = 9680 microsegons .
digitalWrite (ledPin, LOW); delayMicroseconds (280); outVo = analogRead (sensePin); delayMicroseconds (40); digitalWrite (ledPin, HIGH); delayMicroseconds (9680);
A continuació, a les línies següents, calculeu la densitat de pols utilitzant el voltatge de sortida i el valor del senyal.
sigVolt = outVo * (5/1024); dustLevel = 0,17 * sigVolt - 0,1;
Després, configureu la mida del text i el color del text amb setTextSize () i setTextColor () .
display.setTextSize (1); display.setTextColor (BLANC);
A continuació, definiu la posició on comença el text mitjançant el mètode setCursor (x, y) . I imprimiu els valors de densitat de pols a la pantalla OLED mitjançant la funció display.println () .
display.println ("Pols"); display.println ("Densitat"); display.setTextSize (3); display.println (dustLevel);
I, a la darrera, truqueu al mètode display () per mostrar el text a la pantalla OLED.
display.display (); display.clearDisplay ();
Prova de la interfície del sensor Sharp GP2Y1014AU0F amb Arduino
Un cop el maquinari i el codi estiguin preparats, és hora de provar el sensor. Per a això, connecteu l'Arduino a l'ordinador portàtil, seleccioneu la placa i el port i premeu el botó de càrrega. Com podeu veure a la imatge següent, mostrarà la densitat de pols a la pantalla OLED.

A continuació es dóna el vídeo i el codi de treball complet. Espero que us hagi agradat el tutorial i hàgiu après alguna cosa útil. Si teniu cap pregunta, deixeu-les a la secció de comentaris o utilitzeu els nostres fòrums per a altres consultes tècniques.
