Hur man bygger en smart husdjurslåda med M5StickC Plus2

Introduktion

Med den snabba utvecklingen av Internet of Things (IoT) teknologi har Smart Pet Box framträtt som ett nytt tillämpningsområde. Husdjursägare är alltmer bekymrade över kvaliteten på sina husdjurs liv, men traditionella husdjurslådor saknar automatisk styrning och miljöövervakning. Smart Pet Box, genom att integrera sensorer och automatiska styrsystem, kan övervaka och justera husdjurens levnadsmiljö i realtid.

Detta projekt använder IoT-teknik och en mängd olika sensormoduler för att övervaka parametrar som temperatur, luftfuktighet, CO₂-koncentration och ljusstyrka inuti djurburen, vilket säkerställer att miljön alltid håller sig inom ett bekvämt intervall. Dessutom inkluderar projektet funktioner för fjärrstyrning via en molnplattform, vilket gör det möjligt för användare att visa miljödata och justera enheter som luftfuktare, fläktar och värmedynor när som helst. Smart Pet Box gör det enklare för djurbesättare att hantera sina husdjurs miljö, vilket förbättrar den övergripande livskvaliteten för husdjur.

M5StickC PLUS2

M5StickC PLUS2

Visa produkt

Vad är M5StickC Plus2?

M5StickC Plus2 är ett kompakt utvecklingskort som använder ESP32-chipet (ESP32-PICO-V3-02), med en rad integrerade sensorer och kringutrustning. Denna design gör det mycket lämpligt för en mängd olika inbäddade applikationer. Dess huvudfunktioner inkluderar:
  • Kompakt design: Mäter endast 54 mm × 54 mm, lätt att bära med sig och integrera i olika projekt.
  • Inbyggd skärm: En 1,14-tums färg TFT-skärm som stöder flera typsnitt och grafiska visningar.
  • Multifunktionella sensorer: Inkluderar accelerometer, gyroskop, temperatur- och fuktighetssensorer med mera, lämpliga för olika applikationsscenarier.
  • Inbyggd högtalare: Stöder ljuduppspelning, idealisk för ljudfeedback och larmsignaler.
  • Rika gränssnitt: Stöder GPIO, I2C, UART och andra kommunikationsgränssnitt, vilket underlättar perifer expansion.
  • Batteridriven: Integrerat batteri som stödjer långvarig drift, lämpligt för mobila applikationer.

Detta avsnitt beskriver hårdvara och bygger upp miljön

1. Använd hårdvara

M5StickC PLUS2

M5StickC PLUS2

Visa produkt
OV2640-kamera

OV2640-kamera

Visa produkt
SCD40 CO2-sensor

SCD40 CO2-sensor

Visa produkt
Relä (3 st)

Relä (3 st)

Visa produkt
M5Stack NCIR MLX90614

M5Stack NCIR MLX90614

Visa produkt
reptil-usb-pet-värmematta (1 st)

reptil-usb-pet-värmematta

Visa produkt
liten luftfuktare (1 st)

liten luftfuktare (1 st)

Visa produkt
USB UVB-lampa (1 st)

USB UVB-lampa (1 st)

Visa produkt
Ljussensor (Enhetsljus)

Ljussensor

Visa produkt
PaHub V2.1

PaHub V2.1

Visa produkt
PbHub V1.1

PbHub V1.1

Visa produkt

2. Anslutningsmetod

M5StickC Plus 2 och PaHub anslutning:

M5StickC Plus 2 är ansluten till PaHub expansionsmodul via I2C-bussen, med M5StickC Plus 2 strömsatt via USB-C.

PaHub och sensoranslutningar:

  • Kanal 0 på PaHub är ansluten till SCD40 CO2-sensor.
  • Kanal 1 på PaHub är ansluten till MLX90614 Infraröd Temperatursensor.
  • Kanal 2 på PaHub är ansluten till PbHub.

PbHub och Kringutrustning Anslutningar:

  • Kanal 0 på PbHub är ansluten till en ljussensor.
  • Kanal 2 på PbHub är ansluten till kameramodulen (används endast för ström).
  • Kanal 3 på PbHub styr fuktaren via ett relä.
  • Kanal 4 på PbHub styr värmemattan via ett relä.
  • Kanal 5 på PbHub styr UVA ljuset via ett relä.
  • Kanal 1 på PbHub styr fläkten via ett relä (valfritt).

Mjukvaruinstallation

1. Mjukvarumiljö

Utveckling Miljö

Använd VSCode + PlatformIO för programmering.

För några av biblioteken som används av sensorn, gå direkt till PIO Home -> Libraries -> Registry -> och sök efter ett nyckelord.

Nödvändiga bibliotek:

  • M5GFX – Används för grafik- och textvisning, styr M5Stack-skärmen.
  • M5Unified – Erbjuder ett enhetligt API-gränssnitt för enklare kontroll av M5Stack-enheter.
  • IRremote – För att ta emot och sända IR-signaler för kommunikation med andra enheter.
  • M5StickCPlus2 – Styr M5StickC Plus2-kortet, hanterar enhetens initiering och drift.
  • Sensirion I2C SCD4x – För att styra SCD40-miljögivaren och läsa temperatur, luftfuktighet och CO2-nivåer.
  • ArduinoJson – Används för att bearbeta och tolka JSON-data för att ladda upp sensordata till molnplattformen.
  • M5Unit-HUB och M5Unit-PbHub – För att interagera med PaHub- och PbHub-moduler, utöka I2C- och GPIO-gränssnitt och ansluta ytterligare externa enheter.
  • TimerOne – För att styra tidsintervaller och säkerställa regelbunden insamling av sensordata.
  • PubSubClient – Implementerar MQTT-kommunikation för att utbyta data med molnplattformen.
  • Adafruit MLX90614-bibliotek – Används för att styra MLX90614-infraröd temperaturgivare för att läsa temperaturen på botten av husdjurslådan.

2. Kodstruktur

  • WiFi-anslutning:Ansluter till nätverket via WiFi, vilket möjliggör åtkomst till molnplattformen för prenumeration och publicering av data.
  • MQTT Kommunikation:Använder PubSubClient-biblioteket för att implementera MQTT-kommunikation, laddar upp miljödata till molnplattformen och tar emot instruktioner från den.
  • Hämtning av sensordata: Varje sensors data läses periodiskt och laddas upp med en pollingmetod:
  1. SCD40: Läser temperatur, luftfuktighet och CO2-koncentration.
  2. MLX90614:Läser temperatursensordata (botten temperatur).
  • Enhetskontroll:Styr reläer för att slå på och av enheter, såsom värmedynor, luftfuktare, UVA-lampor, etc. Enheterna kan styras automatiskt eller manuellt genom att ställa in måltemperatur och mål luftfuktighet.

3. IoT-plattform och datauppladdning

  • Plattformsval: Vi använder Alibaba Cloud IoT för att ladda upp data och hantera enheter på distans.
  • Enhetsanslutning och bindning: Följ installationsguiden för att binda din enhet med molnplattformen.
  • Datauppladdning: Sensordata laddas upp via MQTT-protokollet 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("Mottagen 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("Mottagen target_humidity: ");
    Serial.println(target_humidity);
  }
}



✔ Kopierat!

4. Återuppringning för att ta emot data från molnplattformen

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



 ✔ Kopierat!

 

IoT Plattformsinställningar

1. Alibaba Cloud IoT:

  • Logga in på Alibaba Cloud IoT-plattformen, skapa ett nytt projekt och konfigurera enhetsnamn, produktnycklar osv.
  • Hämta klient-ID, användarnamn, lösenord och säkerställ att MQTT-kommunikationsinställningarna är korrekta.

2. Appkontroll:

  • Skapa en produkt på Alibaba Cloud IoT-plattformen och konfigurera gränssnittet för enhetskontroll.
  • Använd Alibaba Clouds SDK för att utveckla en mobilapp som möjliggör realtidsövervakning och fjärrstyrning av enheter.

Anteckningar och vanliga problem

1. Sensorinitialisering:

  • SCD40 CO2-sensorn kräver cirka 6 sekunder för initialisering innan exakta mätningar är tillgängliga.
  • MLX90614-sensorn kräver att I2C-bushastigheten ställs in på 100 kHz för att fungera korrekt.

2. Enhetskonflikter:

  • Se till att I2C-adresserna för PaHub och PbHub-modulerna är unika för att undvika konflikter.
  • Tilldela olika kanaler för sensorer och kringutrustning på PaHub för att undvika störningar.

3. Felsökning och Optimering:

  • Justera enhetsanslutningen och datauppladdningsintervaller för att undvika överdrivna datauppladdningar och minska belastningen på molnplattformen.
  • Om data inte tas emot på molnplattformen, säkerställ stabila enhetsanslutningar och kontrollera MQTT-inställningarna.

Användningsfall

Smart Pet Box-projektet erbjuder breda tillämpningar, särskilt för djurägare som vill hantera sina husdjurs hälsa och dagliga behov. Här är några vanliga användningsområden:

1. Miljö Övervakning och hantering:

Sensorerna (temperatur, luftfuktighet, CO2) inuti djurlådan kan kontinuerligt övervaka miljöparametrar och säkerställa att husdjurets levnadsförhållanden alltid är inom ett idealiskt intervall. Till exempel, om temperaturen blir för hög stängs värmedynan automatiskt av, eller om luftfuktigheten sjunker för lågt aktiveras luftfuktaren.

2. Fjärrkontroll och justeringar:

Djurägare som reser ofta eller arbetar långa timmar kan fjärrstyra sina husdjurs miljö via molnplattformen. De kan justera temperatur, luftfuktighet eller styra enheter som värmedynor, luftfuktare etc., allt via en mobilapp.

3. Automatisering:

Systemet kan automatiskt justera miljön baserat på förinställda mål för temperatur och luftfuktighet, vilket minskar behovet av manuell inblandning.

4. Djurövervakning:

Med OV2640-kameramodulen kan djurägare se livebilder av sina husdjur och deras omgivning. Molnplattformen möjliggör också interaktion med husdjuren via röst.

5. Mångsidig användning:

Oavsett om du är hemma, på kontoret eller på resa, erbjuder Smart Pet Box effektiv djurhantering, särskilt vid långa frånvaroperioder där djurägare inte behöver oroa sig för sina husdjurs välbefinnande.

Sammanfattningsvis förbättrar denna smarta husdjursbärare ägarnas hanteringsbekvämlighet och husdjurens livskvalitet genom automation, fjärrkontroll och realtidsövervakning.

Framtida möjligheter och expansion

Smart Pet Box handlar inte bara om att skapa en bekväm miljö för husdjur; det har också stor potential för framtida expansion och anpassning. Här är några spännande riktningar för framtida utveckling:

1. Vattenlevande husdjursmiljöer:

Även om systemet är designat för landlevande husdjur kommer det att utökas för att stödja vattenlevande husdjur genom att ersätta värmemattan med nedsänkbara värmestavar och lägga till undervattenstemperatursensorer för att upprätthålla optimala vattenförhållanden.

2. Gör-det-själv-funktioner och anpassning:

Smart Pet Box är designad för att vara flexibel. I framtiden kommer användare att kunna lägga till anpassade moduler för extra funktionalitet. Till exempel kan användare lägga till ventilationsfläktar, röstfunktioner och kamerauppgraderingar. Genom molnplattformen kan användare styra dessa funktioner på distans och till och med interagera med husdjur via röstkommunikation.

3. Hälsa Övervakning:

Framtida förbättringar kommer att inkludera hälsomonitoreringssystem såsom pulsmätare, rörelsedetektorer och kameror för att bedöma husdjurets aktivitet. Detta system kommer att meddela ägare om onormalt beteende och möjliggöra tidiga insatser.

4. Molnintelligens och automation:

Genom att utnyttja molndatabehandling och AI kommer Pet Box att använda prediktiv analys för att justera miljön baserat på historiska data. Detta minskar manuellt arbete och gör systemet mer intelligent och autonomt.

Slutsats

Detta projekt integrerar M5StickC Plus2 och olika sensorer för att skapa en Smart Pet Box som kan övervaka miljön, styra enheter och erbjuda fjärrhantering via molnplattformen. Användningen av PaHub och PbHub säkerställer effektiv polling av flera enheter, vilket garanterar en smidig och stabil drift av systemet.

 

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *

Sidopanel

Senaste inlägg

Denna sektion innehåller för närvarande inget innehåll. Lägg till innehåll i denna sektion med hjälp av sidofältet.

Registrera dig för vårt nyhetsbrev

Få den senaste informationen om våra produkter och specialerbjudanden.