Cov txheej txheem:

UbiDots-Txuas ESP32 thiab Tshaj Tawm Ntau Cov Ntaub Ntawv Sensor: 6 Cov Kauj Ruam
UbiDots-Txuas ESP32 thiab Tshaj Tawm Ntau Cov Ntaub Ntawv Sensor: 6 Cov Kauj Ruam

Video: UbiDots-Txuas ESP32 thiab Tshaj Tawm Ntau Cov Ntaub Ntawv Sensor: 6 Cov Kauj Ruam

Video: UbiDots-Txuas ESP32 thiab Tshaj Tawm Ntau Cov Ntaub Ntawv Sensor: 6 Cov Kauj Ruam
Video: Голубая стрела (1958) фильм 2024, Kaum ib hlis
Anonim
UbiDots-Txuas ESP32 thiab Tshaj Tawm Ntau Cov Ntaub Ntawv Sensor
UbiDots-Txuas ESP32 thiab Tshaj Tawm Ntau Cov Ntaub Ntawv Sensor

ESP32 thiabESP 8266 yog SoC paub zoo heev hauv IoT. Cov no yog cov khoom zoo rau IoT cov haujlwm. ESP 32 yog cov cuab yeej siv nrog WiFi thiab BLE. Tsuas yog muab koj tus SSID, tus lej zais thiab tus IP teeb tsa thiab muab cov khoom tso rau hauv huab. Nov yog cov lus qhia no, Peb yuav xav txog qee yam ntawm cov ntsiab lus yooj yim ntawm IoT zoo li IoT platform, MQTT, Captive portals thiab lwm yam. Yog li cia peb mus hla nws

  • IoT Architecture hauv cov lus yooj yim heev suav nrog cov cuab yeej kos thiab IoT platform los tso lub cuab yeej hauv huab. Ntawm no peb tab tom siv UbiDots IoT platform txhawm rau pom cov ntaub ntawv ntsuas.
  • Kev tswj hwm tus IP chaw thiab Tus neeg siv daim ntawv pov thawj tuaj yeem mob taub hau rau tus neeg siv. Yuav ua li cas yog tias Tus Neeg Siv Khoom xav hloov daim ntawv pov thawj WiFi? Yuav ua li cas yog tias tus neeg siv xav hloov DHCP/Static IP nqis? Kev ntsais muag ESP32 txhua lub sijhawm tsis txaus ntseeg thiab tsis yog qhov kev daws rau cov teeb meem no. Yog li peb yuav dhau los ntawm lub qhov rooj raug kaw kom txuag tau WiFi daim ntawv pov thawj thiab lwm yam teeb tsa.
  • MQTT tam sim no dhau los ua ib qho lus siv ntau hauv IoT ntiaj teb. nws tau hla dhau qhov kev thov thiab lus teb (HTTP) los ntawm Kev Tshaj Tawm thiab Sau Npe vim tias nrawm, muaj zog thiab tsis muaj teeb meem.

Ntawm no hauv cov lus qhia no, peb yuav mus ua kom pom.

  • Muab WiFi thiab MQTT daim ntawv pov thawj siv Captive Portal.
  • Tshaj tawm thiab sau npe ntau yam Sensor cov ntaub ntawv rau UbiDots.
  • Nyeem cov ntaub ntawv Sensor los ntawm Wireless Kub thiab Vaum Sensors.
  • Hosting lub vev xaib los ntawm ESP32.
  • Nyeem thiab Sau Ntawv los ntawm SPIFFS ESP32.

Kauj Ruam 1: Kev Kho Vajtse thiab Software Tshwj Xeeb

Kho vajtse thiab Software Specification
Kho vajtse thiab Software Specification
  • ESP32 WiFi/BLE
  • Wireless Kub thiab Vaum Sensor

Specification ntawm Software

Arduino IDE Cov

Kauj Ruam 2: Tsim Lub Nkoj Portal

