Indholdsfortegnelse:

WIFI -display til produktionsstyring: 6 trin
WIFI -display til produktionsstyring: 6 trin

Video: WIFI -display til produktionsstyring: 6 trin

Video: WIFI -display til produktionsstyring: 6 trin
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Juli
Anonim
WIFI -display til produktionsstyring
WIFI -display til produktionsstyring

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:

Brugte dele og værktøjer
Brugte dele og værktøjer

Hardware dele brugt:

  1. ESP nodemcu
  2. TM1637 4 -cifret ur Display
  3. Tryk på kontakten
  4. 10k modstand
  5. få springtråde

Brugte softwareværktøjer:

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

Tilpasning af Wifi Manager
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

Tilpassede funktioner til formularhandling
Tilpassede funktioner til formularhandling
Tilpassede funktioner til formularhandling
Tilpassede funktioner til formularhandling
Tilpassede funktioner til formularhandling
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 og hovedprogram
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

Oprettelse af webserver
Oprettelse af webserver
Oprettelse af webserver
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 !

Sidste trin !!!
Sidste trin !!!
Sidste trin !!!
Sidste trin !!!
Sidste trin !!!
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: