Internet stvari (IoT) Razvoj IoT uređaja koristeći ESP8266/ESP32: Vodič za Početnike

Uvod



Internet stvari (IoT) donio je revoluciju u povezivanju uređaja s internetom, omogućujući kontrolu i nadzor nad raznim sustavima, od pametnih domova do industrijskih postrojenja. U središtu mnogih IoT projekata nalazi se ESP8266 ili novija verzija, ESP32, dva pristupačna mikrokontrolera koja omogućuju bežičnu povezanost i pristup internetu. Ovaj vodič provest će vas kroz osnove razvoja IoT uređaja koristeći ESP8266 i ESP32, te vam pružiti konkretne primjere kako započeti s vlastitim projektima.


1. Što su ESP8266 i ESP32?

ESP8266 i ESP32 su mikrokontroleri koje proizvodi tvrtka Espressif Systems, a dizajnirani su kako bi korisnicima omogućili bežičnu komunikaciju s jednostavnim i povoljnim hardverom.

ESP8266

ESP8266 je prvi popularni WiFi mikrokontroler koji nudi dobru procesorsku snagu i mogućnost bežičnog povezivanja za vrlo nisku cijenu. Njegove značajke uključuju:

  • Procesor s taktom od 80 MHz
  • 160 KB RAM memorije
  • 1 MB flash memorije
  • GPIO pinove za povezivanje senzora i aktuatora
  • Integriranu WiFi povezivost

ESP32

ESP32 je poboljšana verzija ESP8266 s dodatnim mogućnostima i boljim performansama, kao što su:

  • Dvostruki procesori s taktom do 240 MHz
  • Veća RAM i flash memorija
  • Ugrađeni Bluetooth i WiFi modul
  • Širi raspon GPIO pinova i dodatne periferne mogućnosti

ESP32 je idealan za projekte koji zahtijevaju više snage ili dodatne funkcije poput Bluetootha, dok ESP8266 ostaje popularan zbog jednostavnosti i pristupačne cijene.


2. Zašto koristiti ESP8266/ESP32 za IoT projekte?

ESP8266 i ESP32 imaju niz prednosti koje ih čine idealnima za razvoj IoT uređaja:

  • Jednostavno povezivanje s internetom: Integrirana WiFi povezivost omogućava jednostavan pristup internetu.
  • Podrška za razne protokole: Podržavaju protokole kao što su HTTP, MQTT, i WebSocket, što ih čini fleksibilnim za razne aplikacije.
  • Kompatibilnost s raznim senzorima i aktuatorima: GPIO pinovi omogućuju povezivanje brojnih senzora i aktuatora, uključujući senzore temperature, vlage, tlaka, i motore.
  • Povoljan hardver: Cijena ESP8266 i ESP32 modula čini ih pristupačnim čak i za hobiste.
  • Velika zajednica korisnika: Na internetu postoji mnogo resursa, vodiča i primjera koji pomažu korisnicima u razvoju IoT projekata.

3. Postavljanje razvojnog okruženja za ESP8266/ESP32

Prije nego što započnete s programiranjem ESP8266 ili ESP32 uređaja, trebate postaviti razvojno okruženje. Jedna od najjednostavnijih opcija za početnike je korištenje Arduino IDE-a, koji podržava oba mikrokontrolera.

Koraci za postavljanje Arduino IDE-a

  1. Preuzimanje i instalacija Arduino IDE-a: Posjetite Arduino službenu stranicu i preuzmite IDE za svoj operativni sustav.
  2. Dodavanje ESP8266/ESP32 podrške:
    • Otvorite Arduino IDE, idite na File > Preferences.
    • U polje “Additional Boards Manager URLs” unesite sljedeće URL-ove:
      • Za ESP8266: http://arduino.esp8266.com/stable/package_esp8266com_index.json
      • Za ESP32: https://dl.espressif.com/dl/package_esp32_index.json
  3. Instalacija ESP8266/ESP32:
    • Otvorite Tools > Board > Boards Manager.
    • U tražilicu upišite “ESP8266” ili “ESP32” i kliknite na Install.
  4. Odabir ploče:
    • Nakon instalacije, pod Tools > Board možete odabrati odgovarajuću ploču kao što su NodeMCU (ESP8266) ili ESP32 Dev Module.

Nakon što ste postavili razvojno okruženje, spremni ste za programiranje svog ESP8266 ili ESP32 uređaja.


4. Povezivanje senzora i aktuatora

ESP8266 i ESP32 imaju GPIO pinove koji omogućuju povezivanje raznih senzora i aktuatora. Ovdje su neki od najčešće korištenih senzora i uređaja u IoT projektima.

Uobičajeni senzori i aktuatori

  • DHT11/DHT22: Senzori temperature i vlage
  • MQTT: Senzor plinova
  • BMP180: Senzor atmosferskog tlaka
  • Ultrazvučni senzor (HC-SR04): Za mjerenje udaljenosti
  • Relays: Za kontrolu visokih napona
  • Motori: Za upravljanje pokretima

Primjer: Povezivanje DHT11 senzora s ESP8266

DHT11 je senzor za mjerenje temperature i vlage koji se lako povezuje s ESP8266/ESP32 putem jednog GPIO pina.

  1. Spojite VCC senzora na 3.3V pin na ESP8266/ESP32.
  2. Spojite GND senzora na GND pin na ESP8266/ESP32.
  3. Spojite signalnu žicu (Data) senzora na jedan od GPIO pinova (npr. GPIO5).

Koristeći biblioteku DHT u Arduino IDE-u, možete lako očitati vrijednosti s ovog senzora.

cpp
#include <DHT.h> #define DHTPIN 5 // Pin na koji je povezan senzor #define DHTTYPE DHT11 // Odabir tipa senzora (DHT11 ili DHT22) DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { float temperatura = dht.readTemperature(); float vlaga = dht.readHumidity(); Serial.print("Temperatura: "); Serial.print(temperatura); Serial.print(" °C "); Serial.print("Vlaga: "); Serial.print(vlaga); Serial.println(" %"); delay(2000); }

Ovaj kod očitava temperaturu i vlagu svakih 2 sekunde i prikazuje rezultate putem serijskog monitora.


5. Povezivanje ESP8266/ESP32 s internetom

Kako biste svoj uređaj učinili pravim IoT uređajem, potrebno je povezati ESP8266/ESP32 s WiFi mrežom. Nakon povezivanja, možete koristiti različite protokole za slanje i primanje podataka.

Povezivanje s WiFi mrežom

Sljedeći primjer pokazuje kako povezati ESP8266 s WiFi mrežom.

cpp
#include <ESP8266WiFi.h> const char* ssid = "Vaša_WiFi_mreža"; const char* password = "Vaša_lozinka"; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("Povezan na WiFi!"); } void loop() { // Ovdje možete dodati kod za slanje podataka putem interneta }

Nakon povezivanja s WiFi mrežom, vaš ESP8266/ESP32 uređaj spreman je za komunikaciju s drugim uređajima na mreži.


6. Komunikacija s Cloud platformama pomoću MQTT protokola

MQTT je lagani protokol dizajniran za IoT, koji omogućava slanje i primanje podataka između uređaja putem posrednika (broker). Popularne cloud platforme kao što su Adafruit IO, Thingspeak i IBM Watson koriste MQTT za prijenos podataka.

Postavljanje MQTT komunikacije

Za korištenje MQTT protokola, najprije trebate kreirati MQTT račun na platformi po izboru. Ovdje je primjer kako slati podatke pomoću MQTT-a na Adafruit IO:

  1. Registrirajte se na Adafruit IO i kreirajte feed za podatke.
  2. U Arduino kod unesite svoje Adafruit IO korisničko ime i ključ API-ja.
cpp
#include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = "Vaša_WiFi_mreža"; const char* password = "Vaša_lozinka"; const char* mqttServer = "io.adafruit.com"; const char* mqttUser = "Vaše_korisničko_ime"; const char* mqttPassword = "API_ključ"; WiFiClient espClient; PubSubClient client(espClient); void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } client.setServer(mqttServer, 1883); } void loop() { if (!client.connected()) { while (!client.connect("ESP8266Client", mqttUser, mqttPassword)) { delay(500); Serial.print("."); } } float temperatura = 25.3; // Primjer podataka String tempString = String(temperatura); client.publish("Vaš_feed", tempString.c_str()); delay(10000); }

Ovaj kod povezuje ESP8266 s Adafruit IO posrednikom i šalje temperaturu svakih 10 sekundi.


7. Razvoj jednostavnog IoT projekta: Pametni termostat

Ovaj projekt kombinira sve naučeno kako biste stvorili pametni termostat koji prati temperaturu i vlagu, te šalje podatke u cloud. Pomoću aplikacije možete pratiti podatke u stvarnom vremenu i postaviti pragove za uključivanje i isključivanje grijanja.

Potrebne komponente:

  • ESP8266 ili ESP32
  • DHT11 ili DHT22 senzor za mjerenje temperature i vlage
  • Relay modul za kontrolu grijača

Koraci:

  1. Povežite DHT senzor s ESP8266.
  2. Povežite relay modul s ESP8266, koji će omogućiti uključivanje i isključivanje grijača.
  3. Postavite MQTT komunikaciju za slanje podataka u cloud.
  4. U aplikaciji postavite pragove temperature kako bi se grijač automatski uključivao i isključivao.

Zaključak

ESP8266 i ESP32 pružaju odlične mogućnosti za razvoj IoT uređaja zahvaljujući integriranoj WiFi povezivosti i podršci za razne protokole. Uz pravilno postavljanje, moguće je razviti napredne projekte koji omogućuju praćenje i kontrolu udaljenih uređaja putem interneta. S ovim vodičem ste spremni za početak razvoja vlastitih IoT uređaja koristeći ESP8266 ili ESP32, te pridonijeti sve brže rastućem svijetu Internet stvari.

Primjedbe

Popularni postovi s ovog bloga

Boje otpornika označavanje vrijednosti otpora

Kondenzatori vrste: elektrolitski, folijski, keramički, promjenljivi, super kondenzatori

Skretnica za zvučnike

Kondenzator 101 471 103 104 oznake vrijednosti kapaciteta

Automobilski osigurači oznake vrijednosti u Amperima po bojama 2A do 35A

Osigurači

Najbolji visokotonski zvučnik visokotonac prednosti i nedostaci

DIY Bluetooth zvučnik: Kako napraviti vlastiti bežični zvučnik korak po korak

NTC otpornici

Varistori