Sadržaj:
- Korak 1: BoM - Predmet materijala
- Korak 2: Hw
- Korak 3: Micropython, REPL, Jupyter
- Korak 4: Senzori
- Korak 5: Snimanje i lokalno prikazivanje svih podataka senzora
- Korak 6: Pokretanje koda lokalne stanice pri pokretanju ESP-a
- Korak 7: Povezivanje ESP -a s lokalnom WiFi mrežom
- Korak 8: ThingSpeak
- Korak 9: MQTT protokol i veza ThingSpeak
- Korak 10: Zapisnik podataka senzora
- Korak 11: Aplikacija ThingView
- Korak 12: Zaključak
Video: IoT Made Ease: ESP-MicroPython-MQTT-ThingGovor: 12 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
U mom prethodnom vodiču, MicroPython na ESP -u pomoću Jupytera, naučili smo kako instalirati i pokrenuti MicroPython na ESP uređaju. Koristeći Jupyter Notebook kao razvojno okruženje, naučili smo i čitati sa senzora (temperatura, vlažnost i svjetlina), koristimo nekoliko komunikacijskih protokola i metoda, analogni, digitalni, 1-žični i I2C, ovaj posljednji za prikaz snimljenih snimaka podatke na OLED ekranu.
Sada ćemo u ovom vodiču pomoću MQTT protokola dobiti sve snimljene podatke, šaljući ih na IoT uslugu, ThingSpeak.com i u mobilnu aplikaciju (Thingsview), gdje se možemo prijaviti i igrati s podacima.
Evo blok dijagrama našeg projekta:
Korak 1: BoM - Predmet materijala
- NodeMCU - 8,39 USD
- DHT22 Senzor temperature i relativne vlažnosti - 9,95 USD
- DS18B20 Vodonepropusni senzor temperature - 5,95 USD
- OLED ekran SSD1366- 8,99 USD (opcionalno)
- LDR (1x)
- LED diode (1x) (opcionalno)
- Taster (1x)
- Otpornik 4K7 ohm (2x)
- Otpornik 10K ohm (1x)
- Otpornik 220 ohma (1x)
Korak 2: Hw
Hw koji ćemo ovdje koristiti u osnovi je isti koji se koristi u vodiču: Micropython na ESP -u pomoću Jupytera. Za sve HW veze pogledajte ga.
Izuzetak je Servo, koji nećemo koristiti u ovom projektu.
Iznad možete vidjeti cijeli HW. Povežite uređaje kao što je prikazano.
Korak 3: Micropython, REPL, Jupyter
Na svom ESP uređaju morate imati učitan tumač Micropython. Nakon učitavanja, trebali biste programirati svoj ESP koristeći bilo koji od dostupnih načina/IDE -a, poput:
- REPL
- Jupyter Notebook
- Mu
- ESPCut (samo Windows)
- … Itd
U svom vodiču, Micropython na ESP -u Koristeći Jupyter, detaljno sam opisao kako preuzeti i instalirati MicroPython tumač, ESPTool za upravljanje ESP uređajima i kako koristiti Jupyter Notebook kao razvojno okruženje. Slobodno koristite ono što vam je ugodnije.
Obično sav razvoj radim na Jupyter Notebooku, a kad dobijem konačni kod, kopiram ih u Geany i učitam na svoj ESP pomoću Ampy -ja.
Korak 4: Senzori
Instalirajmo biblioteke, definirajmo GPIO, kreirajmo objekte, funkcije za sve senzore pojedinačno:
A. DHT (temperatura i vlažnost)
Instalirajmo DHT biblioteku i kreirajmo objekt:
od dht uvoz DHT22
iz uvoza mašine Pin dht22 = DHT22 (Pin (12))
Sada stvorite funkciju za čitanje DHT senzora:
def readDht ():
dht22.measure () vrati dht22.temperature (), dht22.humidity () Testirajte funkciju DHT
ispis (readDht ())
Rezultat bi trebao biti na primjer:
(17.7, 43.4)
B. DS18B20 (vanjska temperatura)
Instalirajmo biblioteke i kreirajmo objekt:
uvoz onewire, ds18x20
vrijeme uvoza # Odredite koji pin će 1-žični uređaj biti spojen ==> pin 2 (D4) dat = Pin (2) # kreirajte jednožični objekt ds = ds18x20. DS18X20 (onewire. OneWire (dat)) Skenirajte uređaje na bu
senzori = ds.scan ()
print ('pronađeni uređaji:', senzori)
Odštampani rezultat zapravo nije važan, ono što će nam trebati je prvi otkriveni senzor: senzori [0]. A sada možemo izgraditi funkciju za čitanje podataka senzora:
def readDs ():
ds.convert_temp () time.sleep_ms (750) return ds.read_temp (senzori [0])
Uvijek je važno testirati senzor pomoću stvorene funkcije
ispis (readDs ()) Ako dobijete vrijednost temperature, vaš kôd je tačan
17.5
C. LDR (Luminosity)
LDR će koristiti analogni pin našeg ESP -a (samo je jedan u slučaju ESP8266 i nekoliko na ESP32).
Za detalje pogledajte moje uputstvo za ESP32.
Isto kao i ranije:
# biblioteka za uvoz
iz uvoznog stroja ADC # Definiraj objekt adc = ADC (0) Jednostavna funkcija: adc.read () se može koristiti za čitanje ADC vrijednosti. Ali zapamtite da će interni ADC pretvoriti napone između 0 i 3,3 V u odgovarajuće digitalne vrijednosti, koje variraju od 0 do 1023. Nakon što nas zanima "Luminosity", smatrat ćemo da je Max svjetlo najveća snimljena vrijednost senzora (u mom slučaj 900) i minimalno svjetlo koje je u mom slučaju 40. Imajući te vrijednosti možemo "preslikati" vrijednost od 40 do 900 u 0 do 100% svjetline. Za to ćemo stvoriti novu funkciju
def readLdr ():
lumPerct = (adc.read ()-40)*(10/86) # konverzija u procentima ("mapa") povratna runda (lumPerct)
Funkciju biste trebali testirati pomoću ispisa (readLDR ()). Rezultat bi trebao biti cijeli broj između o i 100.
D. Taster (digitalni ulaz)
Ovdje koristimo Push-Button kao digitalni senzor, ali to može biti "odjek" aktuatora (na primjer, pumpa koja je UKLJUČENA/ISKLJUČENA).
# definirajte pin 13 kao ulaz i aktivirajte unutarnji pull-up otpornik:
button = Pin (13, Pin. IN, Pin. PULL_UP) # Funkcija za čitanje stanja dugmeta: def readBut (): dugme za povratak.value ()
Možete testirati dugme koje čita funkciju print (readBut ()). Bez pritiska na rezultat trebao bi biti "1". Pritiskom na dugme rezultat bi trebao biti "0"
Korak 5: Snimanje i lokalno prikazivanje svih podataka senzora
Sada kada smo stvorili jednu funkciju za svaki senzor, napravimo posljednju koja će ih sve čitati u isto vrijeme:
def colectData ():
temp, hum, = readDht () extTemp = readDs () lum = readLdr () butSts = readBut () vraćanje temp, hum, extTemp, lum, butSts Sada ako koristite
ispis (colectData ())
Dovest će do torke koja uključuje sve snimljene podatke sa senzora:
(17.4, 45.2, 17.3125, 103, 1)
Također možemo opcionalno prikazati te podatke na lokalnom ekranu:
# importirajte biblioteku i kreirajte objekt i2c
iz stroja import I2C i2c = I2C (scl = Pin (5), sda = Pin (4)) # biblioteka uvoza i stvaranje objekta oled uvoz ssd1306 i2c = I2C (scl = Pin (5), sda = Pin (4)) oled = ssd1306. SSD1306_I2C (128, 64, i2c, 0x3c) # kreirajte funkciju: def displayData (temp, hum, extTemp, lum, butSts): oled.fill (0) oled.text ("Temp:" + str (temp) + "oC", 0, 4) oled.text ("Hum:" + str (hum) + "%", 0, 16) oled.text ("ExtTemp:" + str (extTemp) + "oC", 0, 29) oled.text ("Lumin:" + str (lum) + "%", 0, 43) oled.text ("Dugme:" + str (butSts), 0, 57) oled.show () # prikaz podataka pomoću funkcije displayData (temp, hum, extTemp, lum, butSts)
Kao opciju, uključit ću i LED koji će biti UKLJUČEN kada počnemo čitati senzore, koji će se ugasiti nakon što se ti podaci prikažu. Ovo će vam pomoći da potvrdite da program radi kada imamo isključen ESP sa računara i radi automatski.
Dakle, glavna funkcija bila bi:
# Glavna funkcija za očitavanje svih senzora
def main (): # prikaz podataka s funkcijom led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off ()
Dakle, izvršavanjem main (), dobit ćemo podatke senzora prikazane na OLED -u kao što je prikazano na slici.
Korak 6: Pokretanje koda lokalne stanice pri pokretanju ESP-a
Možemo imati sve što je do sada razvijeno u jednoj datoteci koju će izvršiti naš ESP.
Otvorimo bilo koji uređivač teksta i proširimo sav kôd:
# uvoz općih biblioteka
od uvoza stroja Vrijeme uvoza pin -a # definirajte pin 0 kao izlaz LED = Pin (0, Pin. OUT) # DHT from dht import DHT22 dht22 = DHT22 (Pin (12)) # Funkcija za čitanje DHT def readDht (): dht22.measure () return dht22.temperature (), dht22.humidity () # DS18B20 import onewire, ds18x20 # Definirajte koji pin 1-žičnog uređaja će biti spojen ==> pin 2 (D4) dat = Pin (2) # Kreirajte jednožični objekt ds = ds18x20. DS18X20 (onewire. OneWire (dat)) # skeniranje uređaja na senzorima sabirnice = ds.scan () # funkcija za čitanje DS18B20 def readDs (): ds.convert_temp () time.sleep_ms (750) return okrugla (ds.read_temp (senzori [0]), 1) # LDR iz uvoznog stroja ADC # Definirajte objekt adc = ADC (0) # funkcija za čitanje luminosity def readLdr (): lumPerct = (adc.read ()-40) *(10/86) # pretvaranje u procentima ("mapa") povratna runda (lumPerct) # definirajte pin 13 kao ulaz i aktivirajte unutrašnji pull-up otpornik: button = Pin (13, Pin. IN, Pin. PULL_UP) # Funkcija za čitanje stanja dugmeta: def readBut (): dugme za povratak.value () # Funkcija za čitanje svih podataka: def cole ctData (): temp, hum, = readDht () extTemp = readDs () lum = readLdr () butSts = readBut () vraćanje temp, hum, extTemp, lum, butSts # biblioteka uvoza i kreiranje objekta i2c iz stroja za uvoz I2C i2c = I2C (scl = Pin (5), sda = Pin (4)) # biblioteka za uvoz i kreiranje objekta oled import ssd1306 i2c = I2C (scl = Pin (5), sda = Pin (4)) oled = ssd1306. SSD1306_I2C (128, 64, i2c, 0x3c) # kreirajte funkciju: def displayData (temp, hum, extTemp, lum, butSts): oled.fill (0) oled.text ("Temp:" + str (temp) + "oC", 0, 4) oled.text ("Hum:" + str (hum) + "%", 0, 16) oled.text ("ExtTemp:" + str (extTemp) + "oC", 0, 29) oled. text ("Lumin:" + str (lum) + "%", 0, 43) oled.text ("Dugme:" + str (butSts), 0, 57) oled.show () # Glavna funkcija za čitanje svih senzora def main (): # prikaz podataka s funkcijom led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () '' '- ----- pokreni glavnu funkciju -------- '' 'main ()
Sačuvajte ga, na primjer kao localData.py.
Za pokretanje ovog koda izravno na vašem terminalu trebat će vam Ampy.
Prvo, na terminalu obavijestimo Ampy o našem serijskom portu:
izvoz AMPY_PORT =/dev/tty. SLAB_USBtoUART
Sada možemo vidjeti datoteke koje se nalaze u našem ESP korijenskom direktoriju:
ampy ls
Kao odgovor, dobit ćemo boot.py, to je prva datoteka koja će se pokrenuti u sistemu.
Sada, upotrijebimo Ampy za učitavanje naše python Script LocalData.py kao /main.py, tako da će se skripta pokrenuti odmah nakon pokretanja:
ampy stavi localData.py /main /py
Ako sada koristimo naredbu amp ls, unutar ESP -a ćete vidjeti 2 datoteke: boot.py i main.py
Poništavanjem ESP -a, program localData.py će se automatski pokrenuti, prikazujući podatke senzora na ekranu.
Gornji ekran za štampanje terminala pokazuje šta smo uradili.
Sa gornjim kodom, zaslon će se prikazati samo jednom, ali možemo definirati petlju na glavnoj () funkciji, koja će prikazivati podatke o svakom definiranom vremenskom intervalu (PUB_TIME_SEC), i na primjer, sve dok ne pritisnemo dugme:
# petlja za dobijanje podataka dok se ne pritisne dugme
while button.value (): led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () time.sleep (PUB_TIME_SEC)
Varijabla PUB_TIME_SEC mora biti deklarirana do trenutka kada želite svoje uzorke.
Kako bismo dodatno poboljšali naš kôd, bilo bi dobro obavijestiti da ćemo izaći iz petlje, jer ćemo za to definirati 2 nove opće funkcije, jednu za brisanje prikaza, a drugu za treptanje LED -a određeni broj puta.
# Jasan prikaz:
def displayClear (): oled.fill (0) oled.show () # kreira funkciju treptanja def blinkLed (num): za i u rasponu (0, num): led.on () sleep (0.5) led.off () spavanje (0,5)
Dakle, sada možemo prepisati našu glavnu () funkciju:
dok button.value ():
led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () time.sleep (PUB_TIME_SEC) blinkLed (3) displayClear ()
Konačni kod se može preuzeti sa mog GitHub -a: localData.py, a takođe i iz Jupyter Notebook -a koji se koristi za razvoj potpunog koda: Jupyter Local Data Development.
Korak 7: Povezivanje ESP -a s lokalnom WiFi mrežom
Mrežni modul koristi se za konfiguriranje WiFi veze. Postoje dva WiFi sučelja, jedno za stanicu (kada se ESP8266 poveže s usmjerivačem) i jedno za pristupnu točku (za povezivanje drugih uređaja na ESP8266). Ovdje će naš ESP biti povezan s lokalnom mrežom. Nazovimo biblioteku i definirajmo naše mrežne vjerodajnice:
uvozna mreža
WiFi_SSID = "VAŠ SSID" WiFi_PASS = "VAŠA LOZINKA"
Donja funkcija može se koristiti za povezivanje ESP -a na vašu lokalnu mrežu:
def do_connect ():
wlan = network. WLAN (network. STA_IF) wlan.active (True) ako nije wlan.isconnected (): print ('povezivanje na mrežu …') wlan.connect (WiFi_SSID, WiFi_SSID) dok nije wlan.isconnected (): pass print ('mrežna konfiguracija:', wlan.ifconfig ())
Pokretanjem funkcije, kao rezultat, možete dobiti IP adresu:
do_connect ()
Rezultat će biti:
mrežna konfiguracija: ('10.0.1.2 ',' 255.255.255.0 ', '10.0.1.1', '10.0.1.1 ')
Je li u mom slučaju 10.0.1.2 bila ESP IP adresa.
Korak 8: ThingSpeak
U ovom smo trenutku naučili kako hvatati podatke sa svih senzora, prikazujući ih na našem OLED -u. Sada je vrijeme da vidimo kako poslati te podatke na IoT platformu, ThingSpeak.
Počnimo!
Prvo morate imati račun na ThinkSpeak.com. Zatim slijedite upute za kreiranje kanala i zapišite svoj ID kanala i API API ključ.
Iznad možete vidjeti 5 polja koja će se koristiti na našem kanalu.
Korak 9: MQTT protokol i veza ThingSpeak
MQTT je arhitektura za objavljivanje/pretplaćivanje koja je prvenstveno razvijena za povezivanje propusne širine i uređaja ograničenih snage putem bežičnih mreža. To je jednostavan i lagan protokol koji radi preko TCP/IP utičnica ili WebSockets. MQTT preko WebSockets -a može se osigurati pomoću SSL -a. Arhitektura objavljivanja/pretplate omogućuje slanje poruka na klijentske uređaje bez potrebe uređaja da neprestano anketira poslužitelj.
MQTT posrednik je središnja točka komunikacije i zadužen je za slanje svih poruka između pošiljatelja i zakonitih primatelja. Klijent je svaki uređaj koji se poveže s posrednikom i može objaviti ili se pretplatiti na teme radi pristupa informacijama. Tema sadrži informacije o usmjeravanju za brokera. Svaki klijent koji želi slati poruke objavljuje ih na određenu temu, a svaki klijent koji želi primati poruke pretplaćuje se na određenu temu. Posrednik isporučuje sve poruke sa odgovarajućom temom odgovarajućim klijentima.
ThingSpeak ™ ima MQTT brokera na URL -u mqtt.thingspeak.com i portu 1883. Broker ThingSpeak podržava i MQTT objavljivanje i MQTT pretplatu.
U našem slučaju koristit ćemo: MQTT Publish
Slika opisuje strukturu teme. API API ključ je potreban za objavljivanje. Posrednik potvrđuje ispravan CONNECT zahtjev sa CONNACK -om.
MQTT protokol je podržan u ugrađenoj biblioteci u Micropython binarnim datotekama-ovaj protokol se može koristiti za slanje podataka sa vašeg ESP8266 preko WIFI-a u besplatnu bazu podataka u oblaku.
Koristimo biblioteku umqtt.simple:
iz umqtt.simple import MQTTClient
Znajući naš SERVER ID, moguće je kreirati naš klijentski objekt MQTT:
SERVER = "mqtt.thingspeak.com"
client = MQTTClient ("umqtt_client", SERVER)
Sada, pri ruci, imate svoje vjerodajnice za ThingSpeak:
CHANNEL_ID = "VAŠ ID KANALA"
WRITE_API_KEY = "VAŠ KLJUČ OVDJE"
Kreirajmo našu MQTT "temu":
topic = "kanali/" + CHANNEL_ID + "/objava/" + WRITE_API_KEY
Hajde da pošaljemo naše podatke na ThingSpeak IoT uslugu, koristeći kreiranu funkciju i povežemo njen odgovor s određenim varijablama podataka:
temp, hum, extTemp, lum, butSts = colectData ()
S ažuriranim tim varijablama možemo stvoriti naš "MQTT korisni teret":
korisni teret = "polje1 ="+str (temp)+"& polje2 ="+str (pjevušenje)+"& polje3 ="+str (extTemp)+"& polje4 ="+str (lum)+"& polje5 ="+str (butSts))
I to je to! Spremni smo za slanje podataka u ThinsSpeak, jednostavno pomoću 3 reda koda ispod:
client.connect ()
client.publish (tema, korisni teret) client.disconnect ()
Sada, ako odete na stranicu svog kanala (kao što je moje gore), vidjet ćete da svako od 5 polja ima podatke vezane za vaše senzore.
Korak 10: Zapisnik podataka senzora
Sada, kada znamo da je sa samo nekoliko redaka koda moguće učitati podatke na IoT uslugu, kreirajmo funkciju petlje koja će to raditi automatski u redovnom vremenskom intervalu (slično onome što smo učinili s "Lokalni podaci" ").
Koristeći istu varijablu (PUB_TIME_SEC), prethodno navedenu, jednostavna glavna funkcija za kontinuirano hvatanje podataka, njihovo bilježenje na našem kanalu bila bi:
dok je True:
temp, hum, extTemp, lum, butSts = colectData () payload = "field1 ="+str (temp)+"& field2 ="+str (hum)+"& field3 ="+str (extTemp)+"& field4 ="+ str (lum)+"& field5 ="+str (butSts) client.connect () client.publish (tema, korisni teret) client.disconnect () time.sleep (PUB_TIME_SEC)
Imajte na umu da se samo "korisni teret" mora ažurirati, nakon što se "tema" odnosi na vjerodajnice našeg kanala i neće se promijeniti.
Tražeći stranicu kanala ThingSpeak, primijetit ćete da će se podaci neprestano učitavati u svako polje. Možete pokriti LDR, staviti ruku na senzore temp/hum, pritisnuti dugme itd. I vidjeti kako će kanal automatski "evidentirati" te podatke za buduću analizu.
Obično bismo za evidentiranje podataka trebali pokušati koristiti što je manje moguće energije, tako da LED ili zaslon ne bismo koristili lokalno. Također, uobičajeno je za ESP uređaje, stavite ih u "duboki san", gdje će mikroprocesor biti u stanju minimalne energije sve dok ne dođe vrijeme za hvatanje podataka i njihovo slanje na IoT platformu.
No, kad se ovdje ideja uči, uključimo i ekran i LED kao i prije. Pritom će naša funkcija "zapisnika" biti:
dok button.value ():
led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () temp, hum, extTemp, lum, butSts = colectData () payload = "field1 ="+str (temp)+"& field2 ="+str (hum)+"& field3 ="+str (extTemp)+"& field4 ="+str (lum)+"& field5 ="+str (butSts) klijent.connect () client.publish (tema, korisni teret) client.disconnect () time.sleep (PUB_TIME_SEC) blinkLed (3) displayClear ()
Kompletnu skriptu microPython možete pronaći ovdje: dataLoggerTS_EXT.py i Jupyter bilježnicu koja je korištena za razvoj možete pronaći i ovdje: IoT ThingSpeak Data Logger EXT.ipynb.
Za postavljanje skripte na ESP, na svom terminalu koristite naredbu:
ampy stavi dataLoggerTS.py /main.py
I pritisnite tipku ESP - reset. Imat ćete ESP koji bilježi podatke i zapisuje ih na ThingSpeak.com dok se dno ne pritisne (pričekajte da LED lampica zatreperi 3 puta i da se OLED isključi).
Korak 11: Aplikacija ThingView
Zapisani podaci mogu se vidjeti direktno na web stranici ThingSpeak.com ili putem aplikacije, na primjer, ThingsView!
ThingView je aplikacija koju je razvila kompanija CINETICA i omogućava vam da na jednostavan način vizualizirate svoje ThingSpeak kanale, samo unesite ID kanala i spremni ste za rad.
Za javne kanale aplikacija će poštivati postavke vašeg prozora: boju, vremensku skalu, vrstu grafikona i broj rezultata. Trenutna verzija podržava linijske i stupne karte, spline grafikoni se prikazuju kao linijski grafikoni.
Za privatne kanale, podaci će se prikazivati pomoću zadanih postavki, jer nema načina da se pročitaju postavke privatnih prozora samo s API ključem.
Aplikaciju ThingView možete preuzeti za ANDROID i IPHONE.
Korak 12: Zaključak
Kao i uvijek, nadam se da će ovaj projekt pomoći drugima da pronađu svoj put u uzbudljivi svijet elektronike!
Za detalje i konačni kod posjetite moje skladište GitHub -a: IoT_TS_MQTT
Za više projekata posjetite moj blog: MJRoBot.org
Saludos sa juga svijeta!
Vidimo se u mom sljedećem uputstvu!
Hvala ti, Marcelo
Preporučuje se:
LED Whack-a-made: 5 koraka
LED Whack-a-mladež: Ova igra " Udar-krtica " koristi sedam LED dioda i joystick. Postoje 4 " madeža " na mojoj ploči, s lijeve strane predstavljene 3., 4., 5. i 6. LED. Jedna od ove četiri LED diode svijetlit će nasumično i nudit će fiksnu
Preinaka zvučnika: DIY (Made in Fusion 360): 18 koraka (sa slikama)
Promjena audio zvučnika: DIY (napravljeno u Fusion 360): Imam par zvučnika koje sam napravio prije 2 ½ godine. Ali kutije za zvučnike su neorganizirane i zauzimaju puno prostora. Stoga bih želio preurediti svoj audio zvučnik tako da kutiju ili kućište napravim u 3D štampanju. Zvučnik je dobar samo za računar
Super-cool Self-made LED-maska: 6 koraka
Super-cool Self-made LED-maska: Za početak: Ove upute se ne smiju koristiti kao medicinski savjet, maska se ni na koji način ne testira. Nemojte ga kopirati kao zaštitnu opremu, to je više kostim. Tako inspiriran @wow_elec_tron na Instagramu, odlučio sam napraviti vlastitu LED diodu
Prvi koraci sa Esp 8266 Esp-01 sa Arduino IDE - Instaliranje Esp ploča u Arduino Ide i programiranje Esp: 4 koraka
Prvi koraci sa Esp 8266 Esp-01 sa Arduino IDE | Instaliranje Esp ploča u Arduino Ide i programiranje Esp: U ovom uputstvu naučit ćemo kako instalirati esp8266 ploče u Arduino IDE i kako programirati esp-01 i učitati kod u njega. Budući da su esp ploče toliko popularne pa sam razmišljao o tome da ispravim instrukcije za ovo i većina ljudi se suočava s problemom
IoT Made Simple: Nadgledanje više senzora: 7 koraka
IoT Made Simple: Nadgledanje više senzora: Prije nekoliko tjedana ovdje sam objavio vodič o praćenju temperature pomoću DS18B20, digitalnog senzora koji komunicira preko 1-žične sabirnice, šaljući podatke putem interneta s NodeMCU-om i Blynk-om: IoT Made Simple : Monitoring temperature AnywhereBu