Jak postavit chytrou krabičku pro domácí mazlíčky s M5StickC Plus2

Zavedení

S rychlým rozvojem technologie Internetu věcí (IoT) se Smart Pet Box stal novou oblastí aplikace. Majitelé domácích mazlíčků se stále více zajímají o kvalitu života svých mazlíčků, ale tradiční krabice pro mazlíčky postrádají automatizovanou kontrolu a monitorování prostředí. Smart Pet Box, integrací senzorů a automatizovaných řídicích systémů, je schopen sledovat a upravovat životní prostředí mazlíčků v reálném čase.

Tento projekt využívá technologii IoT a různé senzorové moduly k monitorování parametrů, jako je teplota, vlhkost, koncentrace CO₂ a intenzita světla uvnitř boxu pro domácí mazlíčky, čímž zajišťuje, že prostředí vždy zůstává v pohodlném rozmezí. Navíc projekt zahrnuje funkci dálkového ovládání prostřednictvím cloudové platformy, která uživatelům umožňuje sledovat environmentální data a nastavovat zařízení, jako jsou zvlhčovače, ventilátory a vyhřívací podložky kdykoli. Smart Pet Box usnadňuje majitelům domácích mazlíčků spravovat prostředí svých mazlíčků, čímž zlepšuje celkovou kvalitu života domácích zvířat.

M5StickC PLUS2

M5StickC PLUS2

Zobrazit produkt

Co je M5StickC Plus2?

M5StickC Plus2 je kompaktní vývojová deska, která využívá čip ESP32 (ESP32-PICO-V3-02) a obsahuje řadu integrovaných senzorů a periferií. Tento design ji činí vysoce vhodnou pro širokou škálu vestavěných aplikací. Mezi její hlavní vlastnosti patří:
  • Kompaktní design: S rozměry pouze 54mm × 54mm je snadno přenosný a integrovatelný do různých projektů.
  • Vestavěný displej: Barevný TFT displej o velikosti 1,14 palce podporující více fontů a grafické zobrazení.
  • Multifunkční senzory: Zahrnuje akcelerometr, gyroskop, senzory teploty a vlhkosti a další, vhodné pro různé aplikační scénáře.
  • Vestavěný reproduktor: Podporuje přehrávání zvuku, ideální pro zvukovou zpětnou vazbu a alarmové funkce.
  • Bohaté rozhraní: Podporuje GPIO, I2C, UART a další komunikační rozhraní, usnadňující rozšíření periferií.
  • Na baterii: Integrovaná baterie podporuje dlouhodobý provoz, vhodná pro mobilní aplikace.

Tato sekce popisuje hardware a vytváří prostředí

1. Použitý hardware

M5StickC PLUS2

M5StickC PLUS2

Zobrazit produkt
Kamera OV2640

Kamera OV2640

Zobrazit produkt
Senzor CO2 SCD40

Senzor CO2 SCD40

Zobrazit produkt
Relé (3 ks)

Relé (3 ks)

Zobrazit produkt
M5Stack NCIR MLX90614

M5Stack NCIR MLX90614

Zobrazit produkt
vyhřívací podložka pro plazy USB (1 ks)

vyhřívací podložka pro plazy s USB

Zobrazit produkt
malý zvlhčovač (1 ks)

malý zvlhčovač (1 ks)

Zobrazit produkt
USB UVB lampa (1 ks)

USB UVB lampa (1 ks)

Zobrazit produkt
Senzor světla (jednotka světla)

Světelný senzor

Zobrazit produkt
PaHub V2.1

PaHub V2.1

Zobrazit produkt
PubHub V1.1

PubHub V1.1

Zobrazit produkt

2. Způsob připojení

Připojení M5StickC Plus 2 a PaHub:

M5StickC Plus 2 je připojen k rozšiřujícímu modulu PaHub přes sběrnici I2C, přičemž M5StickC Plus 2 je napájen přes USB-C.

Připojení PaHub a senzorů:

  • Kanál 0 na PaHub je připojen k SCD40 CO2 senzoru.
  • Kanál 1 na PaHub je připojen k MLX90614 Infračervenému teplotnímu senzoru.
  • Kanál 2 na PaHub je připojen k PbHub.

PbHub a Obvodový Připojení:

  • Kanál 0 na PbHub je připojen k světelnému senzoru.
  • Kanál 2 na PbHub je připojen k modulu kamery (používá se pouze pro napájení).
  • Kanál 3 na PbHub ovládá zvlhčovač přes relé.
  • Kanál 4 na PbHub ovládá ohřívací podložku přes relé.
  • Kanál 5 na PbHub ovládá UVA světlo přes relé.
  • Kanál 1 na PbHub ovládá ventilátor přes relé (volitelné).

Nastavení softwaru

1. Softwarové prostředí

Rozvoj Prostředí

Použijte VSCode + PlatformIO pro programování.

Pro některé z knihoven používaných senzorem přejděte přímo na PIO Home -> Libraries -> Registry -> a vyhledejte klíčové slovo.

Požadované knihovny:

  • M5GFX – Používá se pro zobrazení grafiky a textu, ovládání displeje M5Stack.
  • M5Unified – Poskytuje jednotné API rozhraní pro snadnější ovládání zařízení M5Stack.
  • IRremote – Pro přijímání a vysílání IR signálů pro komunikaci s jinými zařízeními.
  • M5StickCPlus2 – Řídí desku M5StickC Plus2, spravuje inicializaci a provoz zařízení.
  • Sensirion I2C SCD4x – Pro ovládání environmentálního senzoru SCD40 ke čtení teploty, vlhkosti a hladin CO2.
  • ArduinoJson – Používá se pro zpracování a parsování JSON dat k nahrávání dat ze senzorů na cloudovou platformu.
  • M5Unit-HUB a M5Unit-PbHub – Pro interakci s moduly PaHub a PbHub, rozšíření rozhraní I2C a GPIO a připojení dalších externích zařízení.
  • TimerOne – Pro řízení časových intervalů, zajišťující pravidelný sběr dat ze senzorů.
  • PubSubClient – Implementuje MQTT komunikaci pro výměnu dat s cloudovou platformou.
  • Knihovna Adafruit MLX90614 – Používá se k ovládání infračerveného teplotního senzoru MLX90614 pro čtení spodní teploty krabičky pro domácí mazlíčky.

2. Struktura kódu

  • Připojení WiFi: Připojuje se k síti přes WiFi, což umožňuje přístup k cloudové platformě pro odběr a publikaci dat.
  • MQTT komunikace:Používá knihovnu PubSubClient k implementaci MQTT komunikace, nahrávání environmentálních dat na cloudovou platformu a přijímání pokynů z ní.
  • Získávání dat ze senzoru: Každý senzor je pravidelně čten a data jsou nahrávána pomocí metody dotazování:
  1. SCD40: Měří teplotu, vlhkost a koncentraci CO2.
  2. MLX90614:Čte data ze snímače teploty (spodní teplota).
  • Ovládání zařízení:Ovládá relé pro zapínání a vypínání zařízení, jako jsou vyhřívací podložky, zvlhčovače, UVA světla atd. Zařízení lze ovládat automaticky nebo ručně nastavením cílové teploty a vlhkosti.

3. IoT platforma a nahrávání dat

  • Výběr platformy: Používáme Alibaba Cloud IoT k nahrávání dat a vzdálené správě zařízení.
  • Připojení a spárování zařízení: Postupujte podle návodu k nastavení a spárujte své zařízení s cloudovou platformou.
  • Nahrávání dat: Data ze senzorů jsou nahrávána pomocí protokolu MQTT ve formátu 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()) {
    cilova_teplota = doc["params"]["target_temperature"];
    Serial.print("Přijatá cílová teplota: ");
    Serial.println(cílová_teplota);
  }
  // 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("Přijatá cílová vlhkost: ");
    Serial.println(cílová_vlhkost);
  }
}



✔ Zkopírováno!

4. Zpětné volání pro příjem dat z cloudové platformy

// 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()) {
    cilova_teplota = doc["params"]["target_temperature"];
    Serial.print("Přijatá cílová teplota: ");
    Serial.println(cílová_teplota);
  }
  // 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("Přijatá cílová vlhkost: ");
    Serial.println(cílová_vlhkost);
  }
}



 ✔ Zkopírováno!

 

Internet věcí Konfigurace platformy

1. Alibaba Cloud Internet věcí:

  • Přihlaste se do platformy Alibaba Cloud IoT, vytvořte nový projekt a nakonfigurujte názvy zařízení, produktové klíče atd.
  • Získejte ID klienta, uživatelské jméno, heslo a ujistěte se, že nastavení komunikace MQTT jsou správná.

2. Ovládání aplikací:

  • Vytvořte produkt na platformě Alibaba Cloud IoT a nakonfigurujte rozhraní pro ovládání zařízení.
  • Použijte SDK Alibaba Cloud k vývoji mobilní aplikace, která umožňuje monitorování v reálném čase a vzdálené ovládání zařízení.

Poznámky a běžné problémy

1. Inicializace senzoru:

  • Senzor CO2 SCD40 vyžaduje přibližně 6 sekund pro inicializaci, než jsou k dispozici přesná měření.
  • Senzor MLX90614 vyžaduje, aby byla rychlost sběrnice I2C nastavena na 100 kHz, aby správně fungoval.

2. Konflikty zařízení:

  • Ujistěte se, že I2C adresy modulů PaHub a PbHub jsou jedinečné, aby se předešlo konfliktům.
  • Přiřaďte různé kanály pro senzory a periferie na PaHub, aby se předešlo rušení.

3. Ladění a Optimalizace:

  • Upravte intervaly připojení zařízení a nahrávání dat, aby se zabránilo nadměrnému nahrávání dat a snížilo zatížení cloudové platformy.
  • Pokud nejsou na cloudové platformě přijata data, zajistěte stabilní připojení zařízení a zkontrolujte nastavení MQTT.

Případy použití

Projekt Smart Pet Box nabízí široké využití, zejména pro majitele domácích mazlíčků, kteří chtějí spravovat zdraví a každodenní potřeby svých zvířat. Zde jsou některé běžné případy použití:

1. Životní prostředí Monitorování a správa:

Senzory (teplota, vlhkost, CO2) uvnitř boxu pro domácí mazlíčky mohou nepřetržitě sledovat environmentální parametry, což zajišťuje, že životní podmínky mazlíčka jsou vždy v ideálním rozmezí. Například pokud teplota stoupne příliš vysoko, topná podložka se automaticky vypne, nebo pokud vlhkost klesne příliš nízko, aktivuje se zvlhčovač.

2. Dálkové ovládání a nastavení:

Majitelé domácích mazlíčků, kteří často cestují nebo pracují dlouhé hodiny, mohou vzdáleně spravovat prostředí svých mazlíčků prostřednictvím cloudové platformy. Mohou upravovat teplotu, vlhkost nebo ovládat zařízení jako vyhřívací podložky, zvlhčovače atd., to vše přes mobilní aplikaci.

3. Automatizace:

Systém může automaticky upravit prostředí na základě přednastavených cílových hodnot teploty a vlhkosti, čímž snižuje potřebu ručního zásahu.

4. Monitorování domácích mazlíčků:

S modulem kamery OV2640 mohou majitelé domácích mazlíčků sledovat živý přenos svých mazlíčků a jejich okolí. Cloudová platforma také umožňuje interakci s mazlíčky pomocí hlasu.

5. Všestranné použití:

Ať už doma, v kanceláři nebo na cestách, Smart Pet Box poskytuje efektivní správu domácích mazlíčků, zejména při dlouhodobé nepřítomnosti, kdy se majitelé nemusí obávat o pohodu svých zvířat.

Celkově tento chytrý přepravník pro domácí mazlíčky zlepšuje pohodlí správy majitelů domácích zvířat a kvalitu života mazlíčků prostřednictvím automatizace, dálkového ovládání a monitorování v reálném čase.

Budoucí možnosti a rozšíření

Smart Pet Box není jen o vytváření pohodlného prostředí pro domácí mazlíčky; nabízí také obrovský potenciál pro budoucí rozšíření a přizpůsobení. Zde jsou některé vzrušující směry pro budoucí vývoj:

1. Vodní prostředí pro domácí mazlíčky:

Ačkoli je systém navržen pro suchozemská zvířata, bude rozšířen tak, aby podporoval vodní mazlíčky nahrazením topné podložky ponornými topnými tyčemi a přidáním podvodních teplotních senzorů pro udržení ideálních vodních podmínek.

2. Funkce pro kutily a přizpůsobení:

Smart Pet Box je navržen tak, aby byl flexibilní. V budoucnu budou uživatelé moci přidávat vlastní moduly pro rozšířenou funkčnost. Například uživatelé mohou přidat větrací ventilátory, hlasové funkce a vylepšení kamer. Prostřednictvím cloudové platformy mohou uživatelé tyto funkce ovládat na dálku a dokonce komunikovat se svými mazlíčky hlasem.

3. Zdraví Monitorování:

Budoucí vylepšení budou zahrnovat systémy monitorování zdraví, jako jsou monitory srdečního tepu, detektory pohybu a kamery pro hodnocení aktivity domácích mazlíčků. Tento systém bude upozorňovat majitele na abnormální chování a umožní včasný zásah.

4. Cloudová inteligence a automatizace:

Využitím cloud computingu a umělé inteligence bude Pet Box využívat prediktivní analytiku k úpravě prostředí na základě historických dat. To sníží manuální zásahy a učiní systém chytřejším a autonomnějším.

Závěr

Tento projekt integruje M5StickC Plus2 a různé senzory k vytvoření Smart Pet Box, který je schopen monitorovat prostředí, ovládat zařízení a poskytovat vzdálenou správu přes cloudovou platformu. Použití PaHub a PbHub zajišťuje efektivní dotazování více zařízení, což zaručuje plynulý a stabilní provoz systému.

 

Zanechte komentář

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *

Přihlaste se k odběru našeho newsletteru

Získejte nejnovější informace o našich produktech a speciálních nabídkách.