Salta al contenuto

+49 1626571232

info@openelab.io

🚀 Spedizione gratuita da 30€ in Germania, 50€ nell'UE!

Come costruire una Smart Pet Box con M5StickC Plus2

06 Mar 2025 0 Commenti

Introduzione

Con lo sviluppo rapido della tecnologia Internet of Things (IoT), il Smart Pet Box è emerso come un nuovo campo di applicazione. I proprietari di animali domestici sono sempre più preoccupati per la qualità della vita dei loro animali, ma le tradizionali scatole per animali mancano di controllo automatico e monitoraggio ambientale. Lo Smart Pet Box, integrando sensori e sistemi di controllo automatico, è in grado di monitorare e regolare l'ambiente di vita degli animali in tempo reale.

Questo progetto utilizza tecnologia IoT e una varietà di moduli sensoriali per monitorare parametri come temperatura, umidità, concentrazione di CO₂ e intensità della luce all'interno della scatola per animali, garantendo che l'ambiente rimanga sempre all'interno di un intervallo confortevole. Inoltre, il progetto incorpora funzionalità di controllo remoto attraverso una piattaforma cloud, consentendo agli utenti di visualizzare i dati ambientali e regolare i dispositivi come umidificatori, ventilatori e cuscinetti riscaldanti in qualsiasi momento. La Smart Pet Box rende più facile per i proprietari di animali gestire l'ambiente dei loro animali, migliorando la qualità della vita per gli animali.

M5StickC PLUS2

M5StickC PLUS2

Visualizza prodotto

Che cos'è M5StickC Plus2?

Il M5StickC Plus2 è una scheda di sviluppo compatta che utilizza il chip ESP32 (ESP32-PICO-V3-02), dotata di una serie di sensori e periferiche integrate. Questo design la rende altamente adatta a una vasta gamma di applicazioni embedded. Le sue principali caratteristiche includono:
  • Design Compatto: Misurando solo 54mm × 54mm, è facile da trasportare e integrare in vari progetti.
  • Display integrato: Un display a colori TFT da 1,14 pollici che supporta più caratteri e grafica.
  • Sensoristica Multifunzionale: Include un accelerometro, un giroscopio, sensori di temperatura e umidità, tra gli altri, adatti a diversi scenari applicativi.
  • Altoparlante integrato: Supporta la riproduzione audio, ideale per feedback sonori e funzioni di allerta.
  • Interfacce Ricche: Supporta GPIO, I2C, UART e altre interfacce di comunicazione, facilitando l'espansione dei periferici.
  • Alimentato a Batteria: La batteria integrata supporta un funzionamento a lungo termine, adatta per applicazioni mobili.

Questa sezione descrive l'hardware e costruisce l'ambiente

1. Hardware utilizzato

M5StickC PLUS2

M5StickC PLUS2

Visualizza prodotto
Fotocamera OV2640

Fotocamera OV2640

Visualizza prodotto
Sensore di CO2 SCD40

Sensore di CO2 SCD40

Visualizza prodotto
Relè (3 pezzi)

Relè (3 pezzi)

Visualizza prodotto
M5Stack NCIR MLX90614

M5Stack NCIR MLX90614

Visualizza prodotto
reptile-usb-pet-heating-pad (1 pz)

reptile-usb-pet-heating-pad

Visualizza prodotto
umidificatore piccolo (1 pz)

umidificatore piccolo (1 pz)

Visualizza prodotto
Lampada USB UVB (1 pz)

Lampada UVB USB (1 pz.)

Visualizza prodotto
Sensore di Luce (Unità Luce)

Sensore di luce

Visualizza prodotto
PaHub V2.1

PaHub V2.1

Visualizza prodotto
Versione 1.1 di PubHub

Versione 1.1 di PubHub

Visualizza prodotto

2. Metodo di Connessione

M5StickC Plus 2 e Connessione PaHub:

Il M5StickC Plus 2 è collegato al modulo di espansione PaHub tramite il bus I2C, con il M5StickC Plus 2 alimentato tramite USB-C.

Collegamenti PaHub e Sensori:

  • Il Canale 0 sul PaHub è collegato al SCD40 Sensore di CO2.
  • Il Canale 1 su PaHub è collegato al MLX90614 Sensore di Temperatura Infrarosso.
  • Il Canale 2 su PaHub è connesso a PbHub.

PbHub e Periferica Connessioni:

  • Il Canale 0 sul PbHub è collegato a un sensore di luce.
  • Il Canale 2 sul PbHub è collegato al modulo della fotocamera (utilizzato solo per l'alimentazione).
  • Il Canale 3 su PbHub controlla il umidificatore tramite un relè.
  • Il Canale 4 su PbHub controlla il cuscinetto riscaldante tramite un relè.
  • Il Canale 5 su PbHub controlla la luce UVA tramite un relè.
  • Il Canale 1 sul PbHub controlla il ventilatore tramite un relè (opzionale).

Configurazione del software

1. Ambiente software

Sviluppo Ambiente

Usa VSCode + PlatformIO per programmare.

Per alcune delle librerie utilizzate dal sensore, vai direttamente a PIO Home -> Librerie -> Registro -> e cerca una parola chiave.

Librerie richieste:

  • M5GFX – Utilizzato per la visualizzazione di grafica e testo, controllando il display M5Stack.
  • M5Unified – Fornisce un'interfaccia API unificata per un controllo più semplice dei dispositivi M5Stack.
  • IRremote – Per ricevere e trasmettere segnali IR per comunicare con altri dispositivi.
  • M5StickCPlus2 – Controlla la scheda M5StickC Plus2, gestendo l'inizializzazione e il funzionamento del dispositivo.
  • Sensirion I2C SCD4x – Per controllare il sensore ambientale SCD40 per leggere temperatura, umidità e livelli di CO2.
  • ArduinoJson – Utilizzato per elaborare e analizzare i dati JSON per caricare i dati dei sensori sulla piattaforma cloud.
  • M5Unit-HUB e M5Unit-PbHub – Per interagire con i moduli PaHub e PbHub, espandere le interfacce I2C e GPIO e collegare dispositivi esterni aggiuntivi.
  • TimerOne – Per controllare gli intervalli di tempo, garantendo una regolare raccolta dei dati dei sensori.
  • PubSubClient – Implementa la comunicazione MQTT per lo scambio di dati con la piattaforma cloud.
  • Adafruit MLX90614 Library – Utilizzato per controllare il sensore di temperatura a infrarossi MLX90614 per leggere la temperatura inferiore della scatola per animali.

2. Struttura del codice

  • Connessione WiFi:Si connette alla rete tramite WiFi, consentendo l'accesso alla piattaforma cloud per l'abbonamento e la pubblicazione dei dati.
  • MQTT Comunicazione:Utilizza la libreria PubSubClient per implementare la comunicazione MQTT, caricando i dati ambientali sulla piattaforma cloud e ricevendo istruzioni da essa.
  • Recupero Dati del Sensore: Ogni dato del sensore viene letto periodicamente e caricato utilizzando un metodo di polling:
  1. SCD40: Legge temperatura, umidità e concentrazione di CO2.
  2. MLX90614: Legge i dati del sensore di temperatura (temperatura inferiore).
  • Controllo Dispositivo:Controlla i relè per accendere e spegnere i dispositivi, come cuscinetti riscaldanti, umidificatori, luci UVA, ecc. I dispositivi possono essere controllati automaticamente o manualmente impostando la temperatura e l'umidità target.

3. Piattaforma IoT e Caricamento Dati

  • Selezione della Piattaforma: Utilizziamo Alibaba Cloud IoT per caricare dati e gestire dispositivi da remoto.
  • Connessione e Associazione del Dispositivo: Segui il tutorial di configurazione per associare il tuo dispositivo alla piattaforma cloud.
  • Caricamento Dati: I dati del sensore vengono caricati tramite il protocollo MQTT in formato JSON.
// Parse the received JSON message
void callback(char* topic, byte* payload, unsigned int length)
{
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");

  // Convert the received payload to a string
  char msg[length + 1];
  for (unsigned int i = 0; i < length; i++) {
    msg[i] = (char)payload[i];
  }
  msg[length] = '\0'; // Null terminator for the string

  // Output the received message
  Serial.println(msg);

  // Parse the JSON data
  JsonDocument doc;  // Use JsonDocument to parse JSON
  DeserializationError error = deserializeJson(doc, msg);  // Parse the message into a JSON object

  // Check if parsing was successful
  if (error) {
    Serial.printf("deserializeJson() failed: ");
    Serial.println(error.f_str());
    return;  // Exit if parsing failed
  }

  // Get the temperature value and print it, correctly retrieving the target_temperature from the nested "params" field
  if (doc["params"]["target_temperature"].is()) {
    target_temperature = doc["params"]["target_temperature"];
    Serial.print("Temperatura obiettivo ricevuta: ");
    Serial.println(target_temperature);
  }
  // Get the humidity value and print it, correctly retrieving the target_humidity from the nested "params" field
  if (doc["params"]["target_humidity"].is()) {
    target_humidity = doc["params"]["target_humidity"];
    Serial.print("Ricevuto target_humidity: ");
    Serial.println(target_humidity);
  }
}



✔ Copiato!

4. Callback per ricevere dati dalla piattaforma cloud

// Parse the received JSON message
void callback(char* topic, byte* payload, unsigned int length)
{
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");

  // Convert the received payload to a string
  char msg[length + 1];
  for (unsigned int i = 0; i < length; i++) {
    msg[i] = (char)payload[i];
  }
  msg[length] = '\0'; // Null terminator for the string

  // Output the received message
  Serial.println(msg);

  // Parse the JSON data
  JsonDocument doc;  // Use JsonDocument to parse JSON
  DeserializationError error = deserializeJson(doc, msg);  // Parse the message into a JSON object

  // Check if parsing was successful
  if (error) {
    Serial.printf("deserializeJson() failed: ");
    Serial.println(error.f_str());
    return;  // Exit if parsing failed
  }

  // Get the temperature value and print it, correctly retrieving the target_temperature from the nested "params" field
  if (doc["params"]["target_temperature"].is()) {
    target_temperature = doc["params"]["target_temperature"];
    Serial.print("Temperatura obiettivo ricevuta: ");
    Serial.println(target_temperature);
  }
  // Get the humidity value and print it, correctly retrieving the target_humidity from the nested "params" field
  if (doc["params"]["target_humidity"].is()) {
    target_humidity = doc["params"]["target_humidity"];
    Serial.print("Ricevuto target_humidity: ");
    Serial.println(target_humidity);
  }
}



 ✔ Copiato!

 

IoT Configurazione della Piattaforma

1. Nuvola di Alibaba IoT:

  • Accedi alla piattaforma IoT di Alibaba Cloud, crea un nuovo progetto e configura i nomi dei dispositivi, le chiavi del prodotto, ecc.
  • Recupera l'ID cliente, il nome utente, la password e assicurati che le impostazioni di comunicazione MQTT siano corrette.

2. Controllo app:

  • Crea un prodotto sulla piattaforma IoT di Alibaba Cloud e configura l'interfaccia per il controllo dei dispositivi.
  • Utilizza l'SDK di Alibaba Cloud per sviluppare un'app mobile che consenta il monitoraggio in tempo reale e il controllo remoto dei dispositivi.

Note e Problemi Comuni

1. Inizializzazione del sensore:

  • Il sensore di CO2 SCD40 richiede circa 6 secondi per l'inizializzazione prima che siano disponibili letture accurate.
  • Il sensore MLX90614 richiede che la velocità del bus I2C sia impostata a 100kHz per funzionare correttamente.

2. Conflitti di dispositivo:

  • Assicurati che gli indirizzi I2C per i moduli PaHub e PbHub siano unici per evitare conflitti.
  • Assegna canali diversi per sensori e periferiche su PaHub per evitare interferenze.

3. Debug e Ottimizzazione:

  • Regola la connessione del dispositivo e gli intervalli di caricamento dei dati per evitare caricamenti eccessivi di dati e ridurre il carico sulla piattaforma cloud.
  • Se i dati non vengono ricevuti sulla piattaforma cloud, assicurati che le connessioni dei dispositivi siano stabili e controlla le impostazioni MQTT.

Casi d'uso

Il progetto Smart Pet Box offre ampie applicazioni, specialmente per i proprietari di animali domestici che cercano di gestire la salute e le esigenze quotidiane dei loro animali. Ecco alcuni casi d'uso comuni:

1. Ambientale Monitoraggio e Gestione:

I sensori (temperatura, umidità, CO2) all'interno della scatola per animali possono monitorare continuamente i parametri ambientali, garantendo che le condizioni di vita dell'animale siano sempre all'interno di un intervallo ideale. Ad esempio, se la temperatura diventa troppo alta, il cuscinetto riscaldante si spegne automaticamente, oppure se l'umidità scende troppo, l'umidificatore viene attivato.

2. Controllo Remoto e Regolazioni:

I proprietari di animali domestici che viaggiano frequentemente o lavorano a lungo possono gestire l'ambiente dei loro animali a distanza tramite la piattaforma cloud. Possono regolare la temperatura, l'umidità o controllare dispositivi come cuscinetti riscaldanti, umidificatori, ecc., tutto tramite un'app mobile.

3. Automazione:

Il sistema può regolare automaticamente l'ambiente in base ai valori di temperatura e umidità preimpostati, riducendo la necessità di intervento manuale.

4. Monitoraggio degli animali domestici:

Con il modulo della fotocamera OV2640, i proprietari di animali domestici possono visualizzare filmati in diretta dei loro animali e dell'ambiente circostante. La piattaforma cloud consente anche di interagire con gli animali tramite la voce.

5. Utilizzo versatile:

Che si tratti di casa, di un ufficio o durante un viaggio, la Smart Pet Box offre una gestione efficiente degli animali domestici, soprattutto per lunghe assenze in cui i proprietari non devono preoccuparsi del benessere dei loro animali.

In generale, questo trasportino intelligente migliora la comodità di gestione per i proprietari di animali e la qualità della vita degli animali attraverso l'automazione, il controllo remoto e il monitoraggio in tempo reale.

Possibilità Future e Espansione

La Smart Pet Box non riguarda solo la creazione di un ambiente confortevole per gli animali domestici; ha anche un vasto potenziale per future espansioni e personalizzazioni. Ecco alcune direzioni entusiasmanti per lo sviluppo futuro:

1. Ambienti per animali domestici acquatici:

Sebbene progettato per animali domestici terrestri, il sistema si espanderà per supportare animali domestici acquatici sostituendo il tappetino riscaldante con barre riscaldanti sommergibili e aggiungendo sensori di temperatura subacquei per mantenere condizioni acquatiche ideali.

2. Funzionalità DIY e personalizzazione:

La Smart Pet Box è progettata per essere flessibile. In futuro, gli utenti potranno aggiungere moduli personalizzati per funzionalità extra. Ad esempio, gli utenti possono aggiungere ventilatori, funzionalità vocali e aggiornamenti della fotocamera. Attraverso la piattaforma cloud, gli utenti possono controllare queste funzionalità da remoto, interagendo anche con gli animali domestici tramite comunicazione vocale.

3. Salute Monitoraggio:

I futuri miglioramenti includeranno sistemi di monitoraggio della salute come monitor della frequenza cardiaca, rilevatori di movimento e telecamere per valutare l'attività degli animali domestici. Questo sistema notificherà i proprietari di comportamenti anomali e consentirà un intervento precoce.

4. Intelligenza Cloud e Automazione:

Sfruttando il cloud computing e l'IA, il Pet Box utilizzerà l'analisi predittiva per regolare l'ambiente in base ai dati storici. Questo ridurrà l'input manuale e renderà il sistema più intelligente e autonomo.

Conclusione

Questo progetto integra M5StickC Plus2 e vari sensori per creare una Smart Pet Box in grado di monitorare l'ambiente, controllare i dispositivi e fornire gestione remota tramite la piattaforma cloud. L'uso di PaHub e PbHub garantisce un polling efficiente di più dispositivi, assicurando un funzionamento fluido e stabile del sistema.

 

Articolo precedente
Articolo successivo

Lascia un commento

Tutti i commenti del blog vengono controllati prima della pubblicazione

Qualcuno ha recentemente acquistato un

Grazie per esserti iscritto!

Questa email è stata registrata!

Acquista il look

Scegli Opzioni

visualizzato recentemente

Modifica opzione
Notifica di disponibilità
this is just a warning
Login
Carrello della spesa
0 elementi
RuffRuff App RuffRuff App by Tsun