Sadržaj:

WIFI ekran za upravljanje proizvodnjom: 6 koraka
WIFI ekran za upravljanje proizvodnjom: 6 koraka

Video: WIFI ekran za upravljanje proizvodnjom: 6 koraka

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

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

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

Ovaj Instructable će stvoriti 4-cifreni 7-segmentni WIFI ekran sa ESP nodemcu-om za prikaz unosa proizvodnje po satu. Radim u proizvodnoj industriji elektronike, gdje koristimo Manufacturing Execution System (MES) za nadgledanje i kontrolu ulaznih, izlaznih i proizvodnih podova. U ovom projektu kreiram malu jedinicu za prikaz koja će prikazati količinu ulazne proizvodnje po liniji, smjeni i satu.

Tehnički je ovaj projekt sličan prikazu broja pretplatnika na YouTubeu, gdje koristimo API/HTTP odgovor s interneta. Ali ovdje ćemo stvoriti vlastiti api za interakciju s našim lokalnim MES sistemom 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 -cifreni sat Ekran
  3. Pritisnite prekidač
  4. 10k otpornik
  5. nekoliko kratkospojnih žica

Korišteni softverski alati:

  1. Arduino IDE
  2. Xampp za PHP/Apache web server

Arduino biblioteka se koristi:

1. Wifi manager od 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 fascikli Arduino biblioteke, zatim preimenovan u WiFiManager_custom.

Mapa Root direktorij Uglavnom sviđa

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

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

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

u HTTP_PORTAL_OPTIONS PROGMEM dodao sam obrazac dugmeta za Meni.

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

Nakon toga ćemo stvoriti akcijske funkcije za ove oblike 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 za kreiranje naše funkcije i radnji.

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

one će pozvati naše prilagođene funkcije kada se obrazac objavi.

1.handleCustomForm ()-> će stvoriti stranicu s našim prilagođenim obrascem za linijski i pomak unosa i tipku za spremanje.

2.handleCustomSave ()-> ova funkcija će dobiti vrijednosti oblika i pohraniti ih na Flash memorijske lokacije 0 (linija) & 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.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

čvorni prekidač

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

završili smo s prilagođavanjem našeg wifimanagera. sada moramo kreirati 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 AutoConnectAP wifi server. Možemo konfigurirati nove WiFi identifikacijske podatke, liniju i pomak povezivanjem na ovaj WiFi server.

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

Naša glavna petlja sadržavat će dva dijela. jedna je confi potprogram kada moramo promijeniti liniju, pomaknuti ili dodati bilo koju vjerodajnicu za WiFi da pozove AP način rada za konfiguraciju. ovo će se pozvati kada se pritisne dugme pritisnuto na pin D8.

void loop () {{100} {101}

config_loop ();

}

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

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

//display.print("Wait ");

if (digitalRead (TRIGGER_PIN) == HIGH)

{

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

// Lokalna inicijalizacija. 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 pokušaj ponovnog pokušaja ili spavanje // u sekundama

//wifiManager.setTimeout(120);

// pokreće pristupnu tačku sa navedenim imenom

// ovdje "AutoConnectAP" // i ide 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); // resetirajte i pokušajte ponovo, ili možda prebacite 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 servera i prikaz ulazne količine na ekranu.

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

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

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

onda moramo proslijediti ovu liniju i prebaciti detalje na naš http poslužitelj metodom get da dobijemo vrijednost ulaza i izlaza.

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

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

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // ovo će ispisati sav niz odgovora

ako želite kako sav tekst tada je vaš posao dovršen, sami ga možemo prikazati na ekranu 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 dužinu općeg teksta i obrezao ga.

if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument root (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 (error.c_str ());

return;

}

else {

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

const char* izlaz = koren ["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 je završen.

Korak 5: Kreiranje web servera

Kreiranje web servera
Kreiranje web servera
Kreiranje web servera
Kreiranje web servera

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

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

Za ovo vam treba bilo koji web host, ovdje koristim xampp kao svoj host.

xampp možete preuzeti ovdje.

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

Nakon instaliranja xampp -a morate otići u svoj root direktorij.

C: / xampp / htdocs

svi vaši php programi bi trebali 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') {$ result ['input'] = 100; $ result ['output'] = 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 će biti poput

you_ip_address/esp_api.php

svoj tekst odgovora API -ja možete provjeriti pomoću

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

ovdje sam spomenuo liniju kao a0401 i pomak kao dd.

Korak 6: Završni korak !

Final Step !!!
Final Step !!!
Final Step !!!
Final Step !!!
Final Step !!!
Final Step !!!

Unesite IP adresu računara u bazni URL

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

i otpremite na svoj ESP nodemcu. Kada završite, samo uključite svoj WiFi s mobilnog ili prijenosnog računara, dobit ćete mrežu koja se zove AutoConnectAP. povežite se s njim i unesite akreditive 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 se unos prikazuje na ekranu.

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

ušli ste u način radaAPAP. 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čuje se: