De ENS160 en AHT21 zijn krachtige sensoren die vaak samen zijn gekoppeld aan milieumonitoringprojecten. De ENS160 is een sensor van digitale luchtkwaliteit, terwijl de AHT21 temperatuur en vochtigheid meet. Samen kunnen ze de luchtkwaliteit binnenshuis en klimaatomstandigheden volgen. In deze zelfstudie laten we u zien hoe u de ENS160 en AHT21 kunt gebruiken met Arduino.
Wat u nodig hebt
- ENS160 Air Quality Sensor
- AHT21 Temperatuur- en vochtigheidssensor
- Arduino Board (bijv. UNO, Mega, Nano)
- Breadboard
- Jumper draden
- Een computer met de Arduino Ide geïnstalleerd
Stap 1: Begrijp de sensoren van ENS160 en AHT21
Ens160 pinout
Pin | Functie |
---|---|
VCC | Voeding (3.3V/5V) |
GND | Grond |
SDA | I2C -gegevenslijn |
SCL | I2c kloklijn |
Aht21 pinout
Pin | Functie |
---|---|
VCC | Voeding (3.3V/5V) |
GND | Grond |
SDA | I2C -gegevenslijn |
SCL | I2c kloklijn |
Beide sensoren communiceren via de I2C -interface en kunnen dezelfde I2C -bus delen.
Stap 2: De sensoren bedraden naar Arduino
Hier leest u hoe beide sensoren naar een Arduino Uno kunnen worden bedrogen:
ENS160 PIN | Aht21 pin | Arduino Pin |
---|---|---|
VCC | VCC | 5V |
GND | GND | GND |
SDA | SDA | A4 |
SCL | SCL | A5 |
Stap 3: Installeer de vereiste bibliotheken
Om de interactie met deze sensoren te vereenvoudigen, hebt u de volgende bibliotheken nodig:
- Adafruit ENS160 bibliotheek
- Adafruit ahtx0 bibliotheek
Stappen om te installeren:
- Open de Arduino Ide.
- Gaan naar Schetsen > Library innemen > Bibliotheken beheren.
- Zoek naar "adafruit ens160" en klik Installeren.
- Zoek naar "adafruit ahtx0" en klik op Installeren.
Stap 4: Upload de code
Hier is een voorbeeldschets om gegevens van beide sensoren te lezen:
#include <Wire.h>
#include <Adafruit_ENS160.h>
#include <Adafruit_AHTX0.h>
Adafruit_ENS160 ens160;
Adafruit_AHTX0 aht;
void setup() {
Serial.begin(9600);
Wire.begin();
// Initialize ENS160
if (!ens160.begin()) {
Serial.println("ENS160 not found. Check connections.");
while (1);
}
Serial.println("ENS160 initialized.");
// Initialize AHT21
if (!aht.begin()) {
Serial.println("AHT21 not found. Check connections.");
while (1);
}
Serial.println("AHT21 initialized.");
}
void loop() {
// Read temperature and humidity from AHT21
sensors_event_t humidity, temp;
aht.getEvent(&humidity, &temp);
Serial.print("Temperature: ");
Serial.print(temp.temperature);
Serial.println(" °C");
Serial.print("Humidity: ");
Serial.print(humidity.relative_humidity);
Serial.println(" %");
// Read air quality data from ENS160
ens160.setTempAndHumidity(temp.temperature, humidity.relative_humidity); // Provide environmental data
Serial.print("AQI (Air Quality Index): ");
Serial.println(ens160.getAQI());
delay(2000); // Wait 2 seconds before next reading
}
Stap 5: Test de installatie
- Sluit de Arduino via USB aan op uw computer.
- Open de Arduino IDE en selecteer de juiste Bord En Haven onder de Hulpmiddelen menu.
- Upload de code naar de Arduino door te klikken Uploaden.
- Open de seriële monitor (Hulpmiddelen > Serie -monitor) en stel het baudrates in op
9600
. - U zou de temperatuur-, vochtigheids- en luchtkwaliteitswaarden elke 2 seconden moeten zien weergegeven.
Problemen oplossen
- Sensoren niet gedetecteerd: Controleer de bedrading dubbel en zorg ervoor dat SDA/SCL-lijnen correct zijn aangesloten.
- Geen metingen: Zorg ervoor dat de I2C -adressen van beide sensoren niet in strijd zijn. Gebruik indien nodig een I2C -scanner.
- Onregelmatige waarden: Houd de sensoren uit de buurt van extreme omstandigheden of plotselinge omgevingsveranderingen tijdens de initialisatie.
Toepassingen van ENS160 + AHT21
- Binnenlandse luchtkwaliteitsbewakingssystemen
- Slimme thermostaten
- Logboekregistratie van omgevingsgegevens voor IoT -projecten
- Luchtzuiveringssystemen
Conclusie
Je hebt met succes de ENS160 luchtkwaliteitssensor en AHT21 -temperatuur- en vochtigheidssensor met Arduino gekoppeld. Deze sensoren werken samen om uitgebreide milieumonitoring te bieden, waardoor ze perfect zijn voor smart home- of IoT -applicaties. Experimenteer met de gegevens om uw eigen milieuprojecten te bouwen!