Innholdsfortegnelse:

WIFI -skjerm for produksjonsstyring: 6 trinn
WIFI -skjerm for produksjonsstyring: 6 trinn

Video: WIFI -skjerm for produksjonsstyring: 6 trinn

Video: WIFI -skjerm for produksjonsstyring: 6 trinn
Video: welding robot arm & pick and place robot|compete with ABB Fanuc Yaskawa Kuka etc|how to choose robot 2024, Juli
Anonim
WIFI -skjerm for produksjonsstyring
WIFI -skjerm for produksjonsstyring

Jeg er en liten serie om IOT og enkeltkort datamaskiner.

Jeg ønsker alltid å bruke det utover Hobby & Fun Projects (ekte produksjon og produksjon).

Denne instruksen er i ferd med å lage et 4-sifret 7-segmenters WIFI-display med ESP-nodemcu for å vise timeproduksjonsinngang. Jeg jobber i elektronikkindustrien, hvor vi bruker Manufacturing Execution System (MES) til å overvåke og kontrollere produksjonsgulv, input og output. I dette prosjektet oppretter jeg Small display -enhet som viser mengden produksjonsinngang per linje, skift og time.

Teknisk sett ligner dette prosjektet på en visning av YouTube -abonnenter, hvor vi bruker API/HTTP -respons fra online. Men her skal vi lage vår egen API for å samhandle med vårt lokale MES -system for å få inndata.

Trinn 1: Deler og verktøy som brukes:

Deler og verktøy som brukes
Deler og verktøy som brukes

Maskinvaredeler som brukes:

  1. ESP nodemcu
  2. TM1637 4 -sifret klokke Display
  3. Trykk på bryteren
  4. 10k motstand
  5. noen hoppetråder

Brukt programvareverktøy:

  1. Arduino IDE
  2. Xampp for PHP/Apache webserver

Arduino bibliotek er brukt:

1. Wifi manager av tzapu & i Tilpasset for mine egendefinerte arkiver (wifimanager)

2. ESP_EEPROM for lagring av egendefinerte verdier i Flash -minne

3. SevenSegmentTM1637 For Display

Trinn 2: Tilpasse Wifi Manager

Tilpasse Wifi Manager
Tilpasse Wifi Manager

I denne først installerte jeg wifi manager først og deretter kopierte jeg Wifi manager mappen og sendte igjen i den samme i Arduino bibliotekmappen, deretter omdøpt til WiFiManager_custom.

Mappe rotkatalog Liker mest

C: / Users / datamaskinnavnet / Documents / Arduino / biblioteker

Deretter åpnet jeg wifimanager_custom -mappen og omdøpte header.cpp -filen som den samme som wifimanager_custom, og ble også lagt til i header- og.cpp -filene.

Og la til min egendefinerte skjema og knapp i topptekst.

i HTTP_PORTAL_OPTIONS PROGMEM la jeg til knappeskjemaet mitt for Meny.

og lagt til nytt skjema for å skrive inn linje og skift. Jeg opprettet dette skjemaet som et enkelt tekstskjema.

Etter dette skal vi lage handlingsfunksjoner for disse skjemaene i.cpp -fil, for det må vi gjøre funksjonserklæring i topptekstfil.

/ * mine egendefinerte funksjoner */

void handleCustomForm (); void handleCustomSave ();

Jeg erklærte mine egendefinerte funksjoner i topptekstfil. at det, vårt arbeid i topptekst er ferdig, vi må gå med.cpp -fil for å lage vår funksjon og handlinger.

Trinn 3: Tilpassede funksjoner for skjemahandling

Tilpassede funksjoner for skjemahandling
Tilpassede funksjoner for skjemahandling
Tilpassede funksjoner for skjemahandling
Tilpassede funksjoner for skjemahandling
Tilpassede funksjoner for skjemahandling
Tilpassede funksjoner for skjemahandling

Nå åpner vi filen wifimanager_custom.cpp.

og vi må legge til vår http -svarbehandler for å ringe funksjonene våre når skjemaet vårt er lagt ut.

server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, dette)); // MITT tilpassede håndtak

server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, dette)); // MITT tilpassede håndtak

disse vil kalle våre egendefinerte funksjoner når skjemaet legges ut.

1.handleCustomForm ()-> vil opprette en side med vårt egendefinerte skjema for linje- og skiftinngang og lagringsknapp.

2.handleCustomSave ()-> denne funksjonen vil få skjemaverdiene og lagre i Flash-minnesteder 0 (linje) og 50 (skift).

Trinn 4: Tilkoblinger og hovedprogram

Tilkoblinger og hovedprogram
Tilkoblinger og hovedprogram

Tilkoblinger er veldig enkle..

Tilkoblinger og ledninger:

nodemcu TM1637 Display

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- trykkbryter

- trykknapp festet til pinne D8 fra +5V - 10K motstand festet til pinne D8 fra bakken

vi er ferdige med å tilpasse vår wifimanager. nå må vi lage vårt hovedprogram.

1. vår wifi -manager vil koble til wifi -nettverket med sist brukte legitimasjon for å koble til, hvis det mislykkes, åpner det en AutoConnectAP wifi -server. Vi kan konfigurere nye wifi -krimineller, linje og skift ved å koble til denne wifi -serveren.

2. så kommer den inn i hovedsløyfen.

Vår hovedsløyfe vil inneholde to deler. den ene er konfisubrutine når vi trenger å endre linje, skifte eller legge til wifi -legitimasjon for å ringe etterspørselsmodus AP for å konfigurere. dette vil bli kalt når en trykknapp som er koblet til D8 -pinnen trykkes.

void loop () {

config_loop ();

}

void config_loop () {Serial.println ("");

Serial.println ("Venter på konfigureringsknappstatus …");

//display.print("Wait ");

hvis (digitalRead (TRIGGER_PIN) == HIGH)

{

display.print ("Conf"); // WiFiManager

// Lokal intialisering. Når virksomheten er ferdig, er det ikke nødvendig å beholde den rundt WiFiManager wifiManager;

// tilbakestill innstillinger - for testing

//wifiManager.resetSettings ();

// angir timeout til konfigurasjonsportalen blir slått av // nyttig for å få det hele til å prøve på nytt eller gå i dvale // på sekunder

//wifiManager.setTimeout(120);

// det starter et tilgangspunkt med det angitte navnet

// her "AutoConnectAP" // og går inn i en blokkeringssløyfe som venter på konfigurasjon

// UTEN DET SER APPEN IKKE Å FUNGERE RIKTIG MED SDK 1.5, oppdater til minst 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("mislyktes i å koble til og treffe timeout"); forsinkelse (3000); // tilbakestill og prøv igjen, eller kanskje sette den i dyp søvn ESP.reset (); forsinkelse (5000); }}

//Serial.println("Button status False. Back to Main loop "); //display.print("Main loop "); //display.clear ();

}

Den andre vil være vårt hovedprogram for å få HTTP -respons fra en bestemt server og vise inngangsmengden i displayet.

For dette Først må vi få vår linje- og skiftdetalj fra Flash-lagringen til ESP (adresse 0-> linje, 50-> skift)

EEPROM.begynner (100); // eeprom storageEEPROM.get (0, linje); // få verdi fra adresse 0

EEPROM.get (50, skift); // Få verdi fra adresse 50

så må vi sende denne linjen og flytte detaljer til vår http -server ved å få metoden for å få verdien av 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 skrive ut all http -responsstreng;

Hvis du vil hvordan all teksten, så er arbeidet ditt ferdig her selv, kan vi direkte vise det i tm1637 -skjerm.

display.print (http.getString ());

Men jeg vil ikke vise all teksten, fordi den inneholder input, output i json -form og annen generell tekst om databasen osv.

så først fjernet jeg den generelle teksten fra svarstrengen ved å bruke funksjonen Substring ().

Jeg regnet lengden på den generelle teksten og trimmet 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 forskyvning av generell tekst hvis svareren din ikke har noe slikt som at du kan fjerne denne koden; */

//Serial.println(json_string);

DeserializationError error = deserializeJson (root, json_string);

// JsonObject & root = jsonBuffer.parseObject (http.getString ());

hvis (feil)

{Serial.print (F ("deserializeJson () mislyktes:"));

Serial.println (error.c_str ());

komme tilbake;

}

ellers{

const char* input = root ["input"];

const char* output = root ["output"];

Serial.print ("Inngang:");

Serial.println (input);

Serial.print ("Output:");

Serial.println (utgang);

display.print (".. i..");

display.clear (); // tøm skjermen

display.print (input); // print TELLING NOEN SIGLER

}

det er det som er hovedprogrammet vårt ferdig.

Trinn 5: Opprette webserver

Opprette webserver
Opprette webserver
Opprette webserver
Opprette webserver

Jeg bruker xampp som webserver og PHP -kode for å hente data fra SQL -databasen min for å få nøyaktig mengde.

Men jeg kan ikke dele alle de originale kodene. fordi det er konfidensialitet for selskapet mitt. men jeg vil vise hvordan du oppretter en webserver, viser dummy statisk inngang og utgangsmengde.

For dette trenger du en hvilken som helst webvert, jeg bruker her xampp som verten min.

du kan laste ned xampp her.

installer xampp … hvis du trenger klar instruksjon kan du bruke denne lenken.

Etter å ha installert xampp må du gå til rotkatalogen.

C: / xampp / htdocs

alle php -programmene dine bør være inne i denne roten.

Jeg opprettet siden min under navnet kalt esp_api.php

dette er min php -kode. her viser jeg bare statiske verdier for input & output;

$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];

ekko ("myString"); // generell tekst

if ($ line == 'a0401' og $ shift = 'dd') {$ result ['input'] = 100; $ result ['output'] = 99; }

ellers {$ result ['input'] = 200; $ result ['output'] = 199; }

$ myObj-> input = ''. $ result ['input']. '';

$ myObj-> output = ''. $ result ['output']. '';

$ myJSON = json_encode ($ myObj);

ekko $ myJSON;

Nå er vårt HTTP -svar -API ferdig.

Vår http base url vil være som

you_ip_address/esp_api.php

du kan sjekke API -svarteksten din ved

localhost/esp_api.php? line = a0401 & shift = dd

her nevnte jeg linjen som a0401 og skift som dd.

Trinn 6: Siste trinn !

Siste trinn !!!
Siste trinn !!!
Siste trinn !!!
Siste trinn !!!
Siste trinn !!!
Siste trinn !!!

Skriv inn datamaskinens ip -adresse i Base URL

String Base_url = "fjernet"; // hovedadressen din

og last opp til ESP nodemcu. Når du er ferdig, bare slå på wifi fra mobilen eller den bærbare datamaskinen, får du et nettverk kalt AutoConnectAP. koble til den og skriv inn legitimasjon og linjekonfigurasjoner.

Tilbakestill deretter enheten og sjekk at nettverket er tilkoblet når den er tilkoblet, så er alt gjort.

Du kan se at inngangen vises på displayet.

Hvis du vil endre en linje eller wifi -legitimasjon, kan du trykke på trykknappen i noen sekunder, displayet viser konfi.

du gikk inn i demandAP -modus. du kan endre og tilbakestille enheten.

Hovedmotoren til hans instruerbare for å vise deg hvordan vi kan bruke våre hobby- og morsomme prosjekter i det virkelige produksjons- og produksjonsområdet og vise

Anbefalt: