Mündəricat:

ESP8266 Veb Serverindən istifadə edərək 7 Segmentli LED Ekranın İdarə Edilməsi: 8 Addım (Şəkillərlə birlikdə)
ESP8266 Veb Serverindən istifadə edərək 7 Segmentli LED Ekranın İdarə Edilməsi: 8 Addım (Şəkillərlə birlikdə)

Video: ESP8266 Veb Serverindən istifadə edərək 7 Segmentli LED Ekranın İdarə Edilməsi: 8 Addım (Şəkillərlə birlikdə)

Video: ESP8266 Veb Serverindən istifadə edərək 7 Segmentli LED Ekranın İdarə Edilməsi: 8 Addım (Şəkillərlə birlikdə)
Video: Learn Arduino in 30 Minutes: Examples and projects 2024, Noyabr
Anonim
ESP8266 Veb Serverindən istifadə edərək 7 Segmentli LED Ekrana nəzarət
ESP8266 Veb Serverindən istifadə edərək 7 Segmentli LED Ekrana nəzarət

Layihəmdə html formasından istifadə edərək http serveri vasitəsilə 7 seqmentli ekranı idarə edən Nodemcu ESP8266 var.

Addım 1: BU PROJE HAQQINDA

ESP8266 (NodeMCU) wifi modulu istifadə edərək hazırlanmış bir IOT layihəsidir. Layihənin motivi, modul üzərində şəbəkə üzərindən birdən çox müştərini yerləşdirə biləcək bir veb server yaratmaqdır. Layihəmi başa düşmək üçün burada html və javaScript haqqında əsas biliklərə ehtiyac var. ESP8266 və javaScript ilə əlaqədar burada müzakirə edəcəyim bəzi qabaqcıl mövzular bunlardır:

1. Arduino kodumuzda bu fayldan daha səmərəli istifadə etmək üçün ESP8266 -nın SPIFFS -ə faylların yüklənməsi.

2. javaScript istifadə edərək veb saxlama

SPIFFS

İndiyə qədər, hər zaman veb səhifələrimiz üçün HTML -ni eskizimizə simli hərflər olaraq daxil etdik. Bu, kodumuzu oxumağı çox çətinləşdirir və yaddaşınız çox tez tükənəcək.

SPIFFS, SPI flaş çipi olan mikro nəzarətçilər üçün yüngül bir fayl sistemidir. ESP8266-nın daxili flaş çipində, xüsusən 1MB, 2MB və ya 4MB versiyanız varsa, veb səhifələriniz üçün çox yer var. Faylları SPIFFS -ə yükləmək üçün arduino proqramınıza alətlər əlavə etməyi aşağıdakı linkdən öyrənə bilərsiniz:

Bu layihədə 2 html faylı və bir javascript faylı var. Bütün bu sənədlər eskizdən ayrılmış SPIFFS -ə yüklənir, beləliklə bu sənədlərdəki dəyişiklik əsas eskizdən asılı deyil.

Hər iki html faylları aşağıda göstərildiyi kimi PreparFile () tərəfindən alınır:

void PreparFile () {

bool ok = SPIFFS.begin (); əgər (tamam) {Fayl f = SPIFFS.open ("/index.html", "r"); Fayl f1 = SPIFFS.open ("/index1.html", "r"); data = f.readString (); data1 = f1.readString (); f.close (); f1.close (); } else Serial.println ("Belə bir fayl tapılmadı."); }

javascript faylı aşağıda göstərildiyi kimi loadScript () istifadə edərək oxunur:

void loadScript (String yolu, String növü) {

if (SPIFFS.exists (yol)) {{Fayl faylı = SPIFFS.open (yol, "r"); server.streamFile (fayl, növ); }}

WEB Tətbiqləri üçün Yerli Saxlama

Aşağıdakı məqalədən JavaScript istifadə edərək HTML5 -də fərqli obyektlərin və yerli saxlama üsullarının necə istifadə ediləcəyini aşağıdakı məqalədən anlaya bilərsiniz: https://diveintohtml5.info/storage.html. İş bölməsində layihəmdə yerli saxlamanın istifadəsini müzakirə edəcəyəm.

Addım 2: Avadanlıq tələb olunur

NodeMCU ESP8266 12E Wifi modulu

Lehimsiz çörək taxtası

Jumper teli

7 Segent Ekranı (Ümumi Katod)

1K ohm müqavimət

Mikro USB kabeli (NodeMCU-nu kompüterinizə bağlamaq üçün)

Addım 3: Dövrə və Bağlantılar

Dövrə və Əlaqələr
Dövrə və Əlaqələr

Əlaqələr həqiqətən asandır. Yuxarıdakı sxemdə, nodemcu pinləri aşağıdakı şəkildə bağlanır:

A D1

B D2

C D3

D D4

E D6

F D7

G D8

burada A, B, C, D, E & F 7Segment Display -in seqmentləridir

. 7 seqmentli ekranın DP -yə məhəl qoymayın. ESP -nin D5 pininə bağlamayın

Addım 4: İŞLƏ

İŞLƏYİR
İŞLƏYİR

Daha əvvəl müzakirə edildiyi kimi, iki html faylımız var. Bunlardan biri, ESP8266 serverinin "/" yəni "URI '/' tələb edildiyi zaman çağırılan kök html səhifəsidir, server 200 (Ok) bir HTTP status kodu ilə cavab verməli və sonra" indeksi ilə cavab göndərməlidir. html "faylı.

İkinci html faylı, müştəri forma daxil olaraq kök səhifədən istədikdə göndəriləcək. Server formadan POSTED girişini aldıqdan sonra onu sabit simli dəyərlə müqayisə edir və cavab olaraq ikinci html səhifəsini göndərir.

if (server.arg ("nam") == "0") {server.send (200, "text/html", data1); sevenSeg (0); }

2 -ci səhifə üçün html eskizdə müəyyən edilmədiyi üçün burada SPIFFS.readString () istifadə edərək html kodlarını oxuyan "data1" ə istinad edirik.

Fayl f1 = SPIFFS.open ("/index1.html", "r"); data1 = f1.readString ();

Burada sevenSeg () də "0" arqumenti ilə çağrılır ki, fərqli seqmentləri AÇMA və SÖFT edərək "0" ı göstərmək üçün istifadə olunsun. Burada fuction adını özünəməxsus şəkildə izah etdim, yəni onA () çörək lövhəsində 7 seqlik ekranın A seqmentini açacaq, buna bənzər şəkildə dəA onu söndürəcək.

Beləliklə, bu vəziyyətdə "0" göstərmək üçün G istisna olmaqla bütün seqmentləri dəyişdirməliyik (ESP8266 -nın heç bir pininə bağlı olmadığı üçün DP nəzərə alınmır). Beləliklə, mənim funksiyam belə görünür:

əgər (sayı == 0) {onA (); onB (); onC (); onD (); onE (); onF (); offG (); }

Addım 5: HTML və JAVASCRIPT KODU

HTML və JAVASCRIPT KODU
HTML və JAVASCRIPT KODU

İndex.html, 7 seqmenti söndürmə rejimində və aşağıda formada olan bir kətana malikdir. Açdıqdan sonra gördüyünüz budur:

Veb səhifəmizi ESP8266 olmadan istifadə etmək istəyiriksə, formanızın hərəkət atributundakı linki dəyişdirməklə mümkün olacaq.

Burada, hər hansı bir wifi (və ya qaynar nöqtəyə) qoşulduqdan sonra nodeMCU'nuza ayrılan ipin eyni olduğunu görürük. Düzəlişdən sonra form etiketi belə görünür:

Burada, index.html -ə daxil edilən dəyər brauzerdə yerli olaraq (çerez kimi) saxlanılacağı üçün istifadəçinin giriş dəyərini saxlamaq üçün brauzerin veb vuruşundan istifadə edirəm. Bu dəyər index1.html tərəfindən alınır və nömrə html canvas -da 7 seqmentli ekranda göstərilir. Bu proseduru aşağıdakı videodan başa düşə bilərsiniz:

video əlavə edin

Addım 6: ƏSAS QEYDLƏR

Aşağıdakı nöqtələrə diqqət yetirsəniz, bu layihə nodemcu ilə işləyəcək:

1. Kök html faylının hərəkət atributundakı link "https:// (Serial monitorda IP və ya ESP -ə ayrılmış IP)/göndər" olmalıdır.

2. HTML5 və yeni etiketləri və funksionallığı dəstəkləyən brauzerin son versiyasından istifadə edin.

3. SPIFFS yalnız index.html, index1.html və main.js məlumat qovluğunda bir araya gətirildikdə işləyəcək. Kod faylını github -dan klonlaya bilərsiniz

Addım 7: KOD

KOD
KOD

Bu, layihəmin kodunun depo bağlantısıdır. ESP8266 -da SPIFFS ilə işləyirsinizsə, html və javascript fayllarını niyə məlumat qovluğuna yerləşdirdiyimi başa düşə bilərsiniz.

GitHub Repository Link

Addım 8: Video Dərsliyi

Kömək Edirsə Abunə Olun

Tövsiyə: