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.
Co je M5StickC Plus2?
-
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
2. Způsob připojení
Připojení M5StickC Plus 2 a PaHub:
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í:
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í:
-
SCD40: Měří teplotu, vlhkost a koncentraci CO2.
-
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); } }
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); } }
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í
1. Životní prostředí Monitorování a správa:
2. Dálkové ovládání a nastavení:
3. Automatizace:
4. Monitorování domácích mazlíčků:
5. Všestranné použití:
Budoucí možnosti a rozšíření
1. Vodní prostředí pro domácí mazlíčky:
2. Funkce pro kutily a přizpůsobení:
3. Zdraví Monitorování:
4. Cloudová inteligence a automatizace:
Závěr