Obsah:
- Krok 1: Použité součásti a nástroje:
- Krok 2: Přizpůsobení správce Wifi
- Krok 3: Vlastní funkce pro akci formuláře
- Krok 4: Připojení a hlavní program
- Krok 5: Vytvoření webového serveru
- Krok 6: Poslední krok !
Video: WIFI displej pro řízení výroby: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Jsem malá série o IOT a jednodeskových počítačích.
Vždycky bych ho chtěl použít nad rámec Hobby & Fun Projects (skutečná výroba a výroba).
This Instructable is about to Creating 4 digit 7-segment WIFI display with ESP nodemcu to Show hodinly Production Input. Pracuji ve výrobním průmyslu elektroniky, kde používáme systém Manufacturing Execution System (MES) k monitorování a řízení vstupního, výstupního a procesního výrobního minima. V tomto projektu vytvářím malou zobrazovací jednotku, která bude zobrazovat vstupní množství produkce podle řádku, směny a hodiny.
Technicky je tento projekt podobný zobrazení počtu odběratelů na Youtube, kde používáme odezvu API/HTTP online. Ale zde si vytvoříme vlastní rozhraní API pro interakci s naším místním systémem MES za účelem získání vstupního množství.
Krok 1: Použité součásti a nástroje:
Použité hardwarové součásti:
- ESP nodemcu
- TM1637 4místný displej s hodinami
- Stiskněte spínač
- 10k odpor
- několik propojovacích vodičů
Použité softwarové nástroje:
- Arduino IDE
- Xampp pro webový server PHP/Apache
Použitá knihovna Arduino:
1. Správce WiFi od tzapu & i Přizpůsoben pro mé vlastní soubory (wifimanager)
2. ESP_EEPROM pro ukládání vlastních hodnot do paměti Flash
3. SevenSegmentTM1637 pro zobrazení
Krok 2: Přizpůsobení správce Wifi
V tomto Nejprve jsem nejprve nainstaloval správce wifi a poté jsem zkopíroval složku Správce Wifi a znovu ji předal ve složce Same ve složce knihovny Arduino a poté přejmenoval na WiFiManager_custom.
Složka Kořenový adresář Většinou jako
C: / Users / název vašeho počítače / Documents / Arduino / libraries
Poté jsem otevřel složku wifimanager_custom a přejmenoval soubor záhlaví.cpp stejně jako wifimanager_custom, přidal to samé také do souborů záhlaví a.cpp.
A přidal můj vlastní formulář a tlačítko v záhlaví.
v HTTP_PORTAL_OPTIONS PROGMEM jsem přidal svůj formulář tlačítka pro Menu.
a přidán nový formulář pro zadávání řádku a posunu. Tento formulář jsem vytvořil jako jednoduchý textový formulář.
Poté vytvoříme akční funkce pro tyto formuláře v souboru.cpp, proto musíme provést deklaraci funkcí v hlavičkovém souboru.
/ * mé vlastní funkce */
void handleCustomForm (); void handleCustomSave ();
deklaroval jsem své vlastní funkce v hlavičkovém souboru. že naše práce v záhlaví je hotová, musíme vytvořit soubor funkcí a akcí pomocí souboru.cpp.
Krok 3: Vlastní funkce pro akci formuláře
Nyní otevřeme náš soubor wifimanager_custom.cpp.
a musíme přidat náš obslužný program odezvy http pro volání našich funkcí, když je náš formulář post.
server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // MOJE vlastní rukojeť
server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // MOJE vlastní rukojeť
tyto budou po odeslání formuláře volat naše vlastní funkce.
1.handleCustomForm ()-> vytvoří stránku s naším vlastním formulářem pro zadání řádku a posun a tlačítko uložení.
2. handleCustomSave ()-> tato funkce získá hodnoty formuláře a uloží je do paměti Flash 0 (řádek) a 50 (posun).
Krok 4: Připojení a hlavní program
Připojení je velmi jednoduché..
Připojení a zapojení:
Displej nodemcu TM1637
3,3 V ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- spínač
- tlačítko připojené ke kolíku D8 od +5V - odpor 10K připojený ke kolíku D8 ze země
dokončili jsme přizpůsobení našeho wifimanageru. nyní musíme vytvořit náš hlavní program.
1. náš správce wifi se připojí k síti Wi -Fi s posledně použitými přihlašovacími údaji pro připojení, pokud se nezdaří, otevře wifi server AutoConnectAP. Můžeme nakonfigurovat nové wifi sítě, linku a posun připojením k tomuto serveru wifi.
2. poté vstoupí do hlavní smyčky.
Naše hlavní smyčka bude obsahovat dvě části. jedním z nich je podprogram confi, když potřebujeme změnit linku, přesunout nebo přidat jakékoli wifi pověření pro konfiguraci režimu poptávky AP. toto bude vyvoláno po stisknutí tlačítka připojeného ke kolíku D8.
prázdná smyčka () {
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Čekání na stav tlačítka Stav …");
//display.print("Wait ");
if (digitalRead (TRIGGER_PIN) == HIGH)
{
display.print („Conf“); // WiFiManager
// Místní inicializace. Jakmile je jeho podnikání hotové, není třeba jej udržovat kolem WiFiManager wifiManager;
// reset nastavení - pro testování
//wifiManager.resetSettings ();
// nastaví časový limit, dokud se konfigurační portál nevypne // užitečné, aby se vše opakovalo nebo šlo do režimu spánku // během několika sekund
//wifiManager.setTimeout(120);
// spustí přístupový bod se zadaným názvem
// zde "AutoConnectAP" // a přejde do blokovací smyčky čekající na konfiguraci
// BEZ TOHO AP NEVYDÁVÁ SPRÁVNĚ FUNGOVAT S SDK 1.5, aktualizujte alespoň na 1.5.1 //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("nepodařilo se připojit a vypršel časový limit"); zpoždění (3000); // reset a zkus to znovu, nebo to dej do hlubokého spánku ESP.reset (); zpoždění (5000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Hlavní smyčka "); //display.clear ();
}
Druhý bude náš hlavní program pro získání odpovědi HTTP z konkrétního serveru a zobrazení vstupního množství na displeji.
Nejprve musíme získat podrobnosti o řádku a posunu z Flash úložiště ESP (adresa 0-> řádek, 50-> posun)
EEPROM.begin (100); // eeprom storageEEPROM.get (0, řádek); // získejte hodnotu z adresy 0
EEPROM.get (50, směna); // Získejte hodnotu z adresy 50
pak musíme předat tento řádek a podrobnosti o posunu našemu http serveru metodou get, abychom získali hodnotu vstupu a výstupu.
String Base_url = "odstraněno"; // moje základna urlHTTPClient http; // Objekt třídy
Řetězcová URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // toto vytiskne všechny řetězce odpovědí
pokud chcete, jak je celý text hotový, pak je vaše práce zde hotová, můžeme ji přímo zobrazit na displeji tm1637.
display.print (http.getString ());
Ale nechci zobrazit celý text, protože obsahuje vstup, výstup ve formátu json a další obecný text o jeho databázi a atd.
nejprve jsem tedy odstranil obecný text z řetězce odpovědí pomocí funkce Substring ().
napočítal jsem délku obecného textu a ořízl ho.
if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); Kořen DynamicJsonDocument (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
Řetězec json_string = http.getString (). Podřetězec (121); /* toto je můj offset obecného textu, pokud vaši respondenti nemají nic takového, můžete tento kód odstranit; */
//Serial.println(json_string);
Chyba DeserializationError = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
pokud (chyba)
{Serial.print (F ("deserializeJson () failed:"));
Serial.println (error.c_str ());
vrátit se;
}
jiný{
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 (); // vymazat displej
display.print (vstup); // tisk POČÍTÁNÍ NĚKTERÝCH ČÍSEL
}
tím je náš hlavní program hotový.
Krok 5: Vytvoření webového serveru
Používám xampp jako webový server a kód PHP pro získání dat z mé databáze SQL, abych získal přesné množství.
Ale nemohu sdílet všechny původní kódy. protože jde o důvěrnost mé společnosti. ale ukážu, jak vytvořit jeden webový server, ukázat fiktivní statické vstupní a výstupní množství.
K tomu byste potřebovali libovolného webového hostitele, používám zde xampp jako svého hostitele.
xampp si můžete stáhnout zde.
nainstalujte xampp … pokud potřebujete jasné pokyny, můžete použít tento odkaz.
Po instalaci xampp musíte přejít do kořenového adresáře.
C: / xampp / htdocs
všechny vaše php programy by měly být uvnitř tohoto kořene.
vytvořil jsem svou stránku pod názvem esp_api.php
toto je můj php kód. zde právě zobrazuji statické hodnoty vstupu a výstupu;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
echo ("myString"); // obecný text
if ($ line == 'a0401' a $ shift = 'dd') {$ result ['input'] = 100; $ result ['output'] = 99; }
jinak {$ result ['input'] = 200; $ result ['output'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> output = ''. $ result ['výstup']. '';
$ myJSON = json_encode ($ myObj);
echo $ myJSON;
Nyní je naše API odpovědi HTTP dokončeno.
Naše základní adresa URL http bude vypadat jako
you_ip_address/esp_api.php
text odpovědi API můžete zkontrolovat do
localhost/esp_api.php? line = a0401 & shift = dd
zde jsem zmínil řádek jako a0401 a posun jako dd.
Krok 6: Poslední krok !
Do základní adresy URL zadejte adresu IP svého počítače
String Base_url = "odstraněno"; // vaše základní URL
a Nahrát do vašeho ESP nodemcu. Jakmile skončíte, stačí zapnout wifi z mobilu nebo notebooku, získáte síť s názvem AutoConnectAP. spojte se s ním a zadejte své pověření a konfigurace linek.
Poté resetujte zařízení a zkontrolujte, zda je vaše síť připojena, jakmile je připojena, a pak je vše hotovo.
Můžete vidět, že vstup je zobrazen na displeji.
pokud chcete změnit pověření pro libovolnou linku nebo wifi, můžete stisknout tlačítko na několik sekund, na displeji se zobrazí confi.
jste vstoupili do režimu poptávkyAP. můžete zařízení změnit a resetovat.
Hlavní moto jeho instruktáže, aby vám ukázal, jak můžeme použít naše hobby a zábavné projekty ve skutečné oblasti výroby a výroby a ukázat
Doporučuje:
Používejte jeden displej Velký a 4 Cifre 8886 displej Con Wemos ESP8266 Arduino NodeMCU: 6 kroků
Používejte jeden velký displej se 4 Cifre 8886 displejem s ESP8266 Arduino NodeMCU: Vybírejte ze všech semiplic, abyste získali více než 8886 displejů, zobrazte více než jednu skladbu, D1 - potřebujete více Arduino nebo NodeMCU o kvalitní mikrokontrolér, který můžete použít pro každý další
TTGO (barevný) displej s mikropythonem (TTGO T-displej): 6 kroků
TTGO (barevný) displej s mikropythonem (TTGO T-displej): TTGO T-Display je deska založená na ESP32, která obsahuje 1,14 palcový barevný displej. Desku je možné zakoupit za cenu nižší než 7 $ (včetně poštovného, cena viditelná v Banggoodu). To je neuvěřitelná cena za ESP32 včetně displeje
LCD displej I2C / IIC - Použijte SPI LCD na I2C LCD displej pomocí modulu SPI až IIC s Arduino: 5 kroků
LCD displej I2C / IIC | Použijte SPI LCD na I2C LCD displej pomocí modulu SPI až IIC s Arduino: Ahoj lidi, protože normální SPI LCD 1602 má příliš mnoho vodičů na připojení, takže je velmi obtížné propojit jej s arduino, ale na trhu je k dispozici jeden modul, který může převést SPI displej na IIC displej, takže pak potřebujete připojit pouze 4 vodiče
LCD displej I2C / IIC - Převeďte SPI LCD na I2C LCD displej: 5 kroků
LCD displej I2C / IIC | Převeďte SPI LCD na I2C LCD displej: použití spi lcd displeje vyžaduje příliš mnoho připojení, což je opravdu těžké, takže jsem našel modul, který dokáže převést i2c lcd na spi lcd, takže můžeme začít
Řízení výroby Qualcomm: 4 kroky
Řízení výroby Qualcomm: Nejlepší řešení pro systémy řízení / monitorování průmyslových procesů, použití více platforem DragonBoard 410c - Qualcomm, que tem como objetivo resolver problemas de engenharia de produ ç ã o de tal forma a garan