station-air.ino
Station de qualité d'air en trois fils : le BME280 sur I2C fournit température, humidité, pression et altitude estimée, que le Nano Every publie en CSV toutes les deux secondes. Le bus Wire du 4809 se branche sur A4/A5, comme sur l'ancien Nano.
Matériel requis
Un Arduino Nano Every (ATmega4809 à 20 MHz, brochage identique au Nano, USB micro-B, convertisseur UART séparé, broches 5 V, pile de compatibilité avec le Nano classique). Nano Every, BME280 I2C (adresse 0x76 ou 0x77 selon le strap), câble USB.
Câblage
BME280 VCC→3,3 V (jamais 5 V sur ce module), GND, SDA→A4, SCL→A5 ; le module embarque ses pull-up.
Fonctionnement
Le test begin(0x76)||begin(0x77) couvre les deux adresses possibles du capteur. readAltitude convertit la pression en altitude par la formule internationale de l'atmosphère.
Exécution
Installez le package Arduino megaAVR Boards dans l'IDE, sélectionnez Arduino Nano Every, téléversez. Le Serial USB est séparé du Serial1 matériel (broches RX/TX) : le code série classique fonctionne tel quel.
Variantes
Ajoutez un BME688/BME680 pour le CO2 équivalent, ou loggez le CSV sur PC via le port série pour une campagne longue.
station-air.ino
// BME280 (I2C 0x76) sur Nano Every : T/H/P via la bibliotheque Adafruit.
// Le bus Wire du 4809 est sur A4/A5 comme sur l'ancien Nano.
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
Adafruit_BME280 bme;
unsigned long dernier = 0;
void setup() {
Serial.begin(115200);
Wire.begin();
if (!bme.begin(0x76) && !bme.begin(0x77)) {
Serial.println(F("BME280 absent (0x76/0x77)"));
while (true);
}
Serial.println(F("T;H;P;Alt"));
}
void loop() {
if (millis() - dernier < 2000) return;
dernier = millis();
float t = bme.readTemperature();
float h = bme.readHumidity();
float p = bme.readPressure() / 100.0;
float a = bme.readAltitude(1013.25);
Serial.print(t, 2); Serial.print(';');
Serial.print(h, 1); Serial.print(';');
Serial.print(p, 1); Serial.print(';');
Serial.println(a, 1);
}