Orodha ya maudhui:

UbiDots-Kuunganisha ESP32 na Kuchapisha Takwimu nyingi za Sensorer: Hatua 6
UbiDots-Kuunganisha ESP32 na Kuchapisha Takwimu nyingi za Sensorer: Hatua 6

Video: UbiDots-Kuunganisha ESP32 na Kuchapisha Takwimu nyingi za Sensorer: Hatua 6

Video: UbiDots-Kuunganisha ESP32 na Kuchapisha Takwimu nyingi za Sensorer: Hatua 6
Video: Lesson 45: Measure temperature and Pressure with BME280 display on LCD1602 and LCD2004 with Arduino 2024, Novemba
Anonim
UbiDots-Kuunganisha ESP32 na Kuchapisha Takwimu nyingi za Sensorer
UbiDots-Kuunganisha ESP32 na Kuchapisha Takwimu nyingi za Sensorer

ESP32 naESP 8266 ni SoC inayojulikana sana katika uwanja wa IoT. Hizi ni aina ya neema ya miradi ya IoT. ESP 32 ni kifaa kilicho na WiFi iliyojumuishwa na BLE. Toa tu usanidi wako wa SSID, nywila na IP na ujumuishe vitu kwenye wingu. Hapa katika hii inayoweza kufundishwa, Tutafakari kupitia maneno kadhaa ya msingi ya IoT kama jukwaa la IoT, MQTT, milango ya mateka n.k. wacha tuipitie

  • Usanifu wa IoT kwa maneno rahisi sana una kifaa kilichopachikwa na jukwaa la IoT kuweka kifaa kwenye wingu. Hapa tunatumia jukwaa la UbiDots IoT kuibua data ya sensorer.
  • Kusimamia mipangilio ya IP na sifa za Mtumiaji inaweza kuwa maumivu ya kichwa kwa mtumiaji. Je! Ikiwa Mtumiaji anataka kubadilisha sifa za WiFi? Je! Ikiwa mtumiaji anataka kubadili mipangilio ya IP ya DHCP / Static? Kuangaza ESP32 kila wakati sio kuaminika na hata suluhisho la shida hizi. Kwa hivyo tutakuwa tukipitia bandari ya wafungwa kuhifadhi vitambulisho vya WiFi na mazungumzo mengine.
  • MQTT sasa inakuwa neno la kawaida sana katika ulimwengu wa IoT. imezidi ombi na majibu (HTTP) na Chapisha na Jisajili kwa sababu ya usanifu wa haraka, thabiti na konda.

Hapa katika hii inayoweza kufundishwa, tutakuwa tukionyesha.

  • Kutoa sifa za WiFi na MQTT kutumia Portal Captive.
  • Kuchapisha na Kuandikisha data nyingi za Sensor kwa UbiDots.
  • Kusoma data ya Sensorer kutoka kwa Sensorer za Wavu na sensorer za unyevu.
  • Kukaribisha fomu ya wavuti kutoka kwa ESP32.
  • Kusoma na Kuandika kutoka kwa SPIFFS ESP32.

Hatua ya 1: Uainishaji wa vifaa na programu

Uainishaji wa vifaa na programu
Uainishaji wa vifaa na programu
  • ESP32 WiFi / BLE
  • Joto lisilo na waya na Sura ya Unyevu

Uainishaji wa Programu

Arduino IDE

Hatua ya 2: Kuunda Portal ya Mateka

Kuunda Portal ya Mateka
Kuunda Portal ya Mateka
Kuunda Portal ya Mateka
Kuunda Portal ya Mateka
Kuunda Portal ya Mateka
Kuunda Portal ya Mateka

Sehemu ya wafungwa ni ukurasa wa wavuti ambao huonyeshwa kwa watumiaji wapya waliounganishwa kabla ya kupewa ufikiaji mpana wa rasilimali za mtandao. Hapa tunatumikia kurasa tatu za wavuti kuchagua kati ya DHCP na Mipangilio ya IP tuli. tunaweza kufafanua anwani ya IP kwa ESP kwa njia mbili.

  • Anwani ya IP ya DHCP - ni njia ya kupeana anwani ya IP kwa kifaa. Anwani ya IP ya default ya ESP ni 192.168.4.1
  • Anwani ya IP tuli-kupeana anwani ya IP ya kudumu kwa kifaa chetu cha mtandao. kutoa IP tuli kwa kifaa tunachohitaji kufafanua anwani ya IP, anwani ya lango, na kinyago cha subnet.

Ukurasa wa wavuti wa kwanza umeshikiliwa mnamo 192.168.1.77. Hapa Mtumiaji hutolewa na vifungo vya redio kuchagua kati ya mipangilio ya DHCP na IP ya tuli. Katika ukurasa wa wavuti unaofuata, lazima tupe habari zinazohusiana na IP ili kuendelea zaidi.

Nambari ya HTML

