Sadržaj:

WIFI zaslon za upravljanje proizvodnjom: 6 koraka
WIFI zaslon za upravljanje proizvodnjom: 6 koraka

Video: WIFI zaslon za upravljanje proizvodnjom: 6 koraka

Video: WIFI zaslon za upravljanje proizvodnjom: 6 koraka
Video: БЕСПРОВОДНОЕ ВИДЕОНАБЛЮДЕНИЕ WIFI комплект KERUI со слежением за людьми 2024, Studeni
Anonim
WIFI zaslon za upravljanje proizvodnjom
WIFI zaslon za upravljanje proizvodnjom

Ja sam mala serija o IOT i single board računalima.

Uvijek ga želim koristiti izvan hobi i zabavnih projekata (stvarna proizvodnja i proizvodnja).

Ovaj Instructable sprema se stvoriti 4-znamenkasti 7-segmentni WIFI zaslon s ESP nodemcuom za prikaz unosa proizvodnje po satu. Radim u prerađivačkoj industriji elektronike, gdje koristimo Sustav izvršenja proizvodnje (MES) za nadgledanje i kontrolu ulaznih, izlaznih i proizvodnih podova. U ovom projektu stvaram malu prikaznu jedinicu koja će prikazati količinu ulazne proizvodnje prema retku, smjeni i satu.

Tehnički je ovaj projekt sličan zaslonu za prikaz broja pretplatnika na YouTubeu, gdje koristimo API/HTTP odgovor s interneta. No ovdje ćemo stvoriti vlastiti API za interakciju s našim lokalnim MES sustavom za dobivanje količine unosa.

Korak 1: Korišteni dijelovi i alati:

Korišteni dijelovi i alati
Korišteni dijelovi i alati

Korišteni dijelovi hardvera:

  1. ESP nodemcu
  2. TM1637 4 -znamenkasti satni zaslon
  3. Pritisnite prekidač
  4. 10k otpornik
  5. nekoliko kratkospojnih žica

Korišteni softverski alati:

  1. Arduino IDE
  2. Xampp za PHP/Apache web poslužitelj

Korištena je Arduino knjižnica:

1. Wifi manager by tzapu & i Prilagođeno za moje prilagođene datoteke (wifimanager)

2. ESP_EEPROM za spremanje prilagođenih vrijednosti u Flash memoriju

3. SevenSegmentTM1637 Za prikaz

Korak 2: Prilagođavanje Wifi Managera

Prilagođavanje Wifi Managera
Prilagođavanje Wifi Managera

U ovo prvo sam prvo instalirao wifi manager, a zatim sam kopirao mapu Wifi upravitelja i ponovo prošao u isto u mapi Arduino knjižnice, zatim preimenovan u WiFiManager_custom.

Mapa Root direktorij Uglavnom sviđa

C: / Users / ime vašeg računala / Documents / Arduino / libraries

Zatim sam otvorio mapu wifimanager_custom i preimenovao datoteku zaglavlja.cpp isto kao wifimanager_custom, dodao isto u datoteke zaglavlja i.cpp.

I dodao moj prilagođeni obrazac i gumb u zaglavlje.

u HTTP_PORTAL_OPTIONS PROGMEM dodao sam obrazac gumba za Izbornik.

i dodan novi obrazac za unos linije & shift. stvorio sam ovaj obrazac kao jednostavan tekstualni oblik.

Nakon toga ćemo stvoriti akcijske funkcije za ove obrasce u.cpp datoteci, za to moramo napraviti deklaraciju funkcije u datoteci zaglavlja.

/ * moje prilagođene funkcije */

void handleCustomForm (); void handleCustomSave ();

deklarirao sam svoje prilagođene funkcije u datoteci zaglavlja. da je to, naš rad u zaglavlju je završen, moramo krenuti s.cpp datotekom da bismo stvorili svoju funkciju i radnje.

Korak 3: Prilagođene funkcije za radnju obrasca

Prilagođene funkcije za radnju obrasca
Prilagođene funkcije za radnju obrasca
Prilagođene funkcije za radnju obrasca
Prilagođene funkcije za radnju obrasca
Prilagođene funkcije za radnju obrasca
Prilagođene funkcije za radnju obrasca

Sada otvaramo datoteku wifimanager_custom.cpp.

i moramo dodati naš rukovatelj http odgovora da pozove naše funkcije kada je naš obrazac objavljen.

server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, ovo)); // MOJA prilagođena ručka

server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, ovo)); // MOJA prilagođena ručka

te će pozivati naše prilagođene funkcije kada se obrazac objavi.

1.handleCustomForm ()-> stvorit će stranicu s našim prilagođenim obrascem za redak i pomak unosa i gumb za spremanje.

2.handleCustomSave ()-> ova funkcija dobit će vrijednosti obrasca i pohraniti ih u memoriju Flash memorije 0 (redak) & 50 (pomak).

Korak 4: Veze i glavni program

Veze i glavni program
Veze i glavni program

Veze su vrlo jednostavne..

Priključci i ožičenje:

nodemcu TM1637 Zaslon

3,3 V ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- pritisni prekidač

- tipka pričvršćena na pin D8 od +5V - 10K otpornik spojen na pin D8 sa zemlje

dovršili smo prilagodbu našeg wifimanagera. sada moramo stvoriti naš glavni program.

1. naš WiFi upravitelj će se povezati s wifi mrežom s posljednjim korištenim vjerodajnicama za povezivanje, ako ne uspije, otvara Wi -Fi poslužitelj AutoConnectAP. Možemo konfigurirati nove vjerodajnice za WiFi, liniju i pomak povezivanjem na ovaj WiFi poslužitelj.

2. tada će ući u glavnu petlju.

Naša glavna petlja sadržavat će dva dijela. jedna je confi podrutina kada moramo promijeniti liniju, pomaknuti ili dodati bilo koju vjerodajnicu za WiFi za pozivanje AP načina rada za konfiguriranje. to će se pozvati kada se pritisne gumb pritisnut na pin D8.

void loop () {{100} {101}

config_loop ();

}

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

Serial.println ("Čekanje statusa gumba za konfiguraciju …");

//display.print("Wait ");

if (digitalRead (TRIGGER_PIN) == HIGH)

{

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

// Lokalna incijalizacija. Nakon što posao završi, nema potrebe držati ga u blizini WiFiManager wifiManager;

// resetiranje postavki - za testiranje

//wifiManager.resetSettings ();

// postavlja vremensko ograničenje do isključivanja konfiguracijskog portala // korisno za ponovni pokušaj ili spavanje // u sekundama

//wifiManager.setTimeout(120);

// pokreće pristupnu točku s navedenim imenom

// ovdje "AutoConnectAP" // i ulazi u blokirajuću petlju koja čeka konfiguraciju

// BEZ OVOA AP NE ČINI SE DA RADI PRAVILNO SA SDK -om 1.5, ažurirajte na najmanje 1.5.1 //WiFi.mode (WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("povezivanje nije uspjelo i vremensko ograničenje je hit"); kašnjenje (3000); // resetirati i pokušati ponovo, ili možda staviti u duboki san ESP.reset (); kašnjenje (5000); }}

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

}

Drugi će biti naš glavni program za dobivanje HTTP odgovora od određenog poslužitelja i prikaz ulazne količine na zaslonu.

Za ovo prvo moramo dobiti detalje o liniji i pomaku iz Flash pohrane ESP-a (adresa 0-> linija, 50-> pomak)

EEPROM.početi (100); // eeprom storageEEPROM.get (0, redak); // dobivamo vrijednost s adrese 0

EEPROM.get (50, smjena); // Dobivanje vrijednosti s adrese 50

onda moramo proslijediti ovu liniju i pomaknuti detalje na naš http poslužitelj metodom get kako bismo dobili vrijednost ulaza i izlaza.

String Base_url = "uklonjeno"; // moj osnovni urlHTTPClient http; // Objekt klase

URL niza = Base_url+"?"+"Linija ="+redak+"& shift ="+shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // ovo će ispisati sve nizove http odgovora;

ako želite kako sav tekst tada je vaš posao dovršen, možete ga izravno prikazati na zaslonu tm1637.

display.print (http.getString ());

Ali ne želim prikazati sav tekst jer sadrži ulaz, izlaz u json obliku i neki drugi opći tekst o svojoj bazi podataka itd.

pa sam prvo uklonio taj opći tekst iz niza odgovora pomoću funkcije Substring ().

izbrojao sam duljinu općeg teksta i obrezao ga.

if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument korijen (bufferSize);

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

Niz json_string = http.getString (). Podniz (121); /* ovo je moj pomak općeg teksta ako vaš odgovor nema ništa slično, možete ukloniti ovaj kôd; */

//Serial.println(json_string);

DeserializationError error = deserializeJson (root, json_string);

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

ako (greška)

{Serial.print (F ("deserializeJson () nije uspio:"));

Serial.println (pogreška.c_str ());

povratak;

}

drugo{

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

const char* izlaz = korijen ["izlaz"];

Serial.print ("Ulaz:");

Serial.println (ulaz);

Serial.print ("Izlaz:");

Serial.println (izlaz);

display.print (".. u..");

display.clear (); // brisanje prikaza

display.print (input); // ispis BROJANJE NEKIH CIJENA

}

to je naš glavni program završen.

Korak 5: Stvaranje web poslužitelja

Izrada web poslužitelja
Izrada web poslužitelja
Izrada web poslužitelja
Izrada web poslužitelja

i m Korištenje xampp -a kao web poslužitelja i PHP koda za dobivanje podataka iz moje SQL baze podataka za dobivanje točne količine.

Ali ne mogu podijeliti sve njegove izvorne kodove. jer je njegova povjerljivost moje tvrtke. ali pokazat ću kako stvoriti jedan web poslužitelj, pokazati lažne statičke ulazne i izlazne količine.

Za to bi vam trebao bilo koji web host, ovdje koristim xampp kao svog domaćina.

xampp možete preuzeti ovdje.

instalirajte xampp … ako vam trebaju jasne upute, možete koristiti ovu vezu.

Nakon instalacije xampp morate otići u svoj root direktorij.

C: / xampp / htdocs

svi vaši php programi trebaju biti unutar ovog korijena.

stvorio sam svoju stranicu pod imenom esp_api.php

ovo je moj php kod. ovdje samo prikazujem statičke vrijednosti ulaza i izlaza;

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

echo ("myString"); // opći tekst

if ($ line == 'a0401' i $ shift = 'dd') {$ rezultat ['ulaz'] = 100; $ rezultat ['izlaz'] = 99; }

else {$ result ['input'] = 200; $ rezultat ['izlaz'] = 199; }

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

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

$ myJSON = json_encode ($ myObj);

echo $ myJSON;

Naš API za HTTP odgovor je dovršen.

Naš http bazni url bit će poput

you_ip_address/esp_api.php

svoj tekst odgovora API -ja možete provjeriti do

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

ovdje sam spomenuo liniju kao a0401 i pomak kao dd.

Korak 6: Završni korak !

Završni korak !!!
Završni korak !!!
Završni korak !!!
Završni korak !!!
Završni korak !!!
Završni korak !!!

Unesite IP adresu računala u osnovni URL

String Base_url = "uklonjeno"; // vaš osnovni url

i prenesite na svoj ESP nodemcu. Kada završite, samo uključite svoj WiFi s mobitela ili prijenosnog računala, dobit ćete mrežu koja se zove AutoConnectAP. povežite se s njim i unesite svoje vjerodajnice i linijske konfiguracije.

Zatim resetirajte uređaj i provjerite je li vaša mreža spojena kada se poveže, onda je sve učinjeno.

Možete vidjeti da je unos prikazan na zaslonu.

ako želite promijeniti bilo koju liniju ili wifi vjerodajnicu, možete pritisnuti prekidač na nekoliko sekundi, na zaslonu se prikazuje potvrda.

ušli ste u način rada demandAP. možete promijeniti i resetirati uređaj.

Glavni moto njegovih instrukcija da vam pokaže kako možemo koristiti naše hobi i zabavne projekte u stvarnom proizvodnom i proizvodnom području i pokazati

Preporučeni: