Turinys:
- 1 žingsnis: APIE ŠĮ PROJEKTĄ
- 2 veiksmas: reikalinga aparatinė įranga
- 3 žingsnis: grandinė ir jungtys
- 4 žingsnis: DARBAS
- 5 veiksmas: HTML ir JAVASCRIPT KODAS
- 6 žingsnis: PAGRINDINĖS PASTABOS
- 7 veiksmas: KODAS
- 8 žingsnis: vaizdo įrašo pamoka
Video: 7 segmentų LED ekrano valdymas naudojant ESP8266 žiniatinklio serverį: 8 žingsniai (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Mano projektas turi „Nodemcu ESP8266“, kuris valdo 7 segmentų ekraną per http serverį, naudojant html formą.
1 žingsnis: APIE ŠĮ PROJEKTĄ
Tai IOT projektas, sukurtas naudojant ESP8266 (NodeMCU) wifi modulį. Projekto motyvas - modulyje sukurti žiniatinklio serverį, kuris tinkle galėtų priimti kelis klientus. Čia, norint suprasti mano projektą, reikia pagrindinių žinių apie html ir javaScript. Kai kurios išankstinės temos, kurias čia aptarsiu dėl ESP8266 ir „JavaScript“, yra šios:
1. Įkelkite failus į ESP8266 SPIFFS, kad galėtumėte efektyviau naudoti šiuos failus mūsų arduino kode.
2. Interneto saugykla naudojant „JavaScript“
SPIFFS
Iki šiol į savo eskizą visada įtraukėme savo tinklalapių HTML kaip eilutės literalus. Dėl to mūsų kodą labai sunku skaityti, o atmintis gana greitai baigsis.
SPIFFS yra lengva failų sistema, skirta mikrovaldikliams su SPI „flash“mikroschema. ESP8266 blykstės lustas turi daug vietos jūsų tinklalapiams, ypač jei turite 1 MB, 2 MB arba 4 MB versiją. Jūs galite suprasti, kaip pridėti įrankius į savo „arduino“programinę įrangą, skirtą įkelti failus į SPIFFS, naudodami šią nuorodą:
Šiame projekte turiu 2 html failą ir „JavaScript“failą. Visi šie failai įkeliami į SPIFFS, atskirti nuo eskizo, todėl šių failų pakeitimas nepriklauso nuo pagrindinio eskizo.
Abu html failai gaunami naudojant prepaFile (), kaip parodyta žemiau:
void prepFile () {
bool gerai = SPIFFS.begin (); if (gerai) {Failas f = SPIFFS.open ("/index.html", "r"); Failas f1 = SPIFFS.open ("/index1.html", "r"); duomenys = f.readString (); duomenys1 = f1.readString (); f. uždaryti (); f1.daryti (); } else Serial.println ("Nerasta tokio failo."); }
kol „JavaScript“failas skaitomas naudojant „loadScript“(), kaip parodyta žemiau:
void loadScript (eilutės kelias, eilutės tipas) {
if (SPIFFS.egzistuoja (kelias)) {Failo failas = SPIFFS.open (kelias, „r“); server.streamFile (failas, tipas); }}
VIETINĖS PROGRAMOS SAUGOJIMAS
Galite suprasti, kaip naudoti skirtingus vietinio saugojimo objektus ir metodus HTML5, naudodami „JavaScript“iš šio straipsnio: https://diveintohtml5.info/storage.html. Darbo skyriuje aptarsiu vietinės saugyklos naudojimą savo projekte.
2 veiksmas: reikalinga aparatinė įranga
„NodeMCU ESP8266 12E Wifi“modulis
Duonos lenta be litavimo
Jumperio viela
7 Segentinis ekranas (bendras katodas)
1K omo rezistorius
„Micro-USB“kabelis (skirtas „NodeMCU“prijungti prie kompiuterio)
3 žingsnis: grandinė ir jungtys
Sujungimai tikrai lengvi. Aukščiau pateiktoje schemoje „nodemcu“kaiščiai yra prijungti taip:
A D1
B D2
C D3
D D4
E D6
F D7
G D8
kur A, B, C, D, E & F yra 7 segmentų ekrano segmentai
. Nepaisykite 7 segmentų ekrano DP. Nejunkite jo su ESP kaiščiu D5
4 žingsnis: DARBAS
Kaip minėta anksčiau, turime du html failus. Vienas iš jų yra šakninis html puslapis, iškviečiamas, kai ESP8266 serveris gavo „/“, ty jei prašoma URI „/“, serveris turėtų atsakyti įvesdamas HTTP būsenos kodą 200 (gerai) ir pasiųsdamas atsakymą su „indeksu“. html “failą.
Antrasis html failas bus išsiųstas klientui paprašius iš pagrindinio puslapio, pateikdamas įvestį formoje. Kai tik serveris gauna įvestį POSTED iš formos, jis palygina ją su fiksuota eilutės reikšme ir atsako į antrąjį html puslapį.
if (server.arg ("nam") == "0") {server.send (200, "text/html", data1); septyniSeg (0); }
Kadangi antrojo puslapio html nėra eskize apibrėžtas, čia mes nurodome „data1“, kuris jau perskaitė html kodus naudojant SPIFFS.readString ()
Failas f1 = SPIFFS.open ("/index1.html", "r"); data1 = f1.readString ();
Čia „sevenSeg“() taip pat vadinamas argumentu „0“, kad jį būtų galima naudoti rodant „0“, įjungiant ir išjungiant skirtingus segmentus. Čia aš padariau fuction pavadinimą savaime suprantamą, ty onA () įjungs A segmento 7 segmentų ekraną ant duonos lentos, panašiai išjungs A jį išjungs.
Taigi, šiuo atveju, norėdami rodyti „0“, turime perjungti visus segmentus, išskyrus G (DP ignoruojama, nes nėra prijungta prie jokio ESP8266 kaiščio). Taigi mano funkcija atrodo taip:
jei (num == 0) {onA (); onB (); onC (); onD (); onE (); onF (); offG (); }
5 veiksmas: HTML ir JAVASCRIPT KODAS
„Index.html“turi drobę su 7 segmentų ekranu išjungtu režimu ir forma po juo. Štai ką matote atidarę:
Jei norime naudoti mūsų tinklalapį be ESP8266, tai bus įmanoma pakeitus jūsų formos veiksmo atributo nuorodą. Šiuo metu tai yra nuoroda veiksme:
Čia galite pamatyti, kad veikianti nuoroda yra tas pats IP adresas, kuris priskiriamas jūsų mazgui MCU prisijungus prie bet kurio „Wi -Fi“(arba viešosios interneto prieigos taško). Formos žyma po koregavimo atrodo taip:
Čia naudoju naršyklės žiniatinklio valdiklį, kad išsaugočiau vartotojo įvesties vertę taip, kad į index.html įvesta vertė būtų išsaugota naršyklėje vietoje (pvz., Slapukas). Šią reikšmę gauna indeksas1.html, o skaičius rodomas 7 segmentų ekrane html drobėje. Šią procedūrą galite suprasti žiūrėdami vaizdo įrašą:
video_attach
6 žingsnis: PAGRINDINĖS PASTABOS
Šis projektas veiks su jūsų „nodemcu“, jei pasirūpinsite šiais punktais:
1. Šakninio html failo veiksmo atributo nuoroda turėtų būti „https:// (IP serijos monitoriuje arba IP, priskirtas jūsų ESP)/pateikti“.
2. Naudokite naujausią naršyklės versiją, kuri palaiko html5 ir naujas žymas bei funkcijas.
3. SPIFFS veiks tik tada, jei jūsų aplankas „data.html“, „index1.html“ir „main.js“bus sujungti. Galite klonuoti kodo failą iš mano „github“
7 veiksmas: KODAS
Tai yra mano projekto kodo saugyklos nuoroda. Jei dirbate su SPIFFS naudodami ESP8266, galite suprasti, kodėl aš įdėjau html ir javascript failus į duomenų aplanką. Naudokite tai taip.
„GitHub“saugyklos nuoroda
8 žingsnis: vaizdo įrašo pamoka
Jei tai padeda, užsiprenumeruokite
Rekomenduojamas:
Garažo durų atidarytuvas su atsiliepimais naudojant „Esp8266“kaip žiniatinklio serverį .: 6 žingsniai
Garažo durų atidarytuvas, naudodamas „Esp8266“kaip žiniatinklio serverį: Sveiki, aš jums parodysiu, kaip padaryti paprastą būdą padaryti garažo durų atidarytuvą.-ESP8266 yra užkoduotas kaip žiniatinklio serveris, durys gali būti atidarytos visur pasaulyje atsiliepimai, jūs žinosite, ar durys yra atidarytos arba uždarytos realiu laiku-paprasta, tik vienas spartusis klavišas
Septynių segmentų ekrano valdymas naudojant „Arduino“ir 74HC595 pamainų registrą: 6 žingsniai
Septynių segmentų ekrano valdymas naudojant „Arduino“ir 74HC595 pamainų registrą: Ei, kas vyksta, vaikinai! Akarsh čia iš „CETech“. Septynių segmentų ekranai yra gerai pažvelgti ir visada yra patogus įrankis duomenims rodyti skaitmenimis, tačiau juose yra trūkumas, kai mes realiai valdome septynių segmentų ekraną
Žaliuzių valdymas naudojant ESP8266, „Google Home“ir „Openhab“integraciją bei žiniatinklio valdymą: 5 žingsniai (su paveikslėliais)
Žaliuzių valdymas Naudojant ESP8266, „Google Home“ir „Openhab“integraciją bei žiniatinklio valdymą: šioje instrukcijoje parodysiu, kaip prie žaliuzių pridėjau automatikos. Aš norėjau, kad būtų galima pridėti ir pašalinti automatiką, todėl visas montavimas yra klipas. Pagrindinės dalys yra: Žingsninis variklis Žingsninis vairuotojas valdomas iš ESP-01 Pavaros ir montavimas
„RasbperryPi“automobilis su FPV kamera. Valdymas naudojant žiniatinklio naršyklę: 31 žingsnis (su paveikslėliais)
„RasbperryPi“automobilis su FPV kamera. Valdymas naudojant žiniatinklio naršyklę: Mes sukursime keturių variklių automobilį - vairas bus panašus į bako - pasukti vieną ratų pusę sukasi skirtingu greičiu nei kitas. Prie automobilio kamera bus padėta ant specialaus laikiklio, kuriame galėsime pakeisti kameros padėtį. Robotas bus
Ekrano temperatūra P10 LED ekrano modulyje naudojant „Arduino“: 3 žingsniai (su paveikslėliais)
Ekrano temperatūra P10 LED ekrano modulyje naudojant „Arduino“: Ankstesnėje pamokoje buvo pasakyta, kaip rodyti tekstą „Dot Matrix LED Display P10“modulyje naudojant „Arduino“ir DMD jungtį, kurią galite patikrinti čia. Šioje pamokoje mes pateiksime paprastą projekto pamoką, naudojant P10 modulį kaip ekrano mediją