Nambari ya HTML ya kurasa za wavuti inaweza kupatikana katika hifadhi hii ya Github. Unaweza kutumia IDE yoyote au mhariri wa maandishi kama Sublime au notepad ++ kutengeneza kurasa za wavuti za HTML.

  • Kwanza Unda ukurasa wa wavuti wa HTML ulio na vifungo viwili vya redio kuchagua kati ya DHCP na Mipangilio ya IP ya tuli.
  • Sasa tengeneza kitufe cha kuwasilisha majibu yako
  • Toa jina kwa vifungo vya redio.
  • Darasa la seva ya Wavuti ya ESP itachukua majina haya kama hoja na kupata majibu ya vifungo vya redio kutumia hoja hizi
  • Sasa ingiza kitufe cha 'SUBMIT' ili kutuma majibu kwenye kifaa. Katika kurasa zingine za wavuti, tuna masanduku ya maandishi.
  • Toa thamani ya jina na aina ya Ingizo kwenye sanduku la maandishi na ongeza kitufe cha kuwasilisha kwa 'SUBMIT' wasilisha majibu.
  • Unda kitufe cha 'Rudisha' ili kuweka upya yaliyomo kwenye uwanja wa maandishi.

Hatua ya 3: Kutoa Hati za WiFi na UbiDots

Kutoa Hati za WiFi na UbiDots
Kutoa Hati za WiFi na UbiDots

Shida kuu hufanyika wakati unasimamia vitambulisho vya WiFi. Ingawa tuna maktaba ya WiFiMulti kwa mahali ambapo tunaweza kutoa SSID nyingi na nywila kwa kifaa na kifaa kitaunganisha kwenye mtandao unaopatikana. Lakini, vipi ikiwa mtandao haupatikani kwenye orodha ya WiFiMulti. Kuangaza kifaa cha ESP32 kila wakati sio suluhisho la kuaminika.

Ili kutatua shida hii, tunashikilia ukurasa wa wavuti ambapo mtumiaji anaweza kuwasilisha SSID na Nenosiri la mtandao unaopatikana. Inafanya kazi kama ifuatavyo.

  • Ukurasa wa wavuti umeshikiliwa kwa IP tuli au IP ya DHCP kama ilivyochaguliwa na mtumiaji kutoka kwa lango la wafungwa
  • Ukurasa huu wa wavuti una sehemu za maandishi kuingia SSID, nywila, na kitambulisho cha ishara cha UBIDOTS kuunganisha kifaa kwa UbiDots.
  • Ingiza SSID na nenosiri la WiFi yako ya ndani kwenye uwanja wa kuingiza, Ingiza kitambulisho cha ishara cha UbiDot na uingie SUBMIT
  • Hati hizi zinahifadhiwa katika EEPROM ya ESP32
  • Baada ya Kifaa cha sekunde 60 kitajiondoa kiatomati kutoka kwa AP
  • Wakati mwingine utakapowasha kifaa, Mtumiaji haifai kufuata utaratibu huu, Kifaa kitachukua kiotomatiki hati za mtumiaji kutoka EEPROM na kuendelea na kuchapisha usomaji wa sensa kwa UbiDots.

Hatua ya 4: Kuchapisha Usomaji wa Sensorer kwa UbiDots

Hapa tunatumia sensorer za Joto na Unyevu zisizo na waya na kifaa cha ESP 32 kupata data ya joto na Unyevu. Tunatuma data kwa UbiDots kutumia itifaki ya MQTT. MQTT ifuatavyo utaratibu wa kuchapisha na usajili badala ya ombi na majibu. Ni haraka na ya kuaminika kuliko HTTP. Hii inafanya kazi kama ifuatavyo.

  • Tunatumia Mpangaji Kazi Kupanga kazi kama kuchota data kutoka kwa sensorer, Kuchapisha usomaji wa sensa, Kujiandikisha kwa mada ya MQTT.
  • Kwanza, ni pamoja na faili za kichwa cha Mratibu wa Kazi, ni mfano na hupanga majukumu.
  • Tumepanga majukumu mawili yakimaanisha shughuli mbili tofauti za kudhibiti.

#fafanua _MAJADILI_YA_KUCHEZA # ni pamoja na

Mratibu ts;

// --------- Kazi ------------ // Kazi tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, uwongo, NULL, & taskSensorDisable); Kazi tWiFi (10 * TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, uwongo, NULL, & taskWiFiDisable);

Kazi 1 ni kusoma thamani ya sensa kazi hii inaendesha kwa sekunde 1 hadi itakapofikia muda wa sekunde 10

  • Task1 inapofikia wakati wake wa nje Tunaunganisha kwa Wifi wa karibu na broker wa MQTT.
  • Sasa Task 2 imewezeshwa na tunalemaza Task 1
  • Kazi 2 ni kwa kuchapisha data ya sensorer kwa brokta wa UbiDots MQTT kazi hii inaendeshwa kwa sekunde 20 hadi itakapofikia muda wa sekunde 20

  • Task2 inapofikia wakati wake nje Task 1 imewezeshwa tena na Task2 imezimwa. Hapa tena, tunapata thamani iliyosasishwa na mchakato unaendelea.

Kusoma Takwimu za Sensorer za I2C

Tunapata fremu ya 29-byte kutoka kwa sensorer ya joto isiyo na waya na sensorer za unyevu. Sura hii inadhibitiwa kupata joto halisi na data ya Unyevu

data ya uint8_t [29];

data [0] = Serial1.read (); kuchelewesha (k); // chck kwa kuanza byte ikiwa (data [0] == 0x7E) {wakati (! Serial1.available ()); kwa (i = 1; i <29; i ++) {data = Serial1.read (); kuchelewesha (1); } ikiwa (data [15] == 0x7F) /////// kuangalia ikiwa data ya kurudisha ni sahihi {ikiwa (data [22] == 1) //////// hakikisha aina ya kitambuzi ni sahihi {

unyevu = (((((data [24]) * 256) + data [25]) /100.0); unyevu /=10.0; cTempint = (((uint16_t) (data [26]) << 8) | data [27]); cTemp = (kuelea) cTempint / 100.0; cTemp / = 10.0; fTemp = cTemp * 1.8 + 32; fTemp / = 10.0; betri = nasibu (100, 327); voltage = betri / 100; nodeId = data [16];}

Kuunganisha kwa UbiDots MQTT API

Jumuisha faili ya kichwa kwa mchakato wa MQTT

# pamoja

fafanua anuwai zingine za MQTT kama jina la mteja, anwani ya broker, kitambulisho cha ishara (Tunachukua kitambulisho cha ishara kutoka EEPROM)

#fafanua MQTT_CLIENT_NAME "MtejaVBShightime123"

char mqttBroker = "things.ubidots.com";

malipo ya char [100], mada ya char [150];

// tengeneza kutofautisha kuhifadhi kitambulisho cha ishara

Ishara ya kambaId;

Unda vigeuzi vya kuhifadhi data tofauti za sensa na uunda ubadilishaji wa char kuhifadhi mada

#fafanua VARIABLE_LABEL_TEMPF "tempF" // Kudhibitisha lebo ya kutofautisha # fafanua VARIABLE_LABEL_TEMPC "tempC" // Kuhakikisha lebo ya kutofautisha #fafanua VARIABLE_LABEL_BAT "bat" #fafanua VARIABLE_LABEL_HUMID "unyevu" // Kuthibitisha lebo inayobadilika

mada ya char1 [100]; mada ya char2 [100]; mada ya char3 [100];

chapisha data kwenye mada iliyotajwa ya MQTT mzigo utakaonekana kama {"tempc": {value: "tempData"}}

sprintf (mada1, "% s", ""); sprintf (mada1, "% s% s", "/ v1.6/devices/", DEVICE_LABEL); sprintf (mzigo wa malipo, "% s", ""); // Husafisha malipo ya malipo (malipo, "{"% s / ":", VARIABLE_LABEL_TEMPC); // Inaongeza thamani ya sprintf (mzigo wa malipo, "% s {" thamani / ":% s}", malipo ya malipo, str_cTemp); // Anaongeza thamani ya sprintf (mzigo wa malipo, "% s}", mzigo wa malipo); // Hufunga mabano ya kamusi Serial.println (malipo ya malipo); Serial.println (mteja.chapisha (mada1, malipo ya malipo)? "Iliyochapishwa": "haijachapishwa");

// Fanya vivyo hivyo kwa mada nyingine pia

mteja.chapisha () huchapisha data kwa UbiDots

Hatua ya 5: Kuangalia Takwimu

Kuibua Takwimu
Kuibua Takwimu
Kuibua Takwimu
Kuibua Takwimu
Kuibua Takwimu
Kuibua Takwimu
  • Nenda kwa Ubidots na Ingia kwenye akaunti yako.
  • Nenda kwenye Dashibodi kutoka kwa kichupo cha Takwimu zilizoorodheshwa hapo juu.
  • Sasa bofya ikoni ya "+" ili kuongeza vilivyoandikwa vipya.
  • Chagua wijeti kutoka kwenye orodha na ongeza anuwai na vifaa.
  • Takwimu za sensorer zinaweza kuonyeshwa kwenye dashibodi kwa kutumia vilivyoandikwa tofauti.

Hatua ya 6: Kanuni ya Jumla

Nambari ya Zaidi ya HTML na ESP32 inaweza kupatikana katika hazina hii ya GitHub.

Mikopo

  • ncd ESP32 bodi ya kuzuka.
  • ncd joto la waya na sensorer za unyevu.
  • pubsubclient
  • UbiDots
  • Mratibu wa Kazi

Ilipendekeza: