Zariadenia internetu vecí dokážu skvelé veci, ale podstatnou súčasťou rovnice je spôsob komunikácie. Môžete to zvládnuť pomocou modulu ESP-01.

To, že máte obmedzený rozpočet, nevyhnutne neznamená, že sa nemôžete pustiť do pokročilých DIY projektov. Ak hľadáte malý, cenovo dostupný a pohodlný WiFi modul na rozšírenie vašich IoT projektov, modul ESP-01 je skvelou voľbou. Integrácia takéhoto modulu s ľahkým protokolom, ako je MQTT, však môže byť zložitá, najmä ak ste novým vývojom internetu vecí.

Samotné programovanie dosky ESP-01 môže byť náročné v porovnaní s inými modulmi série ESP8266. Poďme si však prejsť základy nastavenia hardvéru a softvéru, ktoré potrebujete, aby ste mohli začať používať modul, ako aj to, ako nastaviť MQTT jednoduchým a procedurálnym spôsobom.

Spoznávanie rady

ESP8266 ESP-01 je malý a kompaktný WiFi modul, ktorý je dodávaný s čipom ESP8266EX, čo je vysoko integrovaný SoC určený pre aplikácie IoT.

Modul obsahuje jednočipový bezdrôtový mikrokontrolér so zásobníkom protokolov TCP/IP a je schopný sa pripojiť k bezdrôtovej sieti alebo pôsobiť ako prístupový bod. Modul ESP-01 je tiež vybavený 2x4 kolíkovou hlavičkou, ktorá poskytuje prístup k jeho kolíkom GPIO, napájaniu a uzemneniu a rozhraniu UART.

instagram viewer

Nastavenie hardvéru

Modul nie je vôbec priateľský. Pre pohodlie si môžete kúpiť vopred zostavenú predlžovaciu dosku alebo jednoducho ísť staromódnym spôsobom - pomocou prepojovacích káblov a dosky na krájanie.

K dispozícii je špeciálny programátor, doska sériového modulu ESP8266, ktorá vám môže uľahčiť programovanie. Ak uprednostňujete túto cestu, DIYHOBI má praktický návod, ako flashovať program do modulu ESP-01 pomocou programátora (vrátane adaptéra prevodného modulu USB na TTL CH340G).

Stále však môžete naprogramovať modul pomocou dosky Arduino. Pozrite si schému zapojenia nižšie ako referenciu.

Aj keď to môže vyzerať lákavo, vo všeobecnosti neodporúčame pripojiť modul priamo k 3,3 V kolíku Arduina, pretože vyžaduje viac prúdu, ako poskytuje kolík. Namiesto toho pripojte Arduino 5V na 3,3V regulátor napätia ako LM1117/LD117, potom napájajte WiFi modul z regulátora.

Nepripájajte VCC a CH_PD kolíky ESP na 5V kolík Arduina. Pripojenie modulu k 5V sila ho môže poškodiť.

Všetky kondenzátory sú 10uF a rezistor je a 1K odpor.

Softvérové ​​požiadavky

Modul ESP-01 sa bežne používa s platformou Arduino. Ako také je nastavenie softvéru celkom jednoduché, najmä ak poznáte Arduino C. Ak je vám však Raspberry viac oboznámený, je ich dosť Raspberry Pi IoT projekty si môžete vyskúšať.

Toto sú základné požiadavky:

  • Sprostredkovateľ alebo server MQTT (napríklad Mosquitto alebo CloudMQTT).
  • Arduino IDE s knižnicou jadra ESP8266.
  • Knižnica PubSubClient pre Arduino.

Musíte si uvedomiť, že mať svoj vlastný server MQTT lokálne vám dáva flexibilitu v rámci vašich projektov.

Inštalácia potrebných knižníc

Najprv si stiahnite a nainštalujte Arduino IDE do svojho počítača. Po inštalácii otvorte Arduino IDE a prejdite na Súbor > Predvoľby.

V Dodatočné adresy URL správcu panelov do poľa zadajte nasledujúcu adresu URL:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Kliknite OK zatvorte okno Predvoľby.

Ďalej prejdite na Nástroje > rady > Správca dosiek.

Potom hľadajte esp8266 a nainštalujte balík dosky esp8266 – to zahŕňa všetky potrebné knižnice pre modul ESP-01.

Ak chcete nainštalovať knižnicu PubSubClient, prejdite na Skica > Zahrnúť knižnicu > Spravovať knižnice.

Hľadať PubSubClient a kliknutím na knižnicu ju nainštalujte.

Keď máte nainštalované všetky potrebné knižnice, môžete začať s programovaním modulu ESP-01. Jedna vec, ktorú je potrebné poznamenať, je, že môžete použiť Wifi.h ktorý je súčasťou knižnice, alebo si ho stiahnite ESPWifi.h knižnica a zahrňte ho do svojho náčrtu.

Vytvorenie spojenia medzi ESP-01 a MQTT Broker

Sprostredkovateľ MQTT je server, ktorý funguje ako sprostredkovateľ medzi klientmi MQTT. Umožňuje klientom navzájom si posielať a prijímať správy prostredníctvom modelu publikovania a odberu.

Ak chcete pripojiť váš modul ESP-01 k brokerovi MQTT, budete musieť zadať IP adresu a číslo portu brokera vo svojom kóde. Budete tiež musieť poskytnúť sprostredkovateľovi jedinečné ID klienta, ktoré identifikuje váš modul ESP-01.

Najprv zahrňte potrebné knižnice v hornej časti náčrtu

#include <ESP8266 WiFi.h>
#include <PubSubClient.h>

Ďalej definujte podrobnosti pripojenia WiFi a MQTT.

konštchar* ssid = "VAŠE_SSID";
konštchar* heslo = "TVOJE HESLO";
konštchar* mqtt_server = "VÁŠ_SERVER_MQTT";

Nezabudnite nahradiť zástupné symboly vašimi vlastnými údajmi o pripojení WiFi a MQTT.

Potom vytvorte klienta WiFi a pripojte sa k miestnej sieti WiFi:

WiFiClient espClient;
neplatnésetup_wifi(){
oneskorenie (10);
WiFi.begin (ssid, heslo);
zatiaľ čo (WiFi.status() != WL_CONNECTED) {
oneskorenie (500);
}
}

Táto funkcia by sa mala volať v nastaviť() funkcie vašej skice.

Ďalej budete musieť vytvoriť klienta MQTT a pripojiť sa k svojmu maklérovi MQTT:

PubSubClient zákazník(espClient);
neplatnéznovu pripojiť(){
zatiaľ čo (!client.connected()) {
ak (client.connect("ESP01", mqtt_user, mqtt_password)) {
// Prihláste sa na odber témy
client.subscribe("test/téma");
} inak {
oneskorenie (5000);
}
}
}

Po pripojení k vášmu maklérovi MQTT môžete začať publikovať a odoberať témy.

Publikovanie údajov z ESP-01 do MQTT Broker

Teraz, keď ste úspešne pripojili váš modul ESP01 k brokerovi MQTT, pozrime sa, ako môžete publikovať údaje z ESP-01 brokerovi.

Na zverejnenie údajov použite client.publish() funkcia na zverejnenie správy na v téme tému.

client.publish("inTopic", "Ahoj z ESP-01");

Toto zverejní správu „Ahoj z ESP-01“ na v téme tému.

Môžete tiež publikovať údaje snímača z ESP-01 maklérovi. Napríklad, ak máte k vášmu ESP-01 pripojený teplotný senzor, môžete údaje o teplote zverejniť brokerovi, ako je uvedené nižšie.

plavák teplota = 25.5;
Reťazec teplotaString = Reťazec(teplota);
char teplotaChar[5];
teplotný reťazec.toCharArray(teplotaChar, 5);
client.publish("teplota", teplotaChar);

Tým sa zverejnia údaje o teplote do tepl tému.

Údaje môžu byť publikované v slučke alebo v pravidelných intervaloch v závislosti od požiadaviek vášho projektu. Dbajte na to, aby ste brokera nezahltili príliš veľkým množstvom dát a aby ste zverejňovali v primeranom intervale.

Prihlásenie na odber tém MQTT a prijímanie údajov na ESP-01

Ak sa chcete prihlásiť na odber témy, použite tlačidlo client.subscribe() funkciu. V našom prípade nižšie sa klient prihlási na odber outTopic tému.

client.subscribe("mimo tému");

Po prihlásení na odber témy môžete prijímať správy publikované na túto tému pomocou client.loop() funkciu v slučka() funkcia na náčrte nižšie:

neplatnéslučka(){
ak (!zákazník.spojený()) {
znovu pripojiť ();
}
zákazník.slučka();
}

Toto bude priebežne kontrolovať nové správy a po prijatí novej správy spustí funkciu spätného volania.

Ak chcete spracovávať prijaté správy, definujte funkciu spätného volania, ako je tá, ktorá je uvedená nižšie:

neplatnézavolaj späť(char*téma, byte* užitočné zaťaženie, nepodpísané int dĺžka){
// Vytlačte prijatú správu
Serial.vytlačiť("Prijatá správa k téme: ");
Serial.vytlačiť(téma);
Serial.vytlačiť(". Správa: ");
pre (int i=0;iSerial.tlač((char)užitočné zaťaženie[i]);
}
Serial.println();
}

Táto funkcia sa zavolá, keď bude prijatá nová správa na objednanú tému. Prijatú správu vytlačí na sériový monitor.

Používanie úrovní QoS (Quality of Service) a bezpečnostných funkcií

Jednou z najdôležitejších techník používaných pri spracovávaní požiadaviek je používanie úrovní QoS (Quality of Service) pre vaše správy MQTT. Úrovne QoS definujú, ako by maklér a predplatitelia mali zaobchádzať s vašimi správami. Existujú tri úrovne QoS: 0, 1 a 2.

Úroveň QoS 0 je najmenej spoľahlivá, pretože správy sa odosielajú iba raz a nie je zaručené, že budú doručené účastníkovi. Úroveň QoS 1 je spoľahlivejšia, pretože správy sa odosielajú aspoň raz a je zaručené, že budú doručené účastníkovi aspoň raz. Úroveň QoS 2 je najspoľahlivejšia, pretože správy sa odosielajú presne raz a je zaručené, že budú doručené účastníkovi presne raz. Spôsob, akým vaše zariadenia komunikujú, je v súlade s ostatnými bežné problémy so zabezpečením internetu vecí (IoT) a opravy chcete zostať na vrchole.

Ak chcete použiť úrovne QoS, môžete zadať požadovanú úroveň pri publikovaní správ pomocou client.publish() funkcia:

client.publish("téma", "Ahoj, svet!", 1);

Týmto sa správa zverejní Ahoj svet! k tému tému s úrovňou QoS 1.

Ďalšou pokročilou technikou je použitie Posledná vôľa a testament (LWT) správy. Správy LWT sú správy, ktoré odosiela maklér, keď sa klient neočakávane odpojí. Sme presvedčení, že je to dôležité na zisťovanie offline zariadení alebo na spustenie akcií, keď sa zariadenie odpojí.

Ak chcete použiť správy LWT, môžete zadať správu LWT pri pripojení k maklérovi pomocou client.setWill() funkcia:

client.setWill("postavenie", "offline", 1, pravda);

Toto nastaví správu LWT na offline na postavenie tému s úrovňou QoS 1 a príznakom zachovania nastaveným na pravda.

Pripravte sa na svoj ďalší IoT projekt

Modul ESP-01 je cenovo dostupné a kompaktné riešenie pre IoT projekty a jeho použitie s MQTT môže posunúť váš projekt na ďalšiu úroveň. Hoci počiatočné nastavenie môže byť skľučujúce, výhody MQTT, ako je ľahká komunikácia a vysoká škálovateľnosť, z neho robia investíciu, ktorá sa oplatí.