Lifely Agrumino Lemon – Stazione Meteo Tascabile
Benvenuti ad un nuovo articolo del blog di Lifely!
Oggi vi parleremo di un progetto realizzabile con il nostro dispositivo Lifely Agrumino Lemon: una stazione meteo tascabile.
Il nostro Lifely Agrumino Lemon è un dispositivo open-source, programmabile per ogni esigenza. Infatti, se sei un makers e sei appassionato di tecnologia puoi migliorare il nostro dispositivo scrivendo tu stesso il codice e condividerlo con la community!
Sei interessato al nostro dispositivo Lifely Agrumino Lemon? Puoi acquistarlo subito premendo il pulsante qui sotto.
Cosa ti occorre?
Componenti hardware
- Lifely Agrumino Lemon
- Breadboard (generico)
- 4 pin male jumper to grove
- Adafruit – bme680
Software apps and online services
Ma ora iniziamo! Scopri con noi come costruire una stazione meteo tascabile con il nostro dispositivo programmabile Lifely Agrumino Lemon.
STEP 1: Descrizione e Connessione
Come prima cosa bisognerà collegare Lifely Agrumino Lemon come un esempio di Fritzing.
Questo passaggio ci permetterà di acquisire i seguenti dati con elevata precisione:
- Temperatura;
- Umidità;
- Pressione atmosferica;
- Composti organici volatili (VOC);
- Altitudine;
- Qualità dell’aria.
Applicazioni tipiche dei utilizzo del sensore bme680:
- Qualità dell’aria interna;
- Domotica e controllo;
- Internet of Things;
- Previsioni meteo;
- Miglioramento del GPS;
- Navigazione interna;
- Applicazioni per la navigazione all’aperto, il tempo libero e lo sport;
- Indicazione della velocità verticale (velocità di salita/discesa);
- Dispositivi portatili come telefoni cellulari, tablet, PC, dispositivi GPS;
- Indossabili;
- Stazioni meteo domestiche;
- Orologi intelligenti;
- Sistemi di navigazione.
STEP 2: Importa lo sketch dal collegamento github
Ora non ti resterà che importare gli sketch dal link e caricarli con l’IDE Arduino sul tuo Lifely Agrumino Lemon
#include <Wire.h>
#include <SPI.h>
#include <Agrumino.h>
#include <Adafruit_Sensor.h>
#include "Adafruit_BME680.h"
#define REFRESH_TIME 5000 //////ms
#define SEALEVELPRESSURE_HPA (1013.25)///change value
#define SERIAL_BAUD 115200
Adafruit_BME680 bme; // I2C connection
Agrumino agrumino;
void setup() {
agrumino.setup();
agrumino.turnBoardOn();
Serial.begin(SERIAL_BAUD);
while (!Serial);
Serial.println("BME680 test in progress");
if (!bme.begin()) {
Serial.println("Could not find a valid BME680 sensor, check wiring!");
while (1);
}
// Set up oversampling and filter initialization
bme.setTemperatureOversampling(BME680_OS_8X);
bme.setHumidityOversampling(BME680_OS_2X);
bme.setPressureOversampling(BME680_OS_4X);
bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
bme.setGasHeater(320, 150); // 320*C for 150 ms
}
void loop() {
boolean isAttachedToUSB = agrumino.isAttachedToUSB();
boolean isBatteryCharging = agrumino.isBatteryCharging();
boolean isButtonPressed = agrumino.isButtonPressed();
float temperature = agrumino.readTempC();
unsigned int soilMoisture = agrumino.readSoil();
unsigned int soilMoistureRaw = agrumino.readSoilRaw();
float illuminance = agrumino.readLux();
float batteryVoltage = agrumino.readBatteryVoltage();
Serial.println("Data from Agrumino Lemon");
Serial.println("isAttachedToUSB: " + String(isAttachedToUSB));
Serial.println("isBatteryCharging: " + String(isBatteryCharging));
Serial.println("isButtonPressed: " + String(isButtonPressed));
Serial.println("Temperature: " + String(temperature) + "°C");
Serial.println("SoilMoisture: " + String(soilMoisture) + "%");
Serial.println("SoilMoisture: " + String(soilMoistureRaw) + "Mv");
Serial.println("illuminance : " + String(illuminance) + " lux");
Serial.println("batteryVoltage : " + String(batteryVoltage) + " V");
Serial.println("End");
Serial.println("*********************");
if (! bme.performReading()) {
Serial.println("Error with perform reading :(");
return;
}
Serial.println("Value from Bme680");
Serial.print("Temperature = ");
Serial.print(bme.temperature);
Serial.println(" °C");
Serial.print("Pressure = ");
Serial.print(bme.pressure / 100.0);
Serial.println(" hPa");
Serial.print("Humidity = ");
Serial.print(bme.humidity);
Serial.println(" %");
Serial.print("Gas = ");
Serial.print(bme.gas_resistance / 1000.0);
Serial.println(" KOhms");
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" mt");
Serial.println("End");
Serial.println("*********************");
delay(REFRESH_TIME);
}
STEP 3: Mostra i dati sul tuo monitor seriale
Conclusioni
Con questo semplice esempio potrai costruire la tua stazione metereologica tascabile e molto precisa.
Puoi anche collegare un piccolo display (I2C) per vedere i dati acquisiti oppure inviarli con Mqtt direttamente al tuo smartphone.
Hai delle idee interessanti da poter realizzare con il nostro Agrumino Lemon? Scrivici subito!