Mündəricat:

İstehsal İdarəçiliyi üçün WIFI Ekranı: 6 addım
İstehsal İdarəçiliyi üçün WIFI Ekranı: 6 addım

Video: İstehsal İdarəçiliyi üçün WIFI Ekranı: 6 addım

Video: İstehsal İdarəçiliyi üçün WIFI Ekranı: 6 addım
Video: iPhone istifadə edirsənsə, mütləq izlə! 😎 2024, Iyul
Anonim
İstehsalat İdarəçiliyi üçün WIFI Ekranı
İstehsalat İdarəçiliyi üçün WIFI Ekranı

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 hissələr və alətlər
İstifadə olunan hissələr və alətlər

İstifadə olunan Avadanlıq Hissələri:

  1. ESP düyməsi
  2. TM1637 4 rəqəmli saat Ekranı
  3. Düyməni itələyin
  4. 10k rezistor
  5. az keçid telləri

İstifadə olunan proqram vasitələri:

  1. Arduino IDE
  2. 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

Wifi menecerinin fərdiləşdirilməsi
Wifi menecerinin fərdiləşdirilməsi

Ə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

Form Fəaliyyəti üçün Xüsusi Funksiyalar
Form Fəaliyyəti üçün Xüsusi Funksiyalar
Form Fəaliyyəti üçün Xüsusi Funksiyalar
Form Fəaliyyəti üçün Xüsusi Funksiyalar
Form Fəaliyyəti üçün Xüsusi Funksiyalar
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 və Əsas Proqram
Ə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

Veb serverin yaradılması
Veb serverin yaradılması
Veb serverin yaradılması
Veb serverin yaradılması

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 !

Son addım !!!
Son addım !!!
Son addım !!!
Son addım !!!
Son addım !!!
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ə: