Sådan bygger du en smart kæledyrsbox med M5StickC Plus2

Introduktion

Med den hurtige udvikling af Internet of Things (IoT) teknologi er Smart Pet Box opstået som et nyt anvendelsesområde. Kæledyrsejere er i stigende grad bekymrede for kvaliteten af deres kæledyrs liv, men traditionelle kæledyrsbokse mangler automatisk styring og miljøovervågning. Smart Pet Box, ved at integrere sensorer og automatiske styresystemer, er i stand til at overvåge og justere kæledyrs levevilkår i realtid.

Dette projekt anvender IoT-teknologi og en række sensormoduler til at overvåge parametre som temperatur, fugtighed, CO₂-koncentration og lysintensitet inde i kæledyrskassen, hvilket sikrer, at miljøet altid forbliver inden for et behageligt område. Derudover indeholder projektet fjernbetjeningsfunktionalitet via en cloud-platform, som giver brugerne mulighed for at se miljødata og justere enheder såsom befugtere, ventilatorer og varmeplader når som helst. Smart Pet Box gør det nemmere for kæledyrsejere at styre deres kæledyrs miljø, hvilket forbedrer den overordnede livskvalitet for kæledyr.

M5StickC PLUS2

M5StickC PLUS2

Se produkt

Hvad er M5StickC Plus2?

M5StickC Plus2 er et kompakt udviklingskort, der benytter ESP32 chip (ESP32-PICO-V3-02), med en række integrerede sensorer og perifere enheder. Dette design gør det yderst velegnet til en bred vifte af indlejrede applikationer. Dets hovedfunktioner inkluderer:
  • Kompakt design: Måler kun 54 mm × 54 mm, nem at bære og integrere i forskellige projekter.
  • Indbygget display: En 1,14-tommer farvet TFT-skærm, der understøtter flere skrifttyper og grafiske visninger.
  • Multifunktionelle sensorer: Indeholder accelerometer, gyroskop, temperatur- og fugtighedssensorer med mere, velegnet til forskellige anvendelsesscenarier.
  • Indbygget højttaler: Understøtter lydafspilning, ideel til lydfeedback og alarmfunktioner.
  • Rige grænseflader: Understøtter GPIO, I2C, UART og andre kommunikationsgrænseflader, hvilket letter udvidelse af periferiudstyr.
  • Batteridrevet: Integreret batteri understøtter langvarig drift, velegnet til mobile applikationer.

Dette afsnit beskriver hardware og opbygger miljøet

1. Hardware brugt

M5StickC PLUS2

M5StickC PLUS2

Se produkt
OV2640 Kamera

OV2640 Kamera

Se produkt
SCD40 CO2-sensor

SCD40 CO2-sensor

Se produkt
Relæ (3 stk)

Relæ (3 stk)

Se produkt
M5Stack NCIR MLX90614

M5Stack NCIR MLX90614

Se produkt
reptil-usb-kæledyrs-varmepude (1 stk)

reptil-usb-kæledyrs-varmepude

Se produkt
lille luftfugter (1 stk)

lille luftfugter (1 stk)

Se produkt
USB UVB lampe (1 stk)

USB UVB lampe (1 stk)

Se produkt
Lysføler (Enhed Lys)

Lyssensor

Se produkt
PaHub V2.1

PaHub V2.1

Se produkt
PbHub V1.1

PbHub V1.1

Se produkt

2. Tilslutningsmetode

M5StickC Plus 2 og PaHub forbindelse:

M5StickC Plus 2 er forbundet til PaHub udvidelsesmodulet via I2C-bussen, med M5StickC Plus 2 drevet af USB-C.

PaHub og sensorforbindelser:

  • Kanal 0 på PaHub er forbundet til SCD40 CO2 Sensor.
  • Kanal 1 på PaHub er forbundet til MLX90614 Infrarød Temperatursensor.
  • Kanal 2 på PaHub er forbundet til PbHub.

PbHub og Periferi Forbindelser:

  • Kanal 0 på PbHub er forbundet til en lyssensor.
  • Kanal 2 på PbHub er forbundet til kamera modulet (bruges kun til strøm).
  • Kanal 3 på PbHub styrer befugteren via et relæ.
  • Kanal 4 på PbHub styrer varmepuden via et relæ.
  • Kanal 5 på PbHub styrer UVA lyset via et relæ.
  • Kanal 1 på PbHub styrer blæseren via et relæ (valgfrit).

Softwareopsætning

1. Softwaremiljø

Udvikling Miljø

Brug VSCode + PlatformIO til programmering.

For nogle af de biblioteker, der bruges af sensoren, gå direkte til PIO Home -> Libraries -> Registry -> og søg efter et nøgleord.

Påkrævede biblioteker:

  • M5GFX – Bruges til grafik- og tekstvisning, styrer M5Stack-displayet.
  • M5Unified – Tilbyder en samlet API-grænseflade for nemmere styring af M5Stack-enheder.
  • IRremote – Til modtagelse og afsendelse af IR-signaler for at kommunikere med andre enheder.
  • M5StickCPlus2 – Styrer M5StickC Plus2 boardet, håndterer enhedsinitialisering og drift.
  • Sensirion I2C SCD4x – Til styring af SCD40 miljøsensor for at aflæse temperatur, fugtighed og CO2-niveauer.
  • ArduinoJson – Bruges til behandling og parsing af JSON-data for at uploade sensordata til cloud-platformen.
  • M5Unit-HUB og M5Unit-PbHub – Til interaktion med PaHub- og PbHub-moduler, udvider I2C- og GPIO-interfaces og forbinder yderligere eksterne enheder.
  • TimerOne – Til styring af tidsintervaller, sikrer regelmæssig indsamling af sensordata.
  • PubSubClient – Implementerer MQTT-kommunikation til udveksling af data med cloud-platformen.
  • Adafruit MLX90614 Library – Bruges til at styre MLX90614 infrarøde temperatursensor for at aflæse bunden af kæledyrskassen.

2. Kodestruktur

  • WiFi-forbindelse:Opretter forbindelse til netværket via WiFi, hvilket muliggør adgang til cloud-platformen for abonnement og publicering af data.
  • MQTT Kommunikation:Bruger PubSubClient-biblioteket til at implementere MQTT-kommunikation, uploader miljødata til cloud-platformen og modtager instruktioner derfra.
  • Sensor dataindsamling: Hver sensors data læses periodisk og uploades ved hjælp af en polling-metode:
  1. SCD40: Læser temperatur, fugtighed og CO2-koncentration.
  2. MLX90614:Læser temperatursensordata (bundtemperatur).
  • Enhedskontrol:Styrer relæer for at tænde og slukke enheder som varmeplader, luftfugtere, UVA-lys osv. Enhederne kan styres automatisk eller manuelt ved at indstille måltemperatur og -fugtighed.

3. IoT-platform og dataupload

  • Platformvalg: Vi bruger Alibaba Cloud IoT til at uploade data og administrere enheder eksternt.
  • Enhedsforbindelse og binding: Følg opsætningstutorialen for at binde din enhed til cloud-platformen.
  • Data Upload: Sensordata uploades via MQTT-protokollen i JSON-format.
// 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("Modtaget target_temperature: ");
    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("Modtaget target_humidity: ");
    Serial.println(target_humidity);
  }
}



✔ Kopieret!

4. Callback til modtagelse af data fra cloud-platform

// 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("Modtaget target_temperature: ");
    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("Modtaget target_humidity: ");
    Serial.println(target_humidity);
  }
}



 ✔ Kopieret!

 

IoT Platformkonfiguration

1. Alibaba Cloud IoT:

  • Log ind på Alibaba Cloud IoT-platformen, opret et nyt projekt, og konfigurer enhedsnavne, produktnøgler osv.
  • Hent klient-ID, brugernavn, adgangskode, og sørg for, at MQTT-kommunikationsindstillingerne er korrekte.

2. App-kontrol:

  • Opret et produkt på Alibaba Cloud IoT-platformen og konfigurer grænsefladen til enhedskontrol.
  • Brug Alibaba Clouds SDK til at udvikle en mobilapp, der muliggør realtidsmonitorering og fjernbetjening af enheder.

Noter og almindelige problemer

1. Sensorinitialisering:

  • SCD40 CO2-sensoren kræver cirka 6 sekunder til initialisering, før nøjagtige målinger er tilgængelige.
  • MLX90614-sensoren kræver, at I2C-bushastigheden sættes til 100 kHz for at fungere korrekt.

2. Enhedskonflikter:

  • Sørg for, at I2C-adresserne for PaHub og PbHub modulerne er unikke for at undgå konflikter.
  • Tildel forskellige kanaler til sensorer og perifere enheder på PaHub for at undgå interferens.

3. Fejlfinding og Optimering:

  • Justér enhedsforbindelsen og datauploadintervaller for at undgå overdreven dataupload og reducere belastningen på cloud-platformen.
  • Hvis data ikke modtages på cloud-platformen, skal du sikre stabile enhedsforbindelser og kontrollere MQTT-indstillinger.

Brugssager

Smart Pet Box-projektet tilbyder brede anvendelser, især for kæledyrsejere, der ønsker at styre deres kæledyrs sundhed og daglige behov. Her er nogle almindelige anvendelsestilfælde:

1. Miljømæssig Overvågning og styring:

Sensorerne (temperatur, fugtighed, CO2) inde i kæledyrsboksen kan kontinuerligt overvåge miljøparametre og sikre, at kæledyrets levevilkår altid er inden for et ideelt område. For eksempel, hvis temperaturen bliver for høj, slukkes varmepladen automatisk, eller hvis fugtigheden falder for lavt, aktiveres luftfugteren.

2. Fjernstyring og justeringer:

Kæledyrsejere, der rejser ofte eller arbejder lange timer, kan fjernstyre deres kæledyrs miljø via cloud-platformen. De kan justere temperatur, fugtighed eller styre enheder som varmeplader, luftfugtere osv., alt sammen via en mobilapp.

3. Automatisering:

Systemet kan automatisk justere miljøet baseret på forudindstillede mål for temperatur og fugtighed, hvilket reducerer behovet for manuel indgriben.

4. Kæledyrsovervågning:

Med OV2640-kameramodulet kan kæledyrsejere se liveoptagelser af deres kæledyr og deres omgivelser. Cloud-platformen tillader også interaktion med kæledyr via stemme.

5. Alsidig brug:

Uanset om du er hjemme, på kontoret eller på rejse, giver Smart Pet Box effektiv kæledyrsstyring, især ved lange fravær, hvor kæledyrsejere ikke behøver at bekymre sig om deres kæledyrs velbefindende.

Samlet set forbedrer denne smarte kæledyrsbeholder både kæledyrsejeres administrationsbekvemmelighed og kæledyrs livskvalitet gennem automatisering, fjernstyring og realtids overvågning.

Fremtidige muligheder og udvidelser

Smart Pet Box handler ikke kun om at skabe et behageligt miljø for kæledyr; det rummer også stort potentiale for fremtidig udvidelse og tilpasning. Her er nogle spændende retninger for fremtidig udvikling:

1. Akvatiske kæledyrsmiljøer:

Selvom systemet er designet til landdyr, vil det blive udvidet til at understøtte akvatiske kæledyr ved at erstatte varmepladen med nedsænkbare varmelegemer og tilføje undervandstemperatursensorer for at opretholde ideelle akvatiske forhold.

2. DIY-funktioner og tilpasning:

Smart Pet Box er designet til at være fleksibel. Fremover vil brugere kunne tilføje tilpassede moduler for ekstra funktionalitet. For eksempel kan brugere tilføje ventilatorer, stemmefunktioner og kameraupgra der. Gennem cloud-platformen kan brugere fjernstyre disse funktioner og endda kommunikere med kæledyr via stemme.

3. Sundhed Overvågning:

Fremtidige forbedringer vil inkludere sundhedsovervågningssystemer såsom pulsmålere, bevægelsessensorer og kameraer til vurdering af kæledyrsaktivitet. Dette system vil underrette ejere om unormal adfærd og muliggøre tidlig indgriben.

4. Cloud-intelligens og automatisering:

Ved at udnytte cloud computing og AI vil Pet Box anvende prædiktiv analyse til at justere miljøet baseret på historiske data. Dette vil reducere manuel indgriben og gøre systemet mere intelligent og autonomt.

Konklusion

Dette projekt integrerer M5StickC Plus2 og forskellige sensorer for at skabe en Smart Pet Box, der kan overvåge miljøet, styre enheder og tilbyde fjernstyring via cloud-platformen. Brug af PaHub og PbHub sikrer effektiv polling af flere enheder, hvilket garanterer en glat og stabil drift af systemet.

 

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

Sidebjælke

Seneste indlæg

Denne sektion indeholder i øjeblikket ikke noget indhold. Tilføj indhold til denne sektion ved hjælp af sidepanelet.

Tilmeld dig vores nyhedsbrev

Få de seneste oplysninger om vores produkter og særlige tilbud.