Tsim Kev Nkag Nkag Nkag Nkag
Tsim Kev Nkag Nkag Nkag Nkag
Tsim Kev Nkag Nkag Nkag Nkag
Tsim Kev Nkag Nkag Nkag Nkag
Tsim Kev Nkag Nkag Nkag Nkag
Tsim Kev Nkag Nkag Nkag Nkag

Lub portal raug kaw yog lub vev xaib uas tau nthuav tawm rau cov neeg siv txuas tshiab ua ntej lawv tau txais kev nkag mus tau dav rau cov peev txheej network. Ntawm no peb tab tom ua haujlwm peb nplooj ntawv los xaiv ntawm DHCP thiab Static IP Settings. peb tuaj yeem txhais tus IP chaw nyob rau ESP hauv ob txoj hauv kev.

  • DHCP IP chaw nyob- nws yog ib txoj hauv kev los muab tus IP chaw nyob rau lub cuab yeej. ESP qhov chaw nyob IP tsis yog 192.168.4.1
  • IP chaw nyob zoo li qub- muab tus IP chaw nyob ruaj khov rau peb cov cuab yeej siv network. los muab tus IP zoo li qub rau lub cuab yeej peb yuav tsum tau txheeb xyuas tus IP chaw nyob, rooj vag chaw nyob, thiab subnet daim npog qhov ncauj.

Thawj lub vev xaib tau tuav ntawm 192.168.1.77. Ntawm no Tus Neeg Siv tau muab nrog lub xov tooj cua khawm los xaiv ntawm DHCP thiab Static IP teeb tsa. Hauv lub vev xaib tom ntej no, peb yuav tsum muab IP cov ntaub ntawv ntsig txog txhawm rau txuas ntxiv mus.

HTML Code

Tus lej HTML rau nplooj ntawv web tuaj yeem pom hauv Github qhov chaw cia khoom. Koj tuaj yeem siv ib qho IDE lossis cov ntawv sau zoo li Sublime lossis notepad ++ los ua HTML nplooj ntawv web.

  • Ua ntej Tsim HTML webpage uas muaj ob lub xov tooj cua khawm los xaiv ntawm DHCP thiab Static IP Settings.
  • Tam sim no tsim lub pob kom xa koj cov lus teb
  • Muab qee lub npe rau khawm xov tooj cua.
  • ESP Web server chav kawm yuav siv cov npe no los sib cav thiab tau txais cov lus teb ntawm cov xov tooj cua khawm siv cov lus sib cav no
  • Tam sim no ntxig rau 'SUBMIT' khawm kom xa cov lus teb rau lub cuab yeej Hauv lwm nplooj ntawv web, peb muaj cov thawv ntawv.
  • Muab lub npe tus nqi thiab Hom nkag mus rau lub thawv ntawv thiab ntxiv khawm xa mus rau 'SUBMIT' xa cov lus teb.
  • Tsim lub 'RESET' khawm kom rov pib dua cov ntsiab lus ntawm kab ntawv.

Kauj Ruam 3: Muab WiFi thiab UbiDots Cov Ntawv Pov Thawj

Muab WiFi thiab UbiDots Cov Ntawv Pov Thawj
Muab WiFi thiab UbiDots Cov Ntawv Pov Thawj

Qhov teeb meem tseem ceeb tshwm sim thaum tswj hwm daim ntawv pov thawj WiFi. Txawm hais tias peb muaj WiFiMulti lub tsev qiv ntawv rau qhov uas peb tuaj yeem muab ntau tus SSIDs thiab tus lej nkag mus rau lub cuab yeej thiab lub cuab yeej yuav txuas rau lub network muaj. Tab sis, yuav ua li cas yog tias lub network muaj tsis nyob hauv WiFiMulti daim ntawv teev npe. Teeb nyem ESP32 lub cuab yeej txhua lub sijhawm tsis yog kev daws teeb meem uas ntseeg tau.

Txhawm rau daws qhov teeb meem no, Peb tab tom tuav lub vev xaib uas tus neeg siv tuaj yeem xa SSID thiab Password ntawm lub network uas muaj. Nws ua haujlwm raws li hauv qab no.

  • Lub vev xaib raug teeb tsa ntawm tus IP zoo li qub lossis DHCP IP raws li tau xaiv los ntawm tus neeg siv los ntawm qhov chaw raug ntes
  • Lub Vev Xaib no muaj cov ntawv sau nkag mus rau SSID, tus lej zais, thiab UBIDOTS token ID txhawm rau txuas lub cuab yeej rau UbiDots.
  • Nkag mus rau SSID thiab tus lej zais ntawm koj lub WiFi hauv zos hauv cov teb nkag, Nkag mus rau UbiDot's token Id thiab nkag mus SUBMIT
  • Cov peev txheej no tau khaws tseg hauv ESP32's EEPROM
  • Tom qab 60-sec Ntaus Ntawv yuav txiav tawm ntawm AP
  • Lub sijhawm tom ntej thaum koj qhib lub cuab yeej, Tus neeg siv tsis tas yuav ua raws cov txheej txheem no, Lub cuab yeej yuav cia li nqa tus neeg siv daim ntawv pov thawj los ntawm EEPROM thiab txuas ntxiv nrog tshaj tawm cov ntawv nyeem rau UbiDots.

Kauj Ruam 4: Tshaj Tawm Kev Nyeem Ntawv Sensor rau UbiDots

Ntawm no peb tab tom siv Wireless Kub thiab Vaum Sensor nrog ESP 32 lub cuab yeej kom tau txais qhov kub thiab txias cov ntaub ntawv. Peb tab tom xa cov ntaub ntawv mus rau UbiDots siv MQTT raws tu qauv. MQTT ua raws li kev tshaj tawm thiab sau npe ua haujlwm qhov kev thov thiab lus teb. Nws yog nrawm dua thiab ntseeg tau dua li HTTP. Qhov no ua haujlwm raws li hauv qab no.

  • Peb tab tom siv Task Scheduler los Teem sijhawm ua haujlwm zoo li nqa cov ntaub ntawv los ntawm cov ntsuas, Tshaj tawm cov ntsuas nyeem ntawv, Sau npe rau MQTT lub ncauj lus.
  • Ua ntej, suav nrog Task Scheduler header files, nws yog piv txwv thiab teem sijhawm ua haujlwm.
  • Peb tau teem sijhawm ob txoj haujlwm hais txog ob txoj haujlwm tswj hwm sib txawv.

#define _TASK_TIMEOUT#suav nrog

Teem sijhawm ts;

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

Kev Ua Haujlwm 1 yog txhawm rau nyeem tus nqi ntsuas lub luag haujlwm no ua haujlwm rau 1 thib ob txog thaum nws mus txog sijhawm 10 feeb

  • Thaum Task1 txog nws lub sijhawm tawm Peb tab tom txuas rau Wifi hauv zos thiab MQTT tus tswv lag luam.
  • Tam sim no Task 2 tau qhib thiab peb tab tom ua haujlwm Task 1
  • Txoj Haujlwm 2 yog rau tshaj tawm cov ntaub ntawv ntsuas rau UbiDots MQTT tus neeg ua haujlwm no ua haujlwm rau 20 vib nas this kom txog thaum nws mus txog 20 feeb
  • Thaum Task2 mus txog nws lub sijhawm tawm Task 1 tau qhib dua thiab Task2 tau xiam oob khab. Ntawm no dua, peb tau txais tus nqi hloov kho tshiab thiab cov txheej txheem txuas ntxiv mus.

Nyeem I2C Sensor Cov Ntaub Ntawv

Peb tau txais 29-byte thav duab los ntawm Wireless Kub thiab Vaum Sensors. Cov thav duab no tau siv kom tau txais qhov kub thiab txias cov ntaub ntawv

uint8_t cov ntaub ntawv [29];

cov ntaub ntawv [0] = Serial1.read (); ncua (k); // chck rau pib byte yog (cov ntaub ntawv [0] == 0x7E) {thaum (! Serial1.available ()); rau (i = 1; i <29; i ++) {data = Serial1.read (); ncua (1); } yog (cov ntaub ntawv [15] == 0x7F) /////// txhawm rau txheeb xyuas yog tias cov ntaub ntawv tau txais yog raug {yog (cov ntaub ntawv [22] == 1) //////// xyuas kom tseeb tias lub ntsuas ntsuas yog lawm {

av noo = ((((cov ntaub ntawv [24]) * 256) + cov ntaub ntawv [25]) /100.0); av noo /= 10.0; cTempint = (((uint16_t) (cov ntaub ntawv [26]) << 8) | cov ntaub ntawv [27]); cTemp = (ntab) cTempint /100.0; cTemp /= 10.0; fTemp = cTemp * 1.8 + 32; fTemp /= 10.0; roj teeb = random (100, 327); voltage = roj teeb/100; nodeId = cov ntaub ntawv [16];}

Txuas rau UbiDots MQTT API

Suav nrog cov ntawv header rau txheej txheem MQTT

#suav nrog

txhais lwm qhov kev hloov pauv rau MQTT zoo li lub npe neeg siv, tus tswv lag luam chaw nyob, token ID (Peb tab tom nqa tus lej token los ntawm EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123"

char mqttBroker = "yam.ubidots.com";

char them nyiaj [100]; char ntsiab lus [150];

// tsim qhov sib txawv los khaws cov cim token

Txoj hlua tokenId;

Tsim cov kev hloov pauv kom khaws cov ntaub ntawv sib txawv thiab tsim cov cim sib txawv los khaws cov ncauj lus

#define VARIABLE_LABEL_TEMPF "tempF" // Txheeb xyuas cov ntawv sib txawv #txhais VARIABLE_LABEL_TEMPC "tempC" // Txheeb xyuas cov ntawv sib txawv #define VARIABLE_LABEL_BAT "puav" #define VARIABLE_LABEL_HUMID "ntub" // Txheeb xyuas cov ntawv sib txawv

char title1 [100]; char topic2 [100]; char nqe 3 [100];

tshaj tawm cov ntaub ntawv rau cov ncauj lus MQTT hais lub payload yuav zoo li {"tempc": {tus nqi: "tempData"}}

sprintf (ntsiab lus 1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (payload, "%s", ""); // Ntxuav lub payload sprintf (payload, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Ntxiv tus nqi sprintf (payload, "%s {" value / ":%s}", payload, str_cTemp); // Ntxiv tus nqi sprintf (payload, "%s}", payload); // Kaw cov phau ntawv txhais lus kab lus Serial.println (them nyiaj); Serial.println (client.publish (topic1, payload)? "Luam tawm": "tsis tau tshaj tawm");

// Ua tib yam rau lwm lub ncauj lus ib yam nkaus

client.publish () tshaj tawm cov ntaub ntawv rau UbiDots

Kauj ruam 5: Pom cov ntaub ntawv

Visualizing Cov Ntaub Ntawv
Visualizing Cov Ntaub Ntawv
Visualizing Cov Ntaub Ntawv
Visualizing Cov Ntaub Ntawv
Visualizing Cov Ntaub Ntawv
Visualizing Cov Ntaub Ntawv
  • Mus rau Ubidots thiab nkag mus rau koj tus lej nyiaj.
  • Nkag mus rau Dashboard los ntawm Cov Ntaub Ntawv tab teev rau saum.
  • Tam sim no nyem rau "+" icon ntxiv cov widgets tshiab.
  • Xaiv tus widget los ntawm daim ntawv thiab ntxiv qhov sib txawv thiab cov khoom siv.
  • Cov ntaub ntawv ntsuas tuaj yeem pom ntawm lub dashboard siv cov cuab yeej sib txawv.

Kauj Ruam 6: Txoj Cai Tag Nrho

Over Code rau HTML thiab ESP32 tuaj yeem pom nyob hauv GitHub qhov chaw cia khoom no.

Khab nias

  • ncd ESP32 breakout board.
  • ncd Wireless kub thiab Vaum Sensors.
  • pubsubclient
  • UbiDots
  • Teem Sijhawm

Pom zoo: