Բովանդակություն:

WIFI ցուցադրում արտադրության կառավարման համար. 6 քայլ
WIFI ցուցադրում արտադրության կառավարման համար. 6 քայլ

Video: WIFI ցուցադրում արտադրության կառավարման համար. 6 քայլ

Video: WIFI ցուցադրում արտադրության կառավարման համար. 6 քայլ
Video: №54. Գլոբալ քաղաքականություն №6: Ինչ մանևր է կատարվում կորոնավիրուսի միջոցով №2: 2024, Հուլիսի
Anonim
WIFI ցուցադրում արտադրության կառավարման համար
WIFI ցուցադրում արտադրության կառավարման համար

Ես փոքր սերիա եմ IOT և Single Board համակարգիչների մասին:

Ես միշտ ցանկանում եմ օգտագործել այն Hobby & Fun Projects- ից դուրս (իրական արտադրություն և արտադրություն):

Այս Instructable- ը պատրաստվում է ստեղծել 4 թվանշանի 7-հատվածի WIFI էկրան ՝ ESP nodemcu- ով ՝ Արտադրության ժամային մուտքը ցուցադրելու համար: Ես աշխատում եմ էլեկտրոնիկայի արտադրական արդյունաբերությունում, որտեղ մենք օգտագործում ենք Manufacturing Execution System (MES) ՝ արտադրական հարկի մուտքի, ելքի և գործընթացի վերահսկման և վերահսկման համար: Այս նախագծում ես ստեղծում եմ փոքր ցուցադրման միավոր, որը ցույց կտա Արտադրության մուտքի քանակը ՝ ըստ տողի, հերթափոխի և ժամի:

Տեխնիկական առումով այս isրագիրը նման է Youtube- ի բաժանորդների հաշվարկի ցուցադրմանը, որտեղ մենք օգտագործում ենք API/HTTP պատասխանը առցանց: Բայց այստեղ մենք պատրաստվում ենք ստեղծել մեր սեփական api- ն `մեր տեղական ԱԻՆ համակարգի հետ փոխազդելու համար` մուտքագրման քանակություն ստանալու համար:

Քայլ 1: Օգտագործված մասեր և գործիքներ

Օգտագործված մասեր և գործիքներ
Օգտագործված մասեր և գործիքներ

Օգտագործված ապարատային մասեր.

  1. ESP nodemcu
  2. TM1637 4 նիշ ժամացույց Displayուցադրել
  3. Հրել անջատիչ
  4. 10k դիմադրություն
  5. մի քանի ցատկող լարեր

Օգտագործված ծրագրային գործիքներ.

  1. Arduino IDE
  2. Xampp PHP/Apache վեբ սերվերի համար

Օգտագործված Arduino գրադարանը.

1. Wifi մենեջեր tzapu & i Հարմարեցված է իմ հարմարեցված ֆայլերի համար (wifimanager)

2. ESP_EEPROM ՝ իմ սովորական արժեքները Flash հիշողության մեջ պահելու համար

3. SevenSegmentTM1637 Displayուցադրման համար

Քայլ 2: Անհատականացրեք Wifi Manager- ը

Անհատականացնել Wifi Manager- ը
Անհատականացնել Wifi Manager- ը

Այս սկզբում ես առաջինը տեղադրեցի wifi մենեջեր, այնուհետև պատճենեցի Wifi մենեջերի թղթապանակը և նորից անցա նույնը Arduino գրադարանի թղթապանակում, այնուհետև վերանվանվեց որպես WiFiManager_custom:

Թղթապանակի արմատային գրացուցակ Հիմնականում դուր է գալիս

C: / Users / ձեր համակարգչի անունը / Documents / Arduino / գրադարաններ

Հետո բացեցի wifimanager_custom թղթապանակը և վերանվանեցի header.cpp ֆայլը, ինչպես և wifimanager_custom, նույնը ավելացրեցի նաև վերնագրի և.cpp ֆայլերում:

Եվ վերնագրում ավելացվեց իմ սովորական ձևը և կոճակը:

HTTP_PORTAL_OPTIONS PROGMEM- ում ես ավելացրել եմ կոճակի ձևը Մենյուի համար:

և ավելացրեց նոր ձև ՝ տող և հերթափոխ մուտքագրելու համար: Ես ստեղծեցի այս ձևը որպես պարզ տեքստային ձև:

Դրանից հետո մենք պատրաստվում ենք.ppp ֆայլում ստեղծել այս ձևերի գործողությունների գործառույթներ, դրա համար մենք պետք է կատարենք գործառույթի հայտարարություն վերնագրի ֆայլում:

/ * իմ անհատական գործառույթները */

անվավեր բռնիչ CustomCorm (); անվավեր բռնիչCustomSave ();

ես հայտարարեցի իմ սովորական գործառույթները վերնագրի ֆայլում: որ այն, մեր աշխատանքը վերնագրում ավարտված է, մենք պետք է գնանք.cpp ֆայլով `մեր գործառույթը և գործողությունները ստեղծելու համար:

Քայլ 3: Ձևի գործողության համար հարմարեցված գործառույթներ

Ձևի գործողության համար հարմարեցված գործառույթներ
Ձևի գործողության համար հարմարեցված գործառույթներ
Ձևի գործողության համար հարմարեցված գործառույթներ
Ձևի գործողության համար հարմարեցված գործառույթներ
Ձևի գործողության համար հարմարեցված գործառույթներ
Ձևի գործողության համար հարմարեցված գործառույթներ

Այժմ մենք բացում ենք մեր wifimanager_custom.cpp ֆայլը:

և մենք պետք է ավելացնենք մեր http արձագանքման կարգավորիչը, որպեսզի մեր գործառույթները կանչեն, երբ մեր ձևը տեղադրվի:

server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // ԻՄ մաքսային բռնակ

server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // ԻՄ մաքսային բռնակ

դրանք կանչեն մեր սովորական գործառույթները, երբ ձևը տեղադրվի:

1.handleCustomForm ()->-ը կստեղծի էջ մեր գծերով և հերթափոխով մուտքագրման և պահպանման կոճակի համար:

2.handleCustomSave ()-> այս գործառույթը կստանա ձևի արժեքները և կպահի Flash հիշողության վայրերում 0 (տող) և 50 (հերթափոխ):

Քայլ 4: Միացումներ և հիմնական ծրագիր

Միացումներ և հիմնական ծրագիր
Միացումներ և հիմնական ծրագիր

Կապերը շատ պարզ են..

Միացումներ և լարեր.

nodemcu TM1637.ուցադրել

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- հրում անջատիչ

- սեղմիչ կոճակ, որը ամրացված է D8 կապում +5V- ից - 10K դիմադրիչ, որը կցված է D8 կապակցին գետնից

մենք ավարտեցինք մեր wifimanager- ի անհատականացումը: այժմ մենք պետք է ստեղծենք մեր հիմնական ծրագիրը:

1. մեր wifi մենեջերը միանալու է wifi ցանցին վերջին օգտագործված հավատարմագրերով `միանալու համար, եթե այն ձախողվի, այն բացում է AutoConnectAP wifi սերվեր: մենք կարող ենք կարգավորել նոր wifi cridentials, գիծ և հերթափոխ` միանալով այս wifi սերվերին:

2. ապա այն կմտնի հիմնական հանգույց:

Մեր հիմնական հանգույցը բաղկացած կլինի երկու մասից: մեկն այն է, որ confi ենթածրագիրը, երբ մենք պետք է փոխենք գիծը, փոխենք կամ ավելացնենք որևէ wifi հավատարմագր ՝ կազմաձևելու համար պահանջարկի ռեժիմ AP- ին կանչելու համար: սա կանչվի, երբ սեղմվի D8 փինին միացված կոճակը:

դատարկ շրջան () {

config_loop ();

}

void config_loop () {Serial.println ("");

Serial.println («Սպասում ենք կազմաձևման կոճակի կարգավիճակին …»);

//display.print(" Սպասիր ");

եթե (digitalRead (TRIGGER_PIN) == HIGH)

{

display.print («Conf»); // WiFiManager

// Տեղական ինտիլիզացում: Երբ իր բիզնեսն ավարտվի, կարիք չկա այն պահել WiFiManager wifiManager- ի շուրջ;

// պարամետրերի վերականգնում - փորձարկման համար

//wifiManager.resetSettings ();

// սահմանում է ժամանակի ընդմիջում, մինչև կազմաձևման պորտալն անջատվի // օգտակար, որպեսզի ամեն ինչ նորից փորձի կամ քնի // վայրկյանների ընթացքում

//wifiManager.setTimeout(120);

// այն սկսում է մուտքի կետ `նշված անունով

// այստեղ «AutoConnectAP» // և անցնում է արգելափակման հանգույցի, որը սպասում է կազմաձևի

// ԱՌԱՆ ԱՅՍԻՆ AP- ը ՉԻ ԹԵԻ PROԻՇՏ ԱՇԽԱՏԱՆՔ SDK 1.5 -ով, թարմացրեք առնվազն 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("չհաջողվեց միանալ և սեղմել ժամանակը"); ուշացում (3000); // վերակայեք և նորից փորձեք, կամ գուցե այն դրեք խորը քուն ESP.reset (); ուշացում (5000); }}

//Serial.println("Button status False. Back to Main loop "); //display.print(" Հիմնական հանգույց "); //display.clear ();

}

Երկրորդը կլինի մեր հիմնական ծրագիրը `որոշակի սերվերից HTTP արձագանք ստանալու և ցուցադրման մեջ մուտքի քանակը ցուցադրելու համար:

Դրա համար մենք նախ պետք է ստանանք մեր գծի և հերթափոխի մանրամասները ESP- ի Flash պահոցից (հասցե 0-> տող, 50-> հերթափոխ)

EEPROM. սկիզբ (100); // eeprom storageEEPROM.get (0, տող); // Ստացեք արժեք 0 հասցեից

EEPROM.get (50, հերթափոխ); // Ստացեք արժեք 50 հասցեից

ապա մենք պետք է փոխանցենք այս գիծը և մանրամասները փոխանցենք մեր http սերվերին get մեթոդով ՝ մուտքի և ելքի արժեքը ստանալու համար:

String Base_url = "հեռացված"; // իմ հիմնական urlHTTPClient http; // HTTPClient դասի օբյեկտ

Լարային URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // սա տպելու է բոլոր http պատասխան տողերը.

եթե ցանկանում եք, թե ինչպես է ամբողջ տեքստը, ապա ձեր աշխատանքն այստեղ ինքն է ավարտվում, մենք կարող ենք այն ուղղակիորեն ցուցադրել tm1637 էկրանին:

display.print (http.getString ());

Բայց ես չեմ ուզում ցույց տալ ամբողջ տեքստը, քանի որ այն պարունակում է մուտքագրում, ելք json տեսքով և այլ բազային տեքստ իր տվյալների բազայի և այլնի մասին:

Այսպիսով, նախ հանեցի այդ ընդհանուր տեքստը պատասխան տողից ՝ օգտագործելով Substring () գործառույթը:

Ես հաշվեցի ընդհանուր տեքստի երկարությունը և կտրեցի այն:

եթե (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument արմատ (bufferSize);

// JsonObject & root = doc.parseObject (http.getString ());

Լար json_string = http.getString (). Substring (121); /* սա ընդհանուր տեքստի իմ փոխհատուցումն է, եթե ձեր պատասխանողին նման բան չկա, կարող եք հեռացնել այս ծածկագիրը. */

//Serial.println(json_string);

DeserializationError error = deserializeJson (արմատ, json_string);

// JsonObject & root = jsonBuffer.parseObject (http.getString ());

եթե (սխալ)

{Serial.print (F ("deserializeJson () ձախողվեց."));

Serial.println (error.c_str ());

վերադարձ;

}

ուրիշ {

const char* մուտքագրում = արմատ ["մուտք"];

const char* ելք = արմատ ["ելք"];

Serial.print ("Մուտք.");

Serial.println (մուտքագրում);

Serial.print ("Արդյունք:");

Serial.println (ելք);

display.print (".. մեջ..");

display.clear (); // մաքրել էկրանը

display.print (մուտքագրում); // տպել ՀԱՇՎԻ ՈՐՈՇ ԹՎԱՅՆՆԵՐ

}

ահա մեր հիմնական ծրագիրն ավարտված է:

Քայլ 5: Ստեղծեք վեբ սերվեր

Վեբ սերվերի ստեղծում
Վեբ սերվերի ստեղծում
Վեբ սերվերի ստեղծում
Վեբ սերվերի ստեղծում

Ես օգտագործում եմ xampp- ը որպես իմ վեբ ծառայություն և PHP կոդ ՝ իմ SQL տվյալների բազայից տվյալներ ստանալու համար ՝ ճշգրիտ քանակություն ստանալու համար:

Բայց ես չեմ կարող կիսել դրա բոլոր բնօրինակ կոդերը: քանի որ դա իմ ընկերության գաղտնիությունն է: բայց ես ցույց կտամ, թե ինչպես կարելի է ստեղծել մեկ վեբ սերվեր, ցուցադրել կեղծ ստատիկ մուտքի և ելքի քանակ:

Դրա համար ձեզ պետք է որևէ վեբ հոստ, ես այստեղ օգտագործում եմ xampp- ը որպես իմ հաղորդավար:

այստեղ կարող եք ներբեռնել xampp- ը:

տեղադրել xampp… եթե հստակ հրահանգների կարիք ունեք, կարող եք օգտագործել այս հղումը:

Xampp- ը տեղադրելուց հետո դուք պետք է գնաք ձեր արմատային գրացուցակին:

C: / xampp / htdocs

ձեր բոլոր php ծրագրերը պետք է լինեն այս արմատից ներս:

ես ստեղծեցի իմ էջը esp_api.php կոչվող անունով

սա իմ php կոդն է: այստեղ ես պարզապես ցուցադրում եմ մուտքի և ելքի ստատիկ արժեքներ;

$ line = $ _ GET ['line']; $ shift = $ _ GET ['հերթափոխ'];

echo («myString»); // ընդհանուր տեքստ

if ($ line == 'a0401' և $ shift = 'dd') {$ result ['input'] = 100; $ արդյունք ['ելք'] = 99; }

else {$ result ['input'] = 200; $ արդյունք ['ելք'] = 199; }

$ myObj-> մուտքագրում = ''. $ արդյունք ['մուտք']. '';

$ myObj-> արտադրանք = ''. $ արդյունք ['ելք']. '';

$ myJSON = json_encode ($ myObj);

արձագանք $ myJSON;

Այժմ մեր HTTP արձագանքման API- ն ավարտված է:

Մեր http բազային url- ը նման կլինի

you_ip_address/esp_api.php

կարող եք ստուգել ձեր API պատասխանի տեքստը ՝

localhost/esp_api.php? line = a0401 & shift = dd

այստեղ ես նշեցի տողը որպես a0401 և հերթափոխը որպես dd:

Քայլ 6: Վերջնական քայլ !

Վերջնական քայլ !!!
Վերջնական քայլ !!!
Վերջնական քայլ !!!
Վերջնական քայլ !!!
Վերջնական քայլ !!!
Վերջնական քայլ !!!

Մուտքագրեք ձեր համակարգչի IP հասցեն Հիմնական URL- ում

String Base_url = "հեռացված"; // ձեր բազային url

և վերբեռնեք ձեր ESP nodemcu- ում: Ավարտելուց հետո պարզապես միացրեք ձեր wifi- ն ձեր բջջայինից կամ նոութբուքից, դուք կստանաք ցանց, որը կոչվում է AutoConnectAP: միացեք դրա հետ և մուտքագրեք ձեր հավատարմագրերի և գծի կազմաձևերը:

Այնուհետև վերագործարկեք ձեր սարքը և ստուգեք, որ ձեր ցանցը միացված է, երբ այն միացված է, և ամեն ինչ արված է:

Դուք կարող եք տեսնել, որ մուտքը ցուցադրվում է էկրանին:

եթե ցանկանում եք փոխել որևէ տող կամ wifi հավատարմագիր, կարող եք մի քանի վայրկյան սեղմել push switch- ը, ցուցադրումը ցույց է տալիս confi:

Դուք մուտք եք գործել պահանջարկի ռեժիմ: կարող եք փոխել և վերակայել սարքը:

Նրա հիմնական հրահանգը `ցույց տալու, թե ինչպես կարող ենք օգտագործել մեր հոբբի և զվարճալի նախագծերը իրական արտադրության և արտադրության ոլորտում և շոու

Խորհուրդ ենք տալիս: