INHOUDSOPGAWE:
- Stap 1: Onderdele en gereedskap wat gebruik word:
- Stap 2: Pas Wifi -bestuurder aan
- Stap 3: Pasgemaakte funksies vir vormaksie
- Stap 4: Verbindings en hoofprogram
- Stap 5: Skep 'n webbediener
- Stap 6: Laaste stap !
Video: WIFI -skerm vir produksiebestuur: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Ek is 'n klein reeks oor IOT- en enkelbordrekenaars.
Ek wil dit altyd verder gebruik as Hobby & Fun Projects (regte produksie en vervaardiging).
Hierdie instruksie is op die punt om 'n 4-syfer-7-segment WIFI-skerm met ESP-nodemcu te skep om produksie-insette per uur te wys. Ek werk in die elektroniese vervaardigingsbedryf, waar ons Manufacturing Execution System (MES) gebruik om produksievloerinvoer, -uitset en -proses te monitor en te beheer. In hierdie projek skep ek 'n klein skermeenheid wat die hoeveelheid produksie -insette volgens reël, skof en uur sal toon.
Tegnies is hierdie projek soortgelyk aan 'n vertoning van YouTube -intekenare, waar ons API/HTTP -reaksie van aanlyn gebruik, maar hier gaan ons ons eie API skep om met ons plaaslike MES -stelsel te kommunikeer om die hoeveelheid in te voer.
Stap 1: Onderdele en gereedskap wat gebruik word:
Hardeware onderdele wat gebruik word:
- ESP knik
- TM1637 4 -syferhorlosie
- Druk skakelaar
- 10k weerstand
- paar springdrade
Sagteware -instrumente wat gebruik word:
- Arduino IDE
- Xampp vir PHP/Apache -webbediener
Arduino -biblioteek word gebruik:
1. Wifi -bestuurder deur tzapu & i Pasgemaak vir my persoonlike lêers (wifimanager)
2. ESP_EEPROM vir die stoor van my persoonlike waardes in Flash geheue
3. SevenSegmentTM1637 vir vertoning
Stap 2: Pas Wifi -bestuurder aan
In hierdie eerste installeer ek eers wifi -bestuurder en daarna kopieer ek die Wifi -bestuurdermap en slaag dit weer in dieselfde in die Arduino -biblioteekmap, dan herdoop na WiFiManager_custom.
Folder Root -gids Gewoonlik
C: / Gebruikers / u rekenaarnaam / Documents / Arduino / biblioteke
Toe maak ek die wifimanager_custom -lêergids oop en hernoem die kop -cpp -lêer, dieselfde as die wifimanager_custom, dieselfde in die kop- en.cpp -lêers.
En het my pasgemaakte vorm en knoppie by die kop gevoeg.
in HTTP_PORTAL_OPTIONS PROGMEEM het ek my knoppievorm vir Menu bygevoeg.
en 'n nuwe vorm bygevoeg om lyn en verskuiwing in te voer. Ek het hierdie vorm as 'n eenvoudige teksvorm geskep.
Hierna gaan ons aksiefunksies vir hierdie vorms in die.cpp -lêer skep, daarvoor moet ons funksieverklaring in die koplêer doen.
/ * my persoonlike funksies */
leegte handleCustomForm (); leegte handleCustomSave ();
Ek het my persoonlike funksies in die koplêer verklaar. dat dit, ons werk in die opskrif klaar is, moet ons met die.cpp -lêer gaan om ons funksie en aksies te skep.
Stap 3: Pasgemaakte funksies vir vormaksie
Nou maak ons ons wifimanager_custom.cpp -lêer oop.
en ons moet ons http -reaksie -hanteerder byvoeg om ons funksies te skakel wanneer ons vorm pos.
bediener-> op (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, hierdie)); // MY pasgemaakte handvatsel
bediener-> op (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, hierdie)); // MY pasgemaakte handvatsel
hierdie sal ons persoonlike funksies noem wanneer die vorm gepos word.
1.handleCustomForm ()-> skep 'n bladsy met ons pasgemaakte vorm vir lyn- en skuifinvoer en stoorknoppie.
2.handleCustomSave ()-> hierdie funksie kry die vormwaardes en stoor dit in die Flash-geheue 0 (reël) en 50 (shift).
Stap 4: Verbindings en hoofprogram
Verbindings is baie eenvoudig..
Aansluitings en bedrading:
nodemcu TM1637 Display
3.3v ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- druk skakelaar
- drukknop vasgemaak aan pen D8 vanaf +5V - 10K weerstand wat aan pen D8 vanaf die grond geheg is
ons het ons wifimanager klaar aangepas. nou moet ons ons hoofprogram opstel.
1. ons wifi -bestuurder sal verbinding maak met die wifi -netwerk met die laaste gebruikte geloofsbriewe om aan te sluit, as dit misluk, maak dit 'n AutoConnectAP wifi -bediener oop. Ons kan nuwe wifi -kriminele, lyn en verskuiwing instel deur aan te sluit op hierdie wifi -bediener.
2. dan gaan dit in by die hooflus.
Ons hooflus sal twee dele bevat. een is konfi -onderroutine wanneer ons van lyn moet verander, skuif of 'n wifi -bewys moet byvoeg om die vraagmodus AP te skakel om dit op te stel. dit sal gebel word as 'n drukknoppie wat aan die D8 -pen gekoppel is, ingedruk word.
leemte -lus () {
config_loop ();
}
ongeldig config_loop () {Serial.println ("");
Serial.println ("Wag vir konfig knoppie status …");
//display.print("Wait ");
as (digitalRead (TRIGGER_PIN) == HOOG)
{
display.print ("Conf"); // WiFiManager
// Plaaslike intialisering. As dit eers klaar is, hoef u dit nie by WiFiManager wifiManager te hou nie;
// herstel instellings - vir toetsing
//wifiManager.resetSettings ();
// stel 'n tydsduur in totdat die konfigurasieportaal afgeskakel word // handig om alles weer te probeer of te gaan slaap // binne sekondes
//wifiManager.setTimeout(120);
// dit begin 'n toegangspunt met die gespesifiseerde naam
// hier "AutoConnectAP" // en gaan in 'n blokkeerlus wat op konfigurasie wag
// SONDER DIT LYK DIE AP NIE OM WERKLIK MET SDK 1.5 TE WERK nie, werk op na ten minste 1.5.1 //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("kon nie koppel nie en raak time -out"); vertraging (3000); // herstel en probeer weer, of sit dit in diepe slaap ESP.reset (); vertraging (5000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Main lus "); //display.clear ();
}
Die tweede een is ons hoofprogram om HTTP -reaksie van 'n spesifieke bediener te kry en die invoerhoeveelheid in die skerm te vertoon.
Vir hierdie eerste moet ons ons lyn- en verskuiwingsdetail kry van die Flash-berging van ESP (adres 0-> reël, 50-> skof)
EEPROM.begin (100); // eeprom storageEEPROM.get (0, reël); // kry waarde vanaf adres 0
EEPROM.get (50, skof); // Kry waarde vanaf adres 50
dan moet ons hierdie reël deurgee en die besonderhede na ons http -bediener verskuif deur die kry metode om die waarde van invoer en uitset te kry.
String Base_url = "verwyder"; // my basis urlHTTPClient http; // Voorwerp van klas
String URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // dit sal alle http -antwoordstring afdruk;
as u wil hoe al die teks is, dan is u werk self klaar, kan ons dit direk in tm1637 vertoon.
display.print (http.getString ());
Maar ek wil nie al die teks wys nie, want dit bevat insette, afvoer in json -vorm en 'n ander algemene teks oor die databasis en ens.
so eers het ek die algemene teks uit die antwoordstring verwyder deur die Substring () -funksie te gebruik.
Ek tel die lengte van die algemene teks en sny dit af.
as (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument -wortel (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
String json_string = http.getString (). Substring (121); /* dit is my verrekening van algemene teks as u antwoord nie iets soos hierdie het nie, kan u hierdie kode verwyder; */
//Serial.println(json_string);
DeserializationError -fout = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
as (fout)
{Serial.print (F ("deserializeJson () misluk:"));
Serial.println (error.c_str ());
terugkeer;
}
anders {
const char* input = root ["input"];
const char* output = root ["output"];
Serial.print ("Invoer:");
Serial.println (invoer);
Serial.print ("Uitset:");
Serial.println (uitset);
display.print (".. in..");
display.clear (); // maak die skerm skoon
display.print (invoer); // print TEL ENKELE SYFERS
}
dit is dat ons hoofprogram klaar is.
Stap 5: Skep 'n webbediener
Ek gebruik xampp as my webbediener en PHP -kode om data uit my SQL -databasis te kry om die presiese hoeveelheid te kry.
Maar ek kan nie alle oorspronklike kodes daarvan deel nie. omdat dit vertroulik is oor my onderneming. maar ek sal wys hoe u 'n webbediener kan skep, 'n dummy statiese invoer en afvoerhoeveelheid kan toon.
Hiervoor benodig u enige webgasheer, ek gebruik xampp hier as my gasheer.
u kan xampp hier aflaai.
installeer xampp … as u duidelike instruksies benodig, kan u hierdie skakel gebruik.
Nadat u xampp geïnstalleer het, moet u na u wortelmap gaan.
C: / xampp / htdocs
al u php -programme moet binne hierdie wortel wees.
Ek het my bladsy geskep met die naam esp_api.php
dit is my php kode. hier vertoon ek net statiese waardes van invoer en uitset;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
eggo ("myString"); // algemene teks
as ($ line == 'a0401' en $ shift = 'dd') {$ result ['input'] = 100; $ result ['output'] = 99; }
anders {$ result ['input'] = 200; $ resultaat ['uitvoer'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> output = ''. $ result ['output']. '';
$ myJSON = json_encode ($ myObj);
eggo $ myJSON;
Nou is ons HTTP -reaksie -API klaar.
Ons http -basis -url sal soos volg wees
jy_ip_adres/esp_api.php
u kan u API -antwoordteks nagaan deur
localhost/esp_api.php? line = a0401 & shift = dd
hier noem ek reël as a0401 en skuif as dd.
Stap 6: Laaste stap !
Voer u rekenaar -ip -adres in die basis -URL in
String Base_url = "verwyder"; // jou basis -url
en Laai op na jou ESP nodemcu. As u eers u wifi vanaf u selfoon of skootrekenaar aangeskakel het, kry u 'n netwerk genaamd AutoConnectAP. skakel daarmee in en voer u geloofsbriewe en reëlkonfigure in.
Stel dan u toestel terug en kyk of u netwerk gekoppel is sodra dit gekoppel is, dan is alles gedoen.
U kan sien dat die invoer op die skerm verskyn.
As u 'n lyn- of wifi -bewys wil verander, kan u 'n paar sekondes op die drukknop druk, op die skerm verskyn konfi.
jy het aangegaan in die demandAP -modus. u kan die toestel verander en herstel.
Die belangrikste motor van hom kan u wys hoe ons ons stokperdjie en prettige projekte in die werklike produksie- en vervaardigingsgebied kan gebruik en kan wys
Aanbeveel:
Arduino motorwaarskuwingstelsel vir omgekeerde parkering - Stap vir stap: 4 stappe
Arduino -waarskuwingstelsel vir omgekeerde parkeerterrein | Stap vir stap: In hierdie projek ontwerp ek 'n eenvoudige Arduino Car Reverse Parking Sensor Circuit met behulp van Arduino UNO en HC-SR04 Ultrasonic Sensor. Hierdie Arduino -gebaseerde motor -omkeerwaarskuwingstelsel kan gebruik word vir 'n outonome navigasie, robotafstand en ander reeks
Opstelling vir eksterne Bluetooth GPS -verskaffer vir Android -toestelle: 8 stappe
Opstelling vir eksterne Bluetooth GPS-verskaffer vir Android-toestelle: hierdie instruksies sal verduidelik hoe u u eie eksterne Bluetooth-gps vir u telefoon kan aanbring, maar dit kan slegs teen ongeveer $ 10 aanbring.Materiaal: NEO 6M U-blox GPSHC-05 bluetooth-moduleKennis van koppelvlak Blutooth lae energie modules Ardui
Maklike skyfomslag vir 'n skootrekenaar vir 'n skootrekenaar: 6 stappe
Maklike skootbedekking vir 'n skootrekenaar vir 'n skootrekenaar: MATERIAAL: Dik materiaal, byvoorbeeld sintetiese leer, isolasieband, 'n deksel van 'n boks koekies of sjokolade.GEREEDSKAPPE
Handleiding vir PCB vir lugversorger met sy werk en herstel: 6 stappe
Handleiding vir PCB vir lugversorger met sy werk en herstel: Hey, wat gaan aan, ouens! Akarsh hier van CETech. Het u al ooit gewonder wat aan die binnekant van u lugversorgers aangaan? As Ja, dan moet u hierdie artikel deurgaan, aangesien ek vandag 'n insig sal gee in die verband en die samestelling
MicroPython vir goedkoop $ 3 ESP8266 WeMos D1 Mini vir 2x temperatuurregistrasie, wifi en mobiele statistieke: 4 stappe
MicroPython op goedkoop $ 3 ESP8266 WeMos D1 Mini vir 2x temperatuurregistrasie, wifi en mobiele statistieke: Met klein goedkoop ESP8266 -chip / toestel kan u temperatuurdata buite, in die kamer, kweekhuis, laboratorium, koelkamer of op enige ander plek heeltemal gratis aanmeld. Hierdie voorbeeld sal ons gebruik om die verkoelingstemperatuur binne en buite aan te meld