Obsah:

WIFI displej pre riadenie výroby: 6 krokov
WIFI displej pre riadenie výroby: 6 krokov

Video: WIFI displej pre riadenie výroby: 6 krokov

Video: WIFI displej pre riadenie výroby: 6 krokov
Video: Сборка кухни за 30 минут своими руками. Переделка хрущевки от А до Я # 35 2024, Júl
Anonim
WIFI displej pre riadenie výroby
WIFI displej pre riadenie výroby

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é diely a nástroje
Použité diely a nástroje

Použité hardvérové diely:

  1. ESP nodemcu
  2. TM1637 4 -miestny displej s hodinami
  3. Zatlačte spínač
  4. 10k odpor
  5. niekoľko prepojovacích káblov

Použité softvérové nástroje:

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

Prispôsobenie správcu Wifi
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

Vlastné funkcie pre akciu formulára
Vlastné funkcie pre akciu formulára
Vlastné funkcie pre akciu formulára
Vlastné funkcie pre akciu formulára
Vlastné funkcie pre akciu formulára
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

Pripojenia a hlavný program
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

Vytvorenie webového servera
Vytvorenie webového servera
Vytvorenie webového servera
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 !!

Posledný krok !!!
Posledný krok !!!
Posledný krok !!!
Posledný krok !!!
Posledný krok !!!
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: