Taula de continguts:
- Pas 1: peces i eines utilitzades:
- Pas 2: personalització del gestor de Wifi
- Pas 3: Funcions personalitzades per a l'acció del formulari
- Pas 4: connexions i programa principal
- Pas 5: creació del servidor web
- Pas 6: Pas final !
Vídeo: Pantalla WIFI per a la gestió de producció: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Sóc una mica sèrie d'ordinadors IOT i de placa única.
Sempre desitjo fer-lo servir més enllà de Hobby & Fun Projects (producció i fabricació reals).
Aquest instructiu està a punt de crear una pantalla WIFI de 4 dígits de 7 segments amb ESP nodemcu per mostrar l'entrada de producció per hora. Estic treballant en la indústria de la fabricació d’electrònica, on fem servir el sistema d’execució de fabricació (MES) per supervisar i controlar l’entrada, la sortida i el procés del sòl de producció. En aquest projecte estic creant una unitat de visualització petita que mostrarà la quantitat d’entrada de producció segons la línia, el torn i l’hora.
En termes tècnics, aquest projecte és similar a una pantalla de recompte de subscriptors de Youtube, en què utilitzem la resposta API / HTTP des de la línia, però aquí crearem la nostra pròpia API per interactuar amb el nostre sistema MES local per obtenir la quantitat d’entrada.
Pas 1: peces i eines utilitzades:
Peces de maquinari utilitzades:
- ESP nodemcu
- Pantalla de rellotge TM1637 de 4 dígits
- Polsador
- 10k resistència
- pocs cables de pont
Eines de programari utilitzades:
- IDE Arduino
- Xampp per al servidor web PHP / Apache
La biblioteca Arduino s'utilitza:
1. Gestor de wifi de tzapu & i Personalitzat per als meus fitxers personalitzats (wifimanager)
2. ESP_EEPROM per emmagatzemar els meus valors personalitzats a la memòria Flash
3. SevenSegmentTM1637 per a la visualització
Pas 2: personalització del gestor de Wifi
Primer, he instal·lat primer el gestor de wifi i després he copiat la carpeta del gestor de wifi i he passat de nou a la mateixa carpeta de la biblioteca Arduino, i després he canviat el nom de WiFiManager_custom.
Directori arrel de la carpeta Sobretot
C: / Users / nom del vostre equip / Documents / Arduino / libraries
Després he obert la carpeta wifimanager_custom i he canviat el nom del fitxer.cpp de capçalera igual que wifimanager_custom, i he afegit el mateix als fitxers de capçalera i.cpp.
I he afegit el formulari i el botó personalitzats a la capçalera.
a HTTP_PORTAL_OPTIONS PROGMEM he afegit el formulari del meu botó per a Menú.
i es va afegir un nou formulari per introduir línia i desplaçament. He creat aquest formulari com a senzill formulari de text.
Després d'això, crearem funcions d'acció per a aquest formulari al fitxer.cpp, per això hem de fer la declaració de funcions al fitxer de capçalera.
/ * les meves funcions personalitzades * /
void handleCustomForm (); void handleCustomSave ();
He declarat les meves funcions personalitzades al fitxer de capçalera. que, el nostre treball a la capçalera s'ha acabat, hem d'anar amb el fitxer.cpp per crear la nostra funció i accions.
Pas 3: Funcions personalitzades per a l'acció del formulari
Ara obrim el nostre fitxer wifimanager_custom.cpp.
i hem d'afegir el nostre gestor de respostes http per trucar a les nostres funcions quan el formulari sigui publicat.
server-> on (String (F ("/ custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // EL MEU mànec personalitzat
server-> on (String (F ("/ custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // EL MEU mànec personalitzat
aquestes trucaran a les nostres funcions personalitzades quan es publiqui el formulari.
1.handleCustomForm () -> crearà una pàgina amb el nostre formulari personalitzat per al botó d’entrada i desa de línia i de desplaçament.
2.handleCustomSave () -> aquesta funció obtindrà els valors del formulari i s’emmagatzemarà a les ubicacions de memòria Flash 0 (línia) i 50 (shift).
Pas 4: connexions i programa principal
Les connexions són molt senzilles..
Connexions i cablejat:
nodemcu TM1637 Display
3,3 v ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- polsador
- Polsador connectat al pin D8 de + 5V - Resistència 10K connectat al pin D8 des de terra
hem acabat de personalitzar el nostre wifimanager. ara hem de crear el nostre programa principal.
1. el nostre gestor de connexions wifi es connectarà amb la xarxa wifi amb les últimes credencials utilitzades per connectar-se, si falla obre un servidor wifi AutoConnectAP. Podem configurar nous cridencials, línies i desplaçaments wifi connectant-vos a aquest servidor wifi.
2. llavors entrarà al bucle principal.
El nostre bucle principal contindrà dues parts. un és la subrutina confi quan hem de canviar de línia, canviar o afegir qualsevol credencial wifi al mode de demanda de trucades AP per configurar. es trucarà quan es prem un botó de connexió connectat al pin D8.
bucle buit () {
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Esperant l'estat del botó de configuració …");
//display.print("Wait ");
if (digitalRead (TRIGGER_PIN) == HIGH)
{
display.print ("Conf"); // WiFiManager
// Intialització local. Un cop realitzat el seu negoci, no cal mantenir-lo al voltant de WiFiManager wifiManager;
// restableix la configuració: per provar-les
//wifiManager.resetSettings ();
// defineix el temps d'espera fins que el portal de configuració es desactiva // útil per fer que tot es torni a provar o per dormir // en segons
//wifiManager.setTimeout(120);
// inicia un punt d'accés amb el nom especificat
// aquí "AutoConnectAP" // i entra en un bucle de bloqueig esperant la configuració
// SENSE AIX THE AP NO SEMBLA FUNCIONAR CORRECTAMENT AMB SDK 1.5, actualitzeu-lo com a mínim a 1.5.1 //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("no s'ha pogut connectar i ha passat el temps d'espera"); retard (3000); // restableix i torna-ho a provar, o potser posa-ho a dormir profundament ESP.reset (); retard (5000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Bucle principal "); //display.clear ();
}
El segon serà el nostre programa principal per obtenir resposta HTTP d'un servidor concret i mostrar la quantitat d'entrada a la pantalla.
Per a això primer hem d'obtenir els nostres detalls de línia i canvi des de l'emmagatzematge Flash d'ESP (adreça 0-> línia, 50-> canvi)
EEPROM.begin (100); // eeprom storageEEPROM.get (0, line); // obtenir valor de l'adreça 0
EEPROM.get (50, torn); // Obtingueu valor de l'adreça 50
llavors hem de passar aquesta línia i canviar els detalls al nostre servidor http mitjançant el mètode get per obtenir el valor d'entrada i sortida.
String Base_url = "eliminat"; // my urlHTTPClient base http; // Objecte de la classe
URL de cadena = Base_url + "?" + "Line =" + line + "& shift =" + shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // això imprimirà tota la cadena de resposta
si voleu saber com es completa tot el text, aquí el vostre treball ja el podem mostrar directament a la pantalla tm1637.
display.print (http.getString ());
Però no vull mostrar tot el text, perquè conté entrada, sortida en format json i algun altre text general sobre la seva base de dades i etc.
primer he eliminat aquest text general de la cadena de resposta mitjançant la funció Substring ().
Vaig comptar la longitud del text general i el vaig retallar.
if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); Arrel DynamicJsonDocument (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
String json_string = http.getString (). Substring (121); / * aquest és el meu desplaçament de text general si la vostra resposta no té cap cosa semblant que pugueu eliminar aquest codi; * /
//Serial.println(json_string);
DeserializationError error = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
si (error)
{Serial.print (F ("deserializeJson () ha fallat:"));
Serial.println (error.c_str ());
tornar;
}
més {
const char * input = root ["input"];
const char * sortida = arrel ["sortida"];
Serial.print ("Entrada:");
Serial.println (entrada);
Serial.print ("Sortida:");
Serial.println (sortida);
display.print (".. a..");
display.clear (); // neteja la pantalla
display.print (entrada); // imprimir COMPTANT ALGUNS DIGITS
}
això és el nostre programa principal està acabat.
Pas 5: creació del servidor web
Estic fent servir xampp com a servei web i codi PHP per obtenir dades de la meva base de dades SQL per obtenir la quantitat exacta.
Però no puc compartir-ne tots els codis originals. perquè és confidencialitat de la meva empresa. però mostraré la manera de crear un servidor web, mostraré la quantitat d’entrada i sortida estàtica estàtica.
Per a això, haureu de necessitar qualsevol allotjament web, aquí estic fent servir xampp com a amfitrió.
podeu descarregar xampp aquí.
instal·leu xampp … si necessiteu instruccions clares, podeu utilitzar aquest enllaç.
Després d’instal·lar xampp, heu d’anar al directori arrel.
C: / xampp / htdocs
tots els vostres programes php haurien d'estar dins d'aquesta arrel.
Vaig crear la meva pàgina amb el nom anomenat esp_api.php
aquest és el meu codi PHP. aquí només mostro valors estàtics d'entrada i sortida;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
echo ("la meva cadena"); // Text general
if ($ line == 'a0401' i $ shift = 'dd') {$ result ['input'] = 100; $ result ['output'] = 99; }
else {$ result ['input'] = 200; $ result ['output'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> output = ''. $ result ['output']. '';
$ myJSON = json_encode ($ myObj);
eco $ myJSON;
Ara la nostra API de resposta HTTP ha finalitzat.
La nostra URL base http serà com
you_ip_address / esp_api.php
podeu consultar el text de resposta de l'API abans
localhost/esp_api.php? line = a0401 & shift = dd
aquí he esmentat la línia com a0401 i canvia com a dd.
Pas 6: Pas final !
Introduïu l'adreça IP de l'ordinador a l'URL base
String Base_url = "eliminat"; // la vostra URL base
i Carrega al teu nodemcu ESP. Un cop hàgiu acabat d'activar el wifi des del mòbil o l'ordinador portàtil, obtindreu la xarxa anomenada AutoConnectAP. connecteu-hi i introduïu les vostres credencials i configuracions de línia.
A continuació, reinicieu el dispositiu i comproveu que la vostra xarxa estigui connectada un cop s'hagi connectat i que tot estigui fet.
Podeu veure que l'entrada es mostra a la pantalla.
si voleu canviar qualsevol credencial de línia o wifi, podeu prémer l'interruptor durant uns segons, la pantalla mostra confi.
heu entrat al mode demandAP. Podeu canviar i restablir el dispositiu.
La seva moto principal és instructiva per mostrar-vos com podem utilitzar els nostres projectes de passatemps i diversió a l'àrea de producció i fabricació reals i mostrar
Recomanat:
Gestió fàcil de banda per a TI: 4 passos
Gestió fàcil de banda fora de TI: icones fetes per Freepik des de www.flaticon.com Apreneu a configurar la gestió de banda fora de banda (OOBM) connectant un control remot Raspberry Pi i un dispositiu Android o iPhone mitjançant connexió USB. Això funciona a RPi2 / RPi3 / RPi4.Si no sabeu què
Gestió d'energia per CR2032: 4 passos
Gestió d’energia per a CR2032: fer aplicacions amb poca energia necessita alguns complements especials i cura de les línies de codi. Alguns components donen aquesta característica, d’altres s’han de treballar en poc temps. la idea principal quan treballem en aplicacions d’energia molt baixa és el tipus de bateria. el
Endolls Arduino Mega RJ45 per a la gestió de cables: 5 passos
Endolls Arduino Mega RJ45 per a la gestió de cables: Arduino Mega té un munt de pins: aquest és un motiu important per comprar-ne un, oi? Volem utilitzar tots aquests pins! El cablejat es pot convertir ràpidament en un espagueti sense gestió de cables. Podem consolidar els cables mitjançant endolls Ethernet. Els pins de dades a
ROBOT CONTROLAT PER GESTIÓ BASAT EN IOT: 10 passos (amb imatges)
ROBOT CONTROLAT PER GESTIÓ BASAT EN IOT: Aquest robot és un gest controlat per gestos que es pot controlar des de qualsevol lloc mitjançant l'ajuda d'Internet. En aquest projecte, l’acceleròmetre MPU 6050 s’utilitza per recopilar dades sobre els nostres moviments de mans. Mesura l’acceleració de la nostra mà en tres
Com fer una pista electrònica de Bumpin ': producció introductòria de música per a FL Studio: 6 passos
Com fer una pista electrònica de Bumpin ': producció musical introductòria per a FL Studio: Benvingut! Aquesta guia instructiva ajudarà els principiants a productors de música intermedis a utilitzar FL Studio per crear diversos gèneres de música electrònica de ball. Recorrerà els elements bàsics de la creació d’una cançó, amb l’objectiu de detallar consells bàsics