Obsah:
- Krok 1: Použité diely a nástroje:
- Krok 2: Prispôsobenie správcu Wifi
- Krok 3: Vlastné funkcie pre akciu formulára
- Krok 4: Pripojenia a hlavný program
- Krok 5: Vytvorenie webového servera
- Krok 6: Posledný krok !!
Video: WIFI displej pre riadenie výroby: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Som malá séria o počítačoch IOT a jednodoskových počítačoch.
Vždy ho chcem používať nad rámec hobby a zábavných projektov (skutočná výroba a výroba).
Tento návod sa chystá vytvoriť 4-miestny 7-segmentový WIFI displej s ESP nodemcu na zobrazenie hodinového produkčného vstupu. Pracujem vo výrobnom odvetví elektroniky, kde na monitorovanie a riadenie vstupného, výstupného a výrobného postupu výroby používame systém Manufacturing Execution System (MES). V tomto projekte vytváram malú zobrazovaciu jednotku, ktorá bude zobrazovať množstvo vstupnej produkcie podľa riadka, smeny a hodiny.
Technicky je tento projekt podobný zobrazeniu počtu predplatiteľov na YouTube, kde používame odozvu API/HTTP online. Ale tu si vytvoríme vlastné rozhranie API na interakciu s naším miestnym systémom MES na získanie vstupného množstva.
Krok 1: Použité diely a nástroje:
Použité hardvérové diely:
- ESP nodemcu
- TM1637 4 -miestny displej s hodinami
- Zatlačte spínač
- 10k odpor
- niekoľko prepojovacích káblov
Použité softvérové nástroje:
- Arduino IDE
- Xampp pre webový server PHP/Apache
Použitá knižnica Arduino:
1. Wifi manager od tzapu & i Prispôsobený pre moje vlastné súbory (wifimanager)
2. ESP_EEPROM na ukladanie vlastných hodnôt do pamäte Flash
3. SevenSegmentTM1637 pre displej
Krok 2: Prispôsobenie správcu Wifi
V tomto prvom som najskôr nainštaloval správcu wifi a potom som skopíroval priečinok správcu Wifi a znova prešiel do priečinka Same v priečinku knižnice Arduino, potom sa premenoval na WiFiManager_custom.
Priečinok Root adresár Väčšinou ako
C: / Users / názov vášho počítača / Documents / Arduino / libraries
Potom som otvoril priečinok wifimanager_custom a premenoval súbor hlavičky.cpp rovnako ako wifimanager_custom, pridal som to isté aj v súboroch hlavičky a.cpp.
A do hlavičky bol pridaný môj vlastný formulár a tlačidlo.
v programe HTTP_PORTAL_OPTIONS PROGMEM som pridal svoj tlačidlový formulár pre Menu.
a pridal nový formulár na zadávanie riadku a posunu. Tento formulár som vytvoril ako jednoduchý textový formulár.
Potom vytvoríme pre tieto formuláre akčné funkcie v súbore.cpp, na to musíme urobiť deklaráciu funkcie v hlavičkovom súbore.
/ * moje vlastné funkcie */
void handleCustomForm (); void handleCustomSave ();
svoje vlastné funkcie som deklaroval v hlavičkovom súbore. že naša práca v hlavičke je dokončená, musíme vytvoriť súbor funkcií a akcií pomocou súboru.cpp.
Krok 3: Vlastné funkcie pre akciu formulára
Teraz otvoríme náš súbor wifimanager_custom.cpp.
a musíme pridať nášho obslužného programu odpovedí http na volanie našich funkcií, keď je náš formulár odoslaný.
server-> zapnutý (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // MOJA vlastná rukoväť
server-> zapnutý (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // MOJA vlastná rukoväť
tieto budú po odoslaní formulára volať naše vlastné funkcie.
1.handleCustomForm ()-> vytvorí stránku s naším vlastným formulárom na zadanie a uloženie riadka a posunu.
2.handleCustomSave ()-> táto funkcia získa hodnoty formulára a uloží ich do pamäte Flash 0 (riadok) a 50 (posun).
Krok 4: Pripojenia a hlavný program
Pripojenie je veľmi jednoduché..
Pripojenia a zapojenie:
Displej nodemcu TM1637
3,3 V ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- vypínač
- tlačidlo pripojené k pinu D8 z +5V - odpor 10K pripojený k pinu D8 zo zeme
dokončili sme prispôsobenie nášho wifimanageru. teraz musíme vytvoriť náš hlavný program.
1. náš správca wifi sa pripojí k sieti Wi -Fi s poslednými použitými povereniami na pripojenie, ak zlyhá, otvorí sa wifi server AutoConnectAP. Pripojením k tomuto serveru wifi môžeme nakonfigurovať nové wifi siete, linku a posun.
2. potom vstúpi do hlavnej slučky.
Naša hlavná slučka bude obsahovať dve časti. jeden je konfiguračný podprogram, keď potrebujeme zmeniť linku, posunúť alebo pridať akékoľvek poverenie wifi do režimu AP, ktorý je potrebné nakonfigurovať. toto sa bude volať po stlačení tlačidla pripojeného k kolíku D8.
prázdna slučka () {
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Čakanie na stav tlačidla konfigurácie …");
//display.print("Wait ");
if (digitalRead (TRIGGER_PIN) == HIGH)
{
display.print ("Conf"); // WiFiManager
// Lokálna inicializácia. Akonáhle je jeho činnosť hotová, nie je potrebné ho držať okolo WiFiManager wifiManager;
// reset nastavení - na testovanie
//wifiManager.resetSettings ();
// nastavuje časový limit, kým sa konfiguračný portál nevypne // užitočné, aby sa to všetko zopakovalo alebo prešlo do režimu spánku // v priebehu niekoľkých sekúnd
//wifiManager.setTimeout(120);
// spustí prístupový bod so zadaným názvom
// tu „AutoConnectAP“// a prejde do blokovacej slučky, ktorá čaká na konfiguráciu
// BEZ TOTOHO AP SA NEZDAJE FUNGOVAŤ SPRÁVNE S SDK 1.5, aktualizujte aspoň na 1.5.1 //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("nepodarilo sa pripojiť a vypršal časový limit"); oneskorenie (3000); // resetujte a skúste to znova, alebo ho dajte do hlbokého spánku ESP.reset (); oneskorenie (5 000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Hlavná slučka "); //display.clear ();
}
Druhý bude naším hlavným programom na získanie odpovede HTTP z konkrétneho servera a zobrazenie vstupného množstva na displeji.
Na tento účel musíme najskôr získať podrobnosti o našom riadku a posune z flash pamäte ESP (adresa 0-> riadok, 50-> posun)
EEPROM.begin (100); // eeprom storageEEPROM.get (0, riadok); // získanie hodnoty z adresy 0
EEPROM.get (50, smena); // Získajte hodnotu z adresy 50
potom musíme postúpiť tento riadok a detaily posunu na náš http server metódou get, aby sme získali hodnotu vstupu a výstupu.
String Base_url = "odstránený"; // moja základňa urlHTTPClient http; // Objekt triedy
Adresa URL reťazca = Base_url+"?"+"Riadok ="+riadok+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // toto vytlačí všetky reťazce odpovedí
ak chcete zistiť, ako je všetok text dokončený, potom ho môžeme priamo zobraziť na displeji tm1637.
display.print (http.getString ());
Nechcem však zobrazovať celý text, pretože obsahuje vstup, výstup vo formáte json a ďalší všeobecný text o jeho databáze a podobne.
tak som najskôr odstránil tento všeobecný text z reťazca odpovedí pomocou funkcie Substring ().
spočítal som dĺžku všeobecného textu a orezal som ho.
if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument root (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
Reťazec json_string = http.getString (). Podreťazec (121); /* toto je môj offset všeobecného textu, ak vaši respondenti nemajú nič podobné, môžete tento kód odstrániť; */
//Serial.println(json_string);
DeserializationError error = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
ak (chyba)
{Serial.print (F ("deserializeJson () failed:"));
Serial.println (error.c_str ());
návrat;
}
inak {
const char* input = root ["vstup"];
const char* output = root ["výstup"];
Serial.print ("Vstup:");
Serial.println (vstup);
Serial.print ("Výstup:");
Serial.println (výstup);
display.print (".. in..");
display.clear (); // vymazanie displeja
display.print (vstup); // vytlačenie POČÍTANIA NIEKTORÝCH ČÍSEL
}
tým je náš hlavný program ukončený.
Krok 5: Vytvorenie webového servera
Používam xampp ako webový server a kód PHP na získanie údajov z mojej databázy SQL na získanie presného množstva.
Nemôžem však zdieľať všetky pôvodné kódy. pretože ide o dôvernosť mojej spoločnosti. ale ukážem, ako vytvoriť jeden webový server, ukážem fiktívne statické vstupné a výstupné množstvo.
Na to by ste potrebovali akéhokoľvek webového hostiteľa, ako hostiteľa tu používam xampp.
xampp si môžete stiahnuť tu.
nainštalujte xampp … ak potrebujete jasné inštrukcie, môžete použiť tento odkaz.
Po inštalácii xampp musíte ísť do svojho koreňového adresára.
C: / xampp / htdocs
všetky vaše programy php by mali byť vnútri tohto koreňa.
Vytvoril som svoju stránku s názvom esp_api.php
toto je môj php kód. tu práve zobrazujem statické hodnoty vstupu a výstupu;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
echo ("myString"); // všeobecný text
if ($ line == 'a0401' a $ shift = 'dd') {$ result ['input'] = 100; $ result ['output'] = 99; }
else {$ result ['input'] = 200; $ result ['output'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> output = ''. $ result ['výstup']. '';
$ myJSON = json_encode ($ myObj);
echo $ myJSON;
Teraz je naše rozhranie API pre odpoveď HTTP dokončené.
Naša základná adresa URL http bude vyzerať takto
you_ip_address/esp_api.php
text odpovede API môžete skontrolovať do
localhost/esp_api.php? line = a0401 & shift = dd
tu som spomenul riadok ako a0401 a posun ako dd.
Krok 6: Posledný krok !!
Do základnej adresy URL zadajte ip adresu svojho počítača
String Base_url = "odstránený"; // vaša základná adresa URL
a nahrajte do svojho nodemcu ESP. Akonáhle to urobíte, jednoducho zapnite wifi z mobilného telefónu alebo prenosného počítača, získate sieť s názvom AutoConnectAP. spojte sa s ním a zadajte svoje poverenia a konfigurácie riadkov.
Potom resetujte zariadenie a po pripojení skontrolujte, či je sieť pripojená, a potom je všetko hotové.
Vstup môžete vidieť na displeji.
ak chcete zmeniť akékoľvek poverenie linky alebo wifi, môžete na niekoľko sekúnd stlačiť vypínač, na displeji sa zobrazí confi.
vstúpili ste do režimu dopytuAP. môžete zariadenie zmeniť a resetovať.
Hlavnou moto z jeho pokynu, aby vám ukázal, ako môžeme využiť naše hobby a zábavné projekty v skutočnej oblasti výroby a výroby, a ukázať
Odporúča:
Používajte jeden displej a ponúkajte 4 -ciferný 8886 displej Con Wemos ESP8266 Arduino NodeMCU: 6 krokov
Používame jeden veľký displej so 4 ciframi 8886 s procesorom ESP8266 Arduino NodeMCU: viac ako jedna jednoduchá verzia 8886 displeja, ktorá má jednu noc, jednu veľkú D1 - potrebujem pre Arduino alebo jeden NodeMCU o kvalitných mikrokontroléroch môžete informovať o tom, ako postupovať
TTGO (farebný) displej s mikropythonom (TTGO T-displej): 6 krokov
TTGO (farebný) displej s mikropythonom (TTGO T-displej): TTGO T-Display je doska založená na ESP32, ktorá obsahuje 1,14 palcový farebný displej. Dosku je možné kúpiť za cenu nižšiu ako 7 $ (vrátane poštovného, ceny, ktorú môžete vidieť na BangGood). Je to neuveriteľná cena za ESP32 vrátane displeja.
GENERÁTOR REGULAČNÉHO SIGNÁLU ALTERNATÍVNY PRE RIADENIE ELEKTRONICKEJ RÝCHLOSTI (ESC): 7 krokov
GENERÁTOR REGULAČNÉHO SIGNÁLU ALTERNATÍVNY PRE RIADENIE ELEKTRONICKEJ RÝCHLOSTI (ESC): Pred časom som na svojom kanáli YouTube zverejnil video (https://www.youtube.com/watch?v=-4sblF1GY1E), kde som ukázal, ako sa vyrába veterná turbína. z bezkartáčového jednosmerného motora. Video som urobil v španielčine a bolo v ňom vysvetlené, že tento motor bol daný
Riadenie výroby Qualcomm: 4 kroky
Kontrola výroby Qualcomm: Hromadné riešenie problémov spojených s ovládaním / monitorovaním priemyselného priemyslu, používanie tradičných platforiem DragonBoard 410c - Qualcomm, que tem como objetivo solutionver problemas de engenharia de produ ç ã o de tal form a garan
Zaujímavé programovacie pokyny pre návrhára-Riadenie procesu programu-Vyhlásenie o cykle: 8 krokov
Zaujímavé pokyny k programovaniu pre návrhára-Riadenie procesu programu-Vyhlásenie o slučke: Vyhlásenie o procese programu-Vyhlásenie o slučke V tejto kapitole sa dostanete do kontaktu s dôležitým a silným vyhlásením o slučke. Ak si chcete pred prečítaním tejto kapitoly nakresliť 10 000 kruhov v programe, vystačíte si iba s