Kuinka rakentaa älykäs lemmikkilaatikko M5StickC Plus2:lla

Johdanto

Nopeasti kehittyvän esineiden internetin (IoT) teknologian myötä Älykäs lemmikkilaatikko on noussut uudeksi sovellusalueeksi. Lemmikkien omistajat ovat yhä huolestuneempia lemmikkiensä elämänlaadusta, mutta perinteisistä lemmikkilaatikoista puuttuu automaattinen ohjaus ja ympäristön valvonta. Älykäs lemmikkilaatikko yhdistämällä anturit ja automaattiset ohjausjärjestelmät pystyy valvomaan ja säätämään lemmikkien elinympäristöä reaaliajassa.

Tämä projekti hyödyntää IoT-teknologiaa ja erilaisia anturimoduuleja valvoakseen parametreja, kuten lämpötilaa, kosteutta, CO₂-pitoisuutta ja valon voimakkuutta lemmikkilaatikon sisällä, varmistaen, että ympäristö pysyy aina mukavuusalueella. Lisäksi projekti sisältää etäohjaustoiminnallisuuden pilvialustan kautta, jolloin käyttäjät voivat nähdä ympäristötiedot ja säätää laitteita, kuten kosteuttimia, tuulettimia ja lämpötyynyjä milloin tahansa. Smart Pet Box helpottaa lemmikinomistajien lemmikkiensä ympäristön hallintaa, parantaen lemmikkien elämänlaatua.

M5StickC PLUS2

M5StickC PLUS2

Näytä tuote

Mikä on M5StickC Plus2?

M5StickC Plus2 on kompakti kehityskortti, joka hyödyntää ESP32-sirua (ESP32-PICO-V3-02) ja sisältää joukon integroitua antureita ja oheislaitteita. Tämä rakenne tekee siitä erittäin sopivan monenlaisiin sulautettuihin sovelluksiin. Sen pääominaisuuksiin kuuluvat:
  • Kompakti muotoilu: Koko vain 54 mm × 54 mm, helppo kantaa ja integroida erilaisiin projekteihin.
  • Sisäänrakennettu näyttö: 1,14 tuuman värillinen TFT-näyttö, joka tukee useita fontteja ja graafisia näyttöjä.
  • Monitoimiset anturit: Sisältää kiihtyvyysanturin, gyroskoopin, lämpötila- ja kosteusanturit sekä muita, sopii monipuolisiin sovellusympäristöihin.
  • Sisäänrakennettu kaiutin: Tukee äänen toistoa, ihanteellinen äänipalautteeseen ja hälytyksiin.
  • Monipuoliset liitännät: Tukee GPIO-, I2C-, UART- ja muita viestintäliitäntöjä, helpottaen oheislaitteiden laajentamista.
  • Paristokäyttöinen: Integroitu akku tukee pitkäaikaista käyttöä, sopii mobiilisovelluksiin.

Tässä osassa kuvataan laitteisto ja rakennetaan ympäristö

1. Käytetty laitteisto

M5StickC PLUS2

M5StickC PLUS2

Näytä tuote
OV2640-kamera

OV2640-kamera

Näytä tuote
SCD40 CO2 -anturi

SCD40 CO2 -anturi

Näytä tuote
Rele (3 kpl)

Rele (3 kpl)

Näytä tuote
M5Stack NCIR MLX90614

M5Stack NCIR MLX90614

Näytä tuote
matelija-usb-lemmikinlämmitin (1 kpl)

matelija-usb-lemmikinlämmitin

Näytä tuote
pieni kostutin (1 kpl)

pieni kostutin (1 kpl)

Näytä tuote
USB UVB -lamppu (1 kpl)

USB UVB -lamppu (1 kpl)

Näytä tuote
Valoanturi (yksikkövalo)

Valoanturi

Näytä tuote
PaHub V2.1

PaHub V2.1

Näytä tuote
PbHub V1.1

PbHub V1.1

Näytä tuote

2. Yhdistystapa

M5StickC Plus 2 ja PaHub-yhteys:

M5StickC Plus 2 on yhdistetty PaHub-laajennusmoduuliin I2C-väylän kautta, ja M5StickC Plus 2 saa virtansa USB-C:stä.

PaHubin ja anturien liitännät:

  • PaHubin kanava 0 on kytketty SCD40 CO2 -anturiin.
  • PaHubin kanava 1 on kytketty MLX90614 Infrapunalämpötila-anturiin.
  • PaHubin kanava 2 on kytketty PbHubiin.

PbHub ja Oheislaite Liitännät:

  • PbHubin kanava 0 on kytketty valosensoriin.
  • PbHubin kanava 2 on kytketty kameramoduuliin (käytetään vain virran saantiin).
  • PbHubin kanava 3 ohjaa kosteudensäädintä releen kautta.
  • PbHubin kanava 4 ohjaa lämpötyynyä releen kautta.
  • PbHubin kanava 5 ohjaa UVA-valoa releen kautta.
  • PbHubin kanava 1 ohjaa tuuletinta releen kautta (valinnainen).

Ohjelmiston asennus

1. Ohjelmistoympäristö

Kehitys Ympäristö

Käytä VSCodea + PlatformIO:ta ohjelmointiin.

Joidenkin anturin käyttämien kirjastojen osalta siirry suoraan kohtaan PIO Home -> Libraries -> Registry -> ja hae avainsanalla.

Vaaditut kirjastot:

  • M5GFX – Käytetään grafiikan ja tekstin näyttöön, ohjaten M5Stack-näyttöä.
  • M5Unified – Tarjoaa yhtenäisen API-rajapinnan M5Stack-laitteiden helpompaan ohjaukseen.
  • IRremote – IR-signaalien vastaanottoon ja lähetykseen muiden laitteiden kanssa kommunikointiin.
  • M5StickCPlus2 – Ohjaa M5StickC Plus2 -levyä, halliten laitteen aloituksen ja toiminnan.
  • Sensirion I2C SCD4x – SCD40-ympäristöanturin ohjaukseen, lukemaan lämpötila, kosteus ja CO2-tasot.
  • ArduinoJson – Käytetään JSON-datan käsittelyyn ja jäsentämiseen anturidatan lataamiseksi pilvialustalle.
  • M5Unit-HUB ja M5Unit-PbHub – PaHub- ja PbHub-moduulien kanssa vuorovaikutukseen, laajentaen I2C- ja GPIO-liitäntöjä sekä liittäen lisälaitteita.
  • TimerOne – Aikavälien hallintaan, varmistaen säännöllisen anturidatan keruun.
  • PubSubClient – Toteuttaa MQTT-viestinnän tietojen vaihtoon pilvialustan kanssa.
  • Adafruit MLX90614 Library – Käytetään MLX90614-infrapunalämpötila-anturin ohjaukseen, lukemaan lemmikkilaatikon pohjan lämpötila.

2. Koodin rakenne

  • WiFi-yhteys:Yhdistää verkkoon WiFin kautta, mahdollistaen pääsyn pilvialustalle tietojen tilaamiseen ja julkaisuun.
  • MQTT Viestintä:Käyttää PubSubClient-kirjastoa MQTT-viestinnän toteuttamiseen, ympäristötietojen lataamiseen pilvialustalle ja ohjeiden vastaanottamiseen sieltä.
  • Anturidatan haku: Jokaisen anturin tiedot luetaan säännöllisesti ja lähetetään kyselymenetelmällä:
  1. SCD40: Lukee lämpötilan, kosteuden ja CO2-pitoisuuden.
  2. MLX90614:Lukee lämpötila-anturin tiedot (alalämpötila).
  • Laitteen ohjaus:Ohjaa releitä laitteiden, kuten lämmitystyynyjen, ilmankostuttimien, UVA-valojen yms. päälle ja pois kytkemiseksi. Laitteita voidaan ohjata automaattisesti tai manuaalisesti asettamalla tavoitelämpötila ja -kosteus.

3. IoT-alusta ja tietojen lähetys

  • Alustan valinta: Käytämme Alibaba Cloud IoT-palvelua tietojen lähettämiseen ja laitteiden etähallintaan.
  • Laitteen yhdistäminen ja sitominen: Noudata asennusopasta sitomaan laitteesi pilvialustaan.
  • Tietojen lähetys: Anturidata lähetetään MQTT-protokollan kautta JSON-muodossa.
// 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("Vastaanotettu 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("Vastaanotettu target_humidity: ");
    Serial.println(target_humidity);
  }
}



✔ Kopioitu!

4. Takaisinkutsu tietojen vastaanottamiseksi pilvialustalta

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



 ✔ Kopioitu!

 

IoT Alustan määritys

1. Alibaba Cloud IoT:

  • Kirjaudu Alibaba Cloud IoT -alustalle, luo uusi projekti ja määritä laitenimet, tuoteavaimet jne.
  • Hae asiakastunnus, käyttäjätunnus, salasana ja varmista, että MQTT-yhteysasetukset ovat oikein.

2. Sovelluksen ohjaus:

  • Luo tuote Alibaba Cloud IoT -alustalle ja määritä laiteohjausliittymä.
  • Käytä Alibaba Cloudin SDK:ta mobiilisovelluksen kehittämiseen, joka mahdollistaa reaaliaikaisen seurannan ja etäohjauksen.

Huomautuksia ja yleisiä ongelmia

1. Anturin alustaminen:

  • SCD40 CO2 -anturi tarvitsee noin 6 sekuntia alustukseen ennen tarkkojen lukemien saamista.
  • MLX90614-anturi vaatii I2C-väylän nopeudeksi 100 kHz toimiakseen oikein.

2. Laiteristiriidat:

  • Varmista, että PaHub- ja PbHub-moduulien I2C-osoitteet ovat yksilöllisiä ristiriitojen välttämiseksi.
  • Määritä eri kanavat antureille ja oheislaitteille PaHub-laitteessa häiriöiden välttämiseksi.

3. Vianetsintä ja Optimointi:

  • Säädä laitteen yhteys- ja datan lähetysvälejä välttääksesi liiallista datan lataamista ja vähentääksesi pilvialustan kuormitusta.
  • Jos dataa ei vastaanoteta pilvialustalla, varmista laitteiden vakaat yhteydet ja tarkista MQTT-asetukset.

Käyttötapaukset

Smart Pet Box -projekti tarjoaa laajoja sovelluksia, erityisesti lemmikinomistajille, jotka haluavat hallita lemmikkiensä terveyttä ja päivittäisiä tarpeita. Tässä on joitakin yleisiä käyttötapauksia:

1. Ympäristö Valvonta ja hallinta:

Lämpötila-, kosteus- ja CO2-antureiden avulla lemmikkilaatikon sisällä voidaan jatkuvasti valvoa ympäristöparametreja, varmistaen että lemmikin elinolosuhteet pysyvät aina ihanteellisella tasolla. Esimerkiksi jos lämpötila nousee liian korkeaksi, lämpötyyny kytkeytyy automaattisesti pois päältä, tai jos kosteus laskee liian alhaiseksi, ilmankostutin aktivoituu.

2. Etäohjaus ja säädöt:

Lemmikinomistajat, jotka matkustavat usein tai työskentelevät pitkiä päiviä, voivat hallita lemmikkiensä ympäristöä etänä pilvialustan kautta. He voivat säätää lämpötilaa, kosteutta tai ohjata laitteita kuten lämpötyynyjä, ilmankostuttimia jne. kaikki mobiilisovelluksella.

3. Automaatio:

Järjestelmä voi automaattisesti säätää ympäristöä ennalta asetettujen tavoitelämpötila- ja kosteusarvojen mukaan, vähentäen manuaalisen säädön tarvetta.

4. Lemmikkien valvonta:

OV2640-kameramoduulin avulla lemmikinomistajat voivat katsella lemmikkiensä ja niiden ympäristön live-kuvaa. Pilvialusta mahdollistaa myös vuorovaikutuksen lemmikkien kanssa äänen välityksellä.

5. Monipuolinen käyttö:

Olitpa kotona, toimistossa tai matkalla, Smart Pet Box tarjoaa tehokkaan lemmikkien hallinnan, erityisesti pitkiä poissaoloja varten, jolloin lemmikinomistajien ei tarvitse huolehtia lemmikkiensä hyvinvoinnista.

Kaiken kaikkiaan tämä älykäs lemmikkikuljetin parantaa lemmikinomistajien hallinnan mukavuutta sekä lemmikkien elämänlaatua automaation, etäohjauksen ja reaaliaikaisen valvonnan avulla.

Tulevaisuuden mahdollisuudet ja laajennukset

Älykäs Lemmikkilaatikko ei ole pelkästään mukavan ympäristön luomista lemmikeille; se tarjoaa myös valtavan potentiaalin tulevalle laajennukselle ja mukauttamiselle. Tässä on joitakin jännittäviä suuntia tulevalle kehitykselle:

1. Vesieläinten ympäristöt:

Vaikka järjestelmä on suunniteltu maalla eläville lemmikeille, sitä laajennetaan tukemaan vesieläimiä korvaamalla lämmitysalusta upotettavilla lämmitysvastuksilla ja lisäämällä vedenalaisia lämpötila-antureita ihanteellisten vesielinolosuhteiden ylläpitämiseksi.

2. Tee-se-itse-ominaisuudet ja mukauttaminen:

Älykäs Lemmikkilaatikko on suunniteltu joustavaksi. Tulevaisuudessa käyttäjät voivat lisätä mukautettuja moduuleja lisätoiminnallisuutta varten. Esimerkiksi käyttäjät voivat lisätä ilmanvaihtotuuletimia, äänitoimintoja ja kamerapäivityksiä. Pilvialustan kautta käyttäjät voivat ohjata näitä ominaisuuksia etänä ja jopa olla vuorovaikutuksessa lemmikkien kanssa ääniviestinnän avulla.

3. Terveys Valvonta:

Tulevat parannukset sisältävät terveydenvalvontajärjestelmiä, kuten sykemittareita, liikkeentunnistimia ja kameroita lemmikin aktiivisuuden arvioimiseksi. Järjestelmä ilmoittaa omistajille poikkeavista käyttäytymismalleista ja mahdollistaa varhaisen puuttumisen.

4. Pilviäly ja automaatio:

Hyödyntämällä pilvilaskentaa ja tekoälyä, Lemmikkilaatikko käyttää ennakoivaa analytiikkaa säätääkseen ympäristöä historiallisten tietojen perusteella. Tämä vähentää manuaalista syöttöä ja tekee järjestelmästä älykkäämmän ja itsenäisemmän.

Johtopäätös

Tämä projekti yhdistää M5StickC Plus2 ja erilaiset anturit luodakseen Älykkään Lemmikkilaatikon, joka pystyy valvomaan ympäristöä, ohjaamaan laitteita ja tarjoamaan etähallintaa pilvialustan kautta. PaHubin ja PbHubin käyttö takaa tehokkaan useiden laitteiden kyselyn, varmistaen järjestelmän sujuvan ja vakaan toiminnan.

 

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Sivupalkki

Uusin julkaisu

Tässä osiossa ei ole tällä hetkellä sisältöä. Lisää sisältöä tähän osioon käyttämällä sivupalkkia.

Rekisteröidy uutiskirjeeseemme

Hanki viimeisimmät tiedot tuotteistamme ja erikoistarjouksistamme.