Indholdsfortegnelse:
- Trin 1: Brugte dele og værktøjer:
- Trin 2: Tilpasning af Wifi Manager
- Trin 3: Tilpassede funktioner til formularhandling
- Trin 4: Forbindelser og hovedprogram
- Trin 5: Oprettelse af webserver
- Trin 6: Sidste trin !
Video: WIFI -display til produktionsstyring: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Jeg er en lille serie om IOT og single board computere.
Jeg ønsker altid at bruge det ud over Hobby & Fun Projects (ægte produktion og fremstilling).
Denne instruktør er ved at oprette et 4-cifret 7-segment WIFI-display med ESP nodemcu for at vise timeproduktionsinput. Jeg arbejder i elektronikproduktionsindustrien, hvor vi bruger Manufacturing Execution System (MES) til at overvåge og kontrollere produktionsgulv input, output og proces. I dette projekt opretter jeg Small display -enhed, der viser produktionsinputmængden pr. Linje, skift og time.
Teknisk set ligner dette projekt en visning af Youtube Subscriber count, hvor vi bruger API/HTTP -svar fra online. Men her skal vi oprette vores egen API til at interagere med vores lokale MES -system for at få inputmængde.
Trin 1: Brugte dele og værktøjer:
Hardware dele brugt:
- ESP nodemcu
- TM1637 4 -cifret ur Display
- Tryk på kontakten
- 10k modstand
- få springtråde
Brugte softwareværktøjer:
- Arduino IDE
- Xampp til PHP/Apache webserver
Arduino bibliotek er brugt:
1. Wifi manager af tzapu & i Tilpasset til mine brugerdefinerede fileds (wifimanager)
2. ESP_EEPROM til lagring af mine brugerdefinerede værdier i Flash -hukommelse
3. SevenSegmentTM1637 til visning
Trin 2: Tilpasning af Wifi Manager
I denne First installerede jeg først wifi -manager og derefter kopierede jeg Wifi -managermappen og videresendte igen i den samme i Arduino -biblioteksmappen, derefter omdøbt til WiFiManager_custom.
Folder Root directory Mest lide
C: / Brugere / dit computers navn / Documents / Arduino / biblioteker
Derefter åbnede jeg wifimanager_custom -mappen og omdøbte header.cpp -filen som den samme som wifimanager_custom, tilføjede samme i header- og.cpp -filerne også.
Og tilføjede min tilpassede formular og knap i header.
i HTTP_PORTAL_OPTIONS PROGMEM tilføjede jeg min knapformular til Menu.
og tilføjet ny formular til indtastning af linje og skift. Jeg oprettede denne form som en simpel tekstform.
Herefter skal vi oprette handlingsfunktioner til disse formularer i.cpp -fil, for det skal vi lave funktionserklæring i header -fil.
/ * mine brugerdefinerede funktioner */
void handleCustomForm (); void handleCustomSave ();
jeg erklærede mine brugerdefinerede funktioner i header -fil. at det, vores arbejde i header er færdigt, vi skal gå med.cpp -fil for at oprette vores funktion og handlinger.
Trin 3: Tilpassede funktioner til formularhandling
Nu åbner vi vores wifimanager_custom.cpp -fil.
og vi skal tilføje vores http -svarhåndterer for at kalde vores funktioner, når vores formular er postet.
server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, dette)); // MIT brugerdefinerede håndtag
server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, dette)); // MIT brugerdefinerede håndtag
disse vil kalde vores brugerdefinerede funktioner, når formularen er bogført.
1.handleCustomForm ()-> opretter en side med vores brugerdefinerede formular til linje- og skiftindgang & gem knap.
2.handleCustomSave ()-> denne funktion vil hente formværdierne og gemme i Flash-hukommelseslokationerne 0 (linje) & 50 (shift).
Trin 4: Forbindelser og hovedprogram
Forbindelser er meget enkle..
Tilslutninger og ledninger:
nodemcu TM1637 Display
3.3v ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- trykafbryder
- trykknap fastgjort til pin D8 fra +5V - 10K modstand fastgjort til pin D8 fra jorden
vi var færdige med at tilpasse vores wifimanager. nu skal vi lave vores hovedprogram.
1. vores wifi -manager vil oprette forbindelse til wifi -netværket med sidst brugte legitimationsoplysninger til at oprette forbindelse, hvis det mislykkes, åbner det en AutoConnectAP wifi -server. Vi kan konfigurere nye wifi -krimineller, linje og skift ved at oprette forbindelse til denne wifi -server.
2. så kommer den ind i hovedsløjfen.
Vores hovedsløjfe vil indeholde to dele. den ene er konfi -underrutine, når vi skal ændre linje, skifte eller tilføje wifi -legitimationsoplysninger for at kalde efterspørgselstilstand AP for at konfigurere. dette kaldes, når der trykkes på en trykknap, der er forbundet til D8 -stiften.
void loop () {
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Waiting For Config button Status …");
//display.print("Vent ");
hvis (digitalRead (TRIGGER_PIN) == HIGH)
{
display.print ("Conf"); // WiFiManager
// Lokal intialisering. Når virksomheden er færdig, er det ikke nødvendigt at holde den i nærheden af WiFiManager wifiManager;
// nulstil indstillinger - til test
//wifiManager.resetSettings ();
// angiver timeout, indtil konfigurationsportalen slukkes // nyttig til at få det hele til at prøve igen eller gå i dvale // på få sekunder
//wifiManager.setTimeout(120);
// det starter et adgangspunkt med det angivne navn
// her "AutoConnectAP" // og går ind i en blokeringssløjfe, der afventer konfiguration
// UDEN DET SER APPEN IKKE AT ARBEJDE RIGTIGT MED SDK 1.5, opdater til mindst 1.5.1 //WiFi.mode(WIFI_STA);
hvis (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("kunne ikke oprette forbindelse og ramte timeout"); forsinkelse (3000); // nulstil og prøv igen, eller måske sætte den i dyb søvn ESP.reset (); forsinkelse (5000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Main loop "); //display.clear ();
}
Den anden vil være vores hovedprogram til at få HTTP -svar fra en bestemt server og vise inputmængden i displayet.
Til dette Først skal vi hente vores linje- og skiftdetaljer fra ESP's flashlager (adresse 0-> linje, 50-> skift)
EEPROM.begin (100); // eeprom storageEEPROM.get (0, linje); // få værdi fra adresse 0
EEPROM.get (50, skift); // Få værdi fra adresse 50
så er vi nødt til at videregive denne linje og flytte detaljer til vores http -server ved at få metoden for at få værdien af input og output.
String Base_url = "fjernet"; // min base urlHTTPClient http; // Objekt i klassen
String URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // dette vil udskrive alle http -svarstreng;
Hvis du vil hvordan hele teksten, så er dit arbejde færdigt her selv, kan vi direkte vise det i tm1637 display.
display.print (http.getString ());
Men jeg vil ikke vise al teksten, fordi den indeholder input, output i json -form og anden generel tekst om dens database osv.
så først fjernede jeg den generelle tekst fra svarstrengen ved hjælp af funktionen Substring ().
Jeg tællede længden af den generelle tekst og trimmede den.
hvis (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument root (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
String json_string = http.getString (). Delstreng (121); /* dette er min forskydning af generel tekst, hvis dit svar ikke har sådan noget, kan du fjerne denne kode; */
//Serial.println(json_string);
DeserializationError fejl = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
hvis (fejl)
{Serial.print (F ("deserializeJson () mislykkedes:"));
Serial.println (error.c_str ());
Vend tilbage;
}
andet{
const char* input = root ["input"];
const char* output = root ["output"];
Serial.print ("Input:");
Serial.println (input);
Serial.print ("Output:");
Serial.println (output);
display.print (".. i..");
display.clear (); // ryd displayet
display.print (input); // print TÆLLING AF NOGLE CIFTER
}
det er det, vores hovedprogram er færdigt.
Trin 5: Oprettelse af webserver
Jeg bruger xampp som min webserver og PHP -kode til at hente data fra min SQL -database for at få den nøjagtige mængde.
Men jeg kan ikke dele alle de originale koder. fordi det er fortroligt for min virksomhed. men jeg vil vise hvordan man opretter en webserver, viser dummy statisk input og outputmængde.
Til dette skal du have brug for enhver webhost, jeg bruger her xampp som min vært.
du kan downloade xampp her.
installer xampp … hvis du har brug for klar instruktion, kan du bruge dette link.
Efter installation af xampp skal du gå til din rodmappe.
C: / xampp / htdocs
alle dine php -programmer skal være inde i denne rod.
jeg oprettede min side under navnet kaldet esp_api.php
dette er min php -kode. her viser jeg bare statiske værdier for input & output;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
ekko ("myString"); // generel tekst
hvis ($ line == 'a0401' og $ shift = 'dd') {$ result ['input'] = 100; $ resultat ['output'] = 99; }
ellers {$ resultat ['input'] = 200; $ resultat ['output'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> output = ''. $ resultat ['output']. '';
$ myJSON = json_encode ($ myObj);
ekko $ myJSON;
Nu er vores HTTP -svar -API færdig.
Vores http -base -url vil være som
you_ip_address/esp_api.php
kan du tjekke din API -svartekst ved
localhost/esp_api.php? line = a0401 & shift = dd
her nævnte jeg linje som a0401 og skift som dd.
Trin 6: Sidste trin !
Indtast din computers ip -adresse i Base URL
String Base_url = "fjernet"; // din base url
og Upload til din ESP nodemcu. Når du er færdig, skal du bare tænde din wifi fra din mobil eller bærbare, får du netværk kaldet AutoConnectAP. forbinde med det, og indtast dine legitimationsoplysninger og linjekonfigurationer.
Nulstil derefter din enhed, og tjek, at dit netværk er tilsluttet, når den er tilsluttet, så er alt gjort.
Du kan se, at input vises på displayet.
Hvis du vil ændre en linje eller wifi -legitimationsoplysninger, kan du trykke på trykknappen i nogle sekunder, displayet viser konfi.
du gik ind i demandAP -tilstand. din kan ændre og nulstille enhed.
Hovedmotoren i hans instruerbare viser dig, hvordan vi kan bruge vores hobby- og sjove projekter i det virkelige produktions- og fremstillingsområde og vise
Anbefalede:
Billig NMEA/AIS Hub - RS232 til Wifi Bridge til brug ombord: 6 trin
Billig NMEA /AIS Hub - RS232 til Wifi Bridge til brug ombord: Opdater 9. januar 2021 - Tilføjet ekstra TCP -forbindelse og genbrug sidste forbindelse, hvis flere klienter opretter Opdatering 13. december 2020 - Tilføjet ingen konfigurationsversion af koden til både med eksisterende routere Introduktion Denne NMEA / AIS RS232 til WiFi -bro er
LoRa Messenger til to enheder til distancer Op til 8 km: 7 trin
LoRa Messenger til to enheder til afstande Op til 8 km: Tilslut projektet til din bærbare computer eller telefon, og chat derefter mellem enhederne uden internet eller SMS ved hjælp af bare LoRa.Hey, hvad sker der gutter? Akarsh her fra CETech. I dag skal vi lave et projekt, der kan forbindes til din smartphone eller en hvilken som helst
1A til 40A nuværende BOOST -konverter til op til 1000W DC -motor: 3 trin
1A til 40A Current BOOST-konverter til op til 1000W DC-motor: Hej! I denne video lærer du, hvordan du laver et strømforstærkerkredsløb til dine høj ampere DC-motorer op til 1000W og 40 ampere med transistorer og en center-tap-transformer. Selvom, strømmen ved udgangen er meget høj, men spændingen bliver r
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: 3 trin
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: Min plan var enkel. Jeg ville skære en væg-drevet LED-lysstreng i stykker og derefter genkoble den til at køre 12 volt. Alternativet var at bruge en strømomformer, men vi ved alle, at de er frygtelig ineffektive, ikke? Ret? Eller er de det?
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): 6 trin
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): Dette viser dig, hvordan du laver en 12v til USB (5v) adapter. Den mest oplagte anvendelse af dette er til 12v biladaptere, men hvor som helst du har 12v kan du bruge det! Hvis du har brug for 5v til andet end USB, skal du blot springe trinene om tilføjelse af USB -porte over