Mündəricat:
- Addım 1: İstifadə olunan hissələr və alətlər:
- Addım 2: Wifi menecerini fərdiləşdirin
- Addım 3: Form Fəaliyyəti üçün Xüsusi Funksiyalar
- Addım 4: Əlaqələr və Əsas Proqram
- Addım 5: Veb Server yaratmaq
- Addım 6: Son addım !
Video: İstehsal İdarəçiliyi üçün WIFI Ekranı: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
IOT və Tək lövhəli kompüterlər haqqında bir az məlumatım var.
Həmişə Hobbi və Əyləncə Layihələrindən (real İstehsal və İstehsal) kənarda istifadə etmək istəyirəm.
Bu Təlimat, saatlıq İstehsal Girişini göstərmək üçün ESP nodemcu ilə 4 rəqəmli 7 seqmentli WIFI ekranı yaratmaq üzrədir. İstehsal Döşəmə Girişini, Çıxışını və Prosesini İzləmək və Nəzarət etmək üçün İstehsal İcra Sistemindən (MES) istifadə etdiyimiz Elektronik istehsal sənayesində işləyirəm. Bu layihədə, İstehsal Giriş Miqdarını xətt, növbə və saata görə göstərəcək Kiçik ekran vahidi yaradıram.
Texniki cəhətdən bu Layihə, onlayndan API/HTTP cavabını istifadə etdiyimiz Youtube Abunəçilərinin sayına bənzəyir, lakin burada Giriş Miqdarı əldə etmək üçün yerli MES sistemimizlə qarşılıqlı əlaqə qurmaq üçün öz api yaradacağıq.
Addım 1: İstifadə olunan hissələr və alətlər:
İstifadə olunan Avadanlıq Hissələri:
- ESP düyməsi
- TM1637 4 rəqəmli saat Ekranı
- Düyməni itələyin
- 10k rezistor
- az keçid telləri
İstifadə olunan proqram vasitələri:
- Arduino IDE
- PHP/Apache veb serveri üçün Xampp
Arduino Kitabxanasında istifadə olunur:
1. Wifi meneceri tzapu & i Xüsusi sənədlərim üçün fərdiləşdirilmişəm (wifimanager)
2. Xüsusi dəyərlərimi Flash yaddaşda saxlamaq üçün ESP_EEPROM
3. Ekran üçün SevenSegmentTM1637
Addım 2: Wifi menecerini fərdiləşdirin
Əvvəlcə əvvəlcə wifi menecerini qurdum və sonra Wifi meneceri qovluğunu kopyaladım və Arduino kitabxana qovluğunda eyni şəkildə yenidən keçdim, sonra WiFiManager_custom olaraq dəyişdirildim.
Qovluq Kök qovluğu əsasən bəyənilir
C: / İstifadəçilər / kompüterinizin adı / Sənədlər / Arduino / kitabxanaları
Sonra wifimanager_custom qovluğunu açdım və başlıq.cpp faylını wifimanager_custom ilə eyni adlandırdım, başlıq və.cpp fayllarına da əlavə etdim.
Başlığa Xüsusi Formam və Düyməmi əlavə etdim.
HTTP_PORTAL_OPTIONS PROGMEM -də Menyu üçün düymə formamı əlavə etdim.
və xəttə daxil olmaq və keçmək üçün yeni bir forma əlavə etdi. bu formu sadə mətn forması olaraq yaratdım.
Bundan sonra.cpp faylında bu formalar üçün hərəkət funksiyaları yaradacağıq, bunun üçün başlıq sənədində funksiya bəyannaməsi etməliyik.
/ * mənim xüsusi funksiyalarım */
void handleCustomForm (); void handleCustomSave ();
Xüsusi funksiyalarımı başlıq sənədində elan etdim. Başlıqdakı işlərimiz bitdi, funksiyamızı və hərəkətlərimizi yaratmaq üçün.cpp faylı ilə getməliyik.
Addım 3: Form Fəaliyyəti üçün Xüsusi Funksiyalar
İndi wifimanager_custom.cpp faylımızı açırıq.
və formumuz göndərildikdə funksiyalarımızı çağırmaq üçün http cavab işləyicimizi əlavə etməliyik.
server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, bu)); // MY -in xüsusi qolu
server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, bu)); // MY -in xüsusi qolu
forma yerləşdirildikdə bunlar xüsusi funksiyalarımızı çağıracaq.
1.handleCustomForm ()-> xətt və keçid girişi və saxlama düyməsi üçün xüsusi formumuz olan bir səhifə yaradacaq.
2.handleCustomSave ()-> bu funksiya forma dəyərlərini alacaq və Flash yaddaş yerlərində 0 (xətt) və 50 (növbədə) saxlayacaq.
Addım 4: Əlaqələr və Əsas Proqram
Əlaqələr çox sadədir..
Bağlantılar və naqillər:
nodemcu TM1637 Ekran
3.3v ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- açar
- +5V -dən D8 pininə bərkidilmiş düymə - yerdən D8 pininə bərkidilmiş 10K rezistor
wifimanagerimizi fərdiləşdirməyi bitirdik. İndi əsas proqramımızı yaratmalıyıq.
1. wifi menecerimiz qoşulmaq üçün son istifadə etimadnaməsi olan wifi şəbəkəsi ilə əlaqə quracaq, uğursuz olarsa AutoConnectAP wifi serverini açar. Bu wifi serverinə qoşularaq yeni wifi məlumatlarını, xətti və keçidi konfiqurasiya edə bilərik.
2. sonra əsas döngəyə daxil olacaq.
Əsas döngəmiz iki hissədən ibarət olacaq. konfiqurasiya etmək üçün tələb rejimi AP -ni çağırmaq üçün xətti dəyişdirmək, dəyişdirmək və ya hər hansı bir wifi etimadnaməsini əlavə etmək lazım olduqda, konfri proqramdır. bu, D8 pininə bağlı bir düyməyə basıldığında çağırılacaq.
boşluq döngəsi () {
config_loop ();
}
etibarsız config_loop () {Serial.println ("");
Serial.println ("Konfiqurasiya düyməsinin vəziyyətini gözləyirik …");
//display.print("Gözləyin");
əgər (digitalRead (TRIGGER_PIN) == YÜKSƏK)
{
display.print ("Conf"); // WiFi meneceri
// Yerli intializasiya. İşi bitdikdən sonra WiFiManager wifiManager ətrafında saxlamağa ehtiyac yoxdur;
// parametrləri sıfırlayın - sınaq üçün
//wifiManager.resetSettings ();
// konfiqurasiya portalı sönənə qədər zaman aşımını təyin edir // hamısını yenidən sınamaq və ya saniyələr ərzində yatmaq // üçün faydalıdır
//wifiManager.setTimeout(120);
// göstərilən adla bir giriş nöqtəsinə başlayır
// burada "AutoConnectAP" // və konfiqurasiyanı gözləyən bir bloklama döngəsinə daxil olur
// BU OLMADAN AP APARICI SDK 1.5 İLƏ İŞLƏMİR, ən azından 1.5.1 -ə yeniləyin //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("bağlana bilmədi və zaman aşımına uğramadı"); gecikmə (3000); // sıfırlayın və yenidən cəhd edin və ya bəlkə də dərin yuxuya qoyun ESP.reset (); gecikmə (5000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Ana döngə "); //display.clear ();
}
İkincisi, müəyyən bir serverdən HTTP cavabını almaq və Giriş miqdarını Ekranda göstərmək üçün əsas proqramımız olacaq.
Bunun üçün əvvəlcə ESP-in Flash yaddaşından xətt və keçid detallarımızı almalıyıq (ünvan 0-> xətt, 50-> shift)
EEPROM.begin (100); // eeprom saxlamaEEPROM.get (0, xətt); // 0 ünvanından dəyər alın
EEPROM.get (50, növbə); // 50 ünvanından dəyər alın
sonra bu xətti keçməliyik və giriş və çıxış dəyərini əldə etmək üçün detalları http metodumuza köçürməliyik.
String Base_url = "silindi"; // mənim əsas urlHTTPClient http; // HTTPClient sinifinin obyekti
String URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // bu, bütün http cavab sətrini çap edəcək;
bütün mətnin işinizin burada bitdiyini bilmək istəyirsinizsə, onu birbaşa tm1637 ekranında göstərə bilərik.
display.print (http.getString ());
Ancaq bütün mətni göstərmək istəmirəm, çünki daxil etmə, json formasında çıxış və verilənlər bazası və digərləri haqqında digər ümumi mətni ehtiva edir.
buna görə əvvəlcə Substring () funksiyasından istifadə edərək həmin ümumi mətni cavab sətrindən sildim.
Ümumi mətnin uzunluğunu saydım və kəsdim.
əgər (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument kökü (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
String json_string = http.getString (). Alt sətir (121); /* cavabınız bu kodu silə biləcəyiniz bir şeyə malik deyilsə, bu ümumi mətn mənim ofsetimdir; */
//Serial.println(json_string);
DeserializationError xətası = deserializeJson (kök, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
əgər (səhv)
{Serial.print (F ("deserializeJson () uğursuz oldu:"));
Serial.println (error.c_str ());
qayıtmaq;
}
başqa {
const char* giriş = kök ["giriş"];
const char* çıxış = kök ["çıxış"];
Serial.print ("Giriş:");
Serial.println (giriş);
Serial.print ("Çıxış:");
Serial.println (çıxış);
display.print ("……");
display.clear (); // ekranı silin
display.print (giriş); // ÇOX SAYIŞ BAZI Rəqəmləri çap edin
}
əsas proqramımız bitdi.
Addım 5: Veb Server yaratmaq
Dəqiq miqdar əldə etmək üçün SQL verilənlər bazamdan məlumat almaq üçün veb xidmətim və PHP kodu olaraq xampp istifadə edirəm.
Ancaq bütün orijinal kodları paylaşa bilmərəm. çünki şirkətimin məxfiliyi. ancaq bir veb serverin necə yaradılacağını, saxta statik giriş və çıxış miqdarını göstərəcəyəm.
Bunun üçün hər hansı bir veb sahibinə ehtiyacınız var, burada xampp -ı ev sahibi olaraq istifadə edirəm.
xampp -ı buradan yükləyə bilərsiniz.
xampp qurun … aydın təlimata ehtiyacınız varsa, bu linkdən istifadə edə bilərsiniz.
Xampp qurduqdan sonra kök qovluğunuza keçməlisiniz.
C: / xampp / htdocs
bütün php proqramlarınız bu kök daxilində olmalıdır.
səhifəmi esp_api.php adında yaratdım
bu mənim php kodumdur. burada yalnız giriş və çıxışın statik dəyərlərini göstərirəm;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
echo ("myString"); // ümumi mətn
əgər ($ line == 'a0401' və $ shift = 'dd') {$ nəticə ['giriş'] = 100; $ nəticə ['çıxış'] = 99; }
başqa {$ nəticə ['input'] = 200; $ nəticə ['çıxış'] = 199; }
$ myObj-> giriş = ''. $ nəticə ['giriş']. '';
$ myObj-> çıxış = ''. $ nəticə ['çıxış']. '';
$ myJSON = json_encode ($ myObj);
echo $ myJSON;
İndi HTTP cavab API -si başa çatdı.
Http baza urlimiz kimi olacaq
you_ip_address/esp_api.php
ilə API cavab mətninizi yoxlaya bilərsiniz
localhost/esp_api.php? line = a0401 & shift = dd
burada a0401 olaraq xətti qeyd etdim və dd olaraq keçdim.
Addım 6: Son addım !
Baza URL -də kompüterinizin ip ünvanını daxil edin
String Base_url = "silindi"; // əsas url
və ESP nodemcu -ya yükləyin. Yalnız mobil və ya dizüstü kompüterinizdən wifi yandırdıqdan sonra AutoConnectAP adlı bir şəbəkə əldə edəcəksiniz. onunla əlaqə qurun və etimadnamənizi və xətt konfiqurasiyalarınızı daxil edin.
Sonra cihazınızı sıfırlayın və şəbəkəyə qoşulduqdan sonra hər şey tamamlandığını yoxlayın.
Girişin ekranda göründüyünü görə bilərsiniz.
hər hansı bir xətti və ya wifi etimadnaməsini dəyişdirmək istəyirsinizsə, düyməni bir neçə saniyə basa bilərsiniz, ekranda Confi göstərilir.
AP rejiminə daxil olmusunuz. cihazınızı dəyişə və sıfırlaya bilərsiniz.
Hobbi və əyləncəli layihələrimizi həqiqi istehsal və istehsal sahələrində necə istifadə edə biləcəyimizi sizə göstərmək üçün təlimatlandıran əsas moto.
Tövsiyə:
CR2032 üçün Güc İdarəçiliyi: 4 addım
CR2032 üçün Güc İdarəçiliyi: Az enerji tətbiq edərkən bəzi xüsusi şikayətlər və kod xətləri baxımına ehtiyac var. Bəzi komponentlər bu xüsusiyyəti verir, digərləri qısa müddətdə işlənməlidir. Çox aşağı enerjili bir tətbiqdə işləyərkən əsas fikir batareya növüdür
Çox sürətli AC Motor İdarəçiliyi üçün IR Dekoderini necə proqramlaşdırmaq olar: 7 addım
Çox sürətli AC Motor İdarəçiliyi üçün IR Dekoderini necə proqramlaşdırmaq olar: Tək fazalı alternativ cərəyan mühərrikləri adətən fanatlar kimi məişət əşyalarında olur və müəyyən edilmiş sürətlər üçün bir sıra ayrı sarımlardan istifadə edərkən onların sürəti asanlıqla idarə olunur. Bu Təlimat kitabçasında bir rəqəmsal nəzarətçi qururuq ki
ESP8266 RGB LED STRIP WIFI İdarəetmə - NODEMCU, Wi -Fi üzərindən idarə olunan Led Strip üçün IR Uzaqdan - RGB LED STRIP Smartfon İdarəçiliyi: 4 addım
ESP8266 RGB LED STRIP WIFI İdarəetmə | NODEMCU, Wi -Fi üzərindən idarə olunan Led Strip üçün IR Uzaqdan | RGB LED STRIP Smartfon İdarəçiliyi: Salam uşaqlar, bu dərslikdə bir RGB LED şeridini idarə etmək üçün nodemcu və ya esp8266 -ı IR uzaqdan idarəetmə vasitəsi kimi istifadə etməyi öyrənəcəyik və Nodemcu smartfon vasitəsilə wifi üzərindən idarə olunacaq. Beləliklə, əsasən smartfonunuzla RGB LED STRIP -ə nəzarət edə bilərsiniz
Ton istehsal etmək üçün Piezodan necə istifadə olunur: Əsaslar: 4 addım (şəkillərlə)
Ton istehsal etmək üçün Piezodan necə istifadə olunur: Əsaslar: Hamıya salam, Bu təlimatda, ton istehsal etmək üçün Piezo səs siqnalı istifadə edəcəyik. Piezo buzzer nədir? Piezo, həm səs çıxarmaq, həm də aşkar etmək üçün istifadə edilə bilən bir elektron cihazdır
Kartal PCB lövhəsini istehsal üçün necə hazırlamaq və göndərmək olar: 6 addım
İstehsal üçün Kartal PCB Kartının Hazırlanması və Göndərilməsi: Salam! Bu qısa dərsdə sizə PCB -ni necə ixrac edəcəyinizi və sizin üçün istehsal etmək üçün PCB istehsal evinə necə göndərəcəyinizi göstərəcəyəm. Bu təlimatda ALLPCB fab istifadə edəcəyəm. . ev.www.allpcb.com Başlayaq