Բովանդակություն:
- Քայլ 1: Օգտագործված մասեր և գործիքներ
- Քայլ 2: Անհատականացրեք Wifi Manager- ը
- Քայլ 3: Ձևի գործողության համար հարմարեցված գործառույթներ
- Քայլ 4: Միացումներ և հիմնական ծրագիր
- Քայլ 5: Ստեղծեք վեբ սերվեր
- Քայլ 6: Վերջնական քայլ !
Video: WIFI ցուցադրում արտադրության կառավարման համար. 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Ես փոքր սերիա եմ IOT և Single Board համակարգիչների մասին:
Ես միշտ ցանկանում եմ օգտագործել այն Hobby & Fun Projects- ից դուրս (իրական արտադրություն և արտադրություն):
Այս Instructable- ը պատրաստվում է ստեղծել 4 թվանշանի 7-հատվածի WIFI էկրան ՝ ESP nodemcu- ով ՝ Արտադրության ժամային մուտքը ցուցադրելու համար: Ես աշխատում եմ էլեկտրոնիկայի արտադրական արդյունաբերությունում, որտեղ մենք օգտագործում ենք Manufacturing Execution System (MES) ՝ արտադրական հարկի մուտքի, ելքի և գործընթացի վերահսկման և վերահսկման համար: Այս նախագծում ես ստեղծում եմ փոքր ցուցադրման միավոր, որը ցույց կտա Արտադրության մուտքի քանակը ՝ ըստ տողի, հերթափոխի և ժամի:
Տեխնիկական առումով այս isրագիրը նման է Youtube- ի բաժանորդների հաշվարկի ցուցադրմանը, որտեղ մենք օգտագործում ենք API/HTTP պատասխանը առցանց: Բայց այստեղ մենք պատրաստվում ենք ստեղծել մեր սեփական api- ն `մեր տեղական ԱԻՆ համակարգի հետ փոխազդելու համար` մուտքագրման քանակություն ստանալու համար:
Քայլ 1: Օգտագործված մասեր և գործիքներ
Օգտագործված ապարատային մասեր.
- ESP nodemcu
- TM1637 4 նիշ ժամացույց Displayուցադրել
- Հրել անջատիչ
- 10k դիմադրություն
- մի քանի ցատկող լարեր
Օգտագործված ծրագրային գործիքներ.
- Arduino IDE
- Xampp PHP/Apache վեբ սերվերի համար
Օգտագործված Arduino գրադարանը.
1. Wifi մենեջեր tzapu & i Հարմարեցված է իմ հարմարեցված ֆայլերի համար (wifimanager)
2. ESP_EEPROM ՝ իմ սովորական արժեքները Flash հիշողության մեջ պահելու համար
3. SevenSegmentTM1637 Displayուցադրման համար
Քայլ 2: Անհատականացրեք 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:
Դուք մուտք եք գործել պահանջարկի ռեժիմ: կարող եք փոխել և վերակայել սարքը:
Նրա հիմնական հրահանգը `ցույց տալու, թե ինչպես կարող ենք օգտագործել մեր հոբբի և զվարճալի նախագծերը իրական արտադրության և արտադրության ոլորտում և շոու
Խորհուրդ ենք տալիս:
Shelly EM Auto Toggle ՝ հիմնված արևային վահանակների արտադրության վրա ՝ 6 քայլ
Shelly EM Auto Toggle ՝ հիմնված արևային վահանակների արտադրության վրա. P1. Տան սպառումը (օր. &Quot; P1 = 1kW " ⇒ մենք սպառում ենք 1kW) և P2. վառարանը միացնելիս սպառում է 2 կՎտ: Մենք ցանկանում ենք այն միացնել, եթե արևային վահանակն արտադրի
Պատի ամրացում IPad- ի համար ՝ որպես տան ավտոմատացման կառավարման վահանակ, օգտագործելով Servo վերահսկվող մագնիսը ՝ էկրանն ակտիվացնելու համար. 4 քայլ (նկարներով)
Պատի ամրացում IPad- ի համար, որպես տան ավտոմատացման կառավարման վահանակ, օգտագործելով Servo վերահսկվող մագնիսը `էկրանի ակտիվացման համար. Ես օգտագործում եմ Domoticz- ը որպես իմ տան ավտոմատացման ծրագիր, մանրամասների համար տե՛ս www.domoticz.com: Գործիքային վահանակի որոնման մեջ, որը ցույց է տալիս Domoticz- ի բոլոր տեղեկությունները միացված
D4E1. Ընթերցանության գործիք 2.0 (Արտադրության առաջադեմ գործընթաց). 9 քայլ
D4E1. Ընթերցանության գործիք 2.0 (Արտադրության առաջադեմ գործընթաց). Տեղեկություն. Մենք սկսեցինք գոյություն ունեցող դիզայնի հիման վրա և այն վերածեցինք այլ դիզայնի: Ընթերցման գործիքը ի սկզբանե մշակվել է կլիմայական պայմանների համար
Երկակի 7 հատվածից բաղկացած ցուցադրում, որը վերահսկվում է շրջանագծի պոտենցիոմետրով Python - Տեսողության համառության ցուցադրում. 9 քայլ (նկարներով)
Երկակի 7 հատվածից բաղկացած ցուցադրումներ, որոնք վերահսկվում են շրջանագծի պոտենցիոմետրով: Python-Տեսողության համառության դրսևորում. Այս նախագիծը օգտագործում է պոտենցիոմետր `7 սեգմենտանոց LED էկրանների (F5161AH) ցուցադրումը վերահսկելու համար: Պոտենցիոմետրի բռնիչը պտտելիս ցուցադրվող թիվը փոխվում է 0 -ից 99 -ի սահմաններում: momentանկացած պահի վառվում է միայն մեկ LED, շատ կարճ, բայց
Տնային արտադրության սառնարան ՝ խելացի կառավարման ֆունկցիոնալությամբ (խորը սառնարան) ՝ 11 քայլ (նկարներով)
Տնային պատրաստված սառնարան `խելացի կառավարման ֆունկցիոնալությամբ (Խոր սառնարան). Բարև ընկերներ, սա DIY սառնարանի 2 -րդ մասն է` հիմնված peltier մոդուլի վրա, այս մասում մենք օգտագործում ենք 2 պելետի մոդուլ `1 -ի փոխարեն, ինչպես նաև օգտագործում ենք ջերմային վերահսկիչ` ցանկալի ջերմաստիճանը խնայելու համար: մի քիչ էներգիա