Përmbajtje:

Ekrani WIFI për Menaxhimin e Prodhimit: 6 Hapa
Ekrani WIFI për Menaxhimin e Prodhimit: 6 Hapa

Video: Ekrani WIFI për Menaxhimin e Prodhimit: 6 Hapa

Video: Ekrani WIFI për Menaxhimin e Prodhimit: 6 Hapa
Video: 5 УДИВИТЕЛЬНЫХ ЖИЗНЕННЫХ ХАКОВ # 2 2024, Nëntor
Anonim
Ekrani WIFI për Menaxhimin e Prodhimit
Ekrani WIFI për Menaxhimin e Prodhimit

Unë jam pak Seri për kompjuterët IOT dhe Single Board.

Unë gjithmonë dëshiroj ta përdor atë përtej Hobby & Fun Projects (Prodhim dhe Prodhim i vërtetë).

Ky Instructable është gati për Krijimin e ekranit 4-shifror 7-segmentësh WIFI me ESP nodemcu për të shfaqur hyrjen në orë të prodhimit. Unë jam duke punuar në industrinë prodhuese të elektronikës, ku ne përdorim Sistemin e Ekzekutimit të Prodhimit (MES) për të monitoruar dhe kontrolluar hyrjen, daljen dhe procesin e dyshemesë së prodhimit. Në këtë projekt unë jam duke krijuar njësi të vogël të ekranit e cila do të tregojë sasinë e prodhimit të prodhimit sipas rreshtit, ndërrimit dhe orës.

Në aspektin teknik, ky projekt është i ngjashëm me një ekran të numërimit të pajtimtarëve në Youtube, ku ne përdorim përgjigjen API/HTTP nga interneti. Por këtu ne do të krijojmë api -në tonë për të bashkëvepruar me sistemin tonë lokal të MASH -it për të marrë sasinë e hyrjes.

Hapi 1: Pjesët dhe mjetet e përdorura:

Pjesët dhe mjetet e përdorura
Pjesët dhe mjetet e përdorura

Pjesët e harduerit të përdorura:

  1. ESP nodemcu
  2. TM1637 Orë me 4 shifra Ekran
  3. Çelës shtytës
  4. Rezistencë 10k
  5. pak tela kërcyes

Mjetet Softuerike të Përdorura:

  1. Arduino IDE
  2. Xampp për serverin e uebit PHP/Apache

Biblioteka Arduino përdoret:

1. Menaxher Wifi nga tzapu & i Përshtatur për dosjet e mia me porosi (wifimanager)

2. ESP_EEPROM për ruajtjen e vlerave të mia të personalizuara në Flash memorie

3. SevenSegmentTM1637 Për ekran

Hapi 2: Personalizimi i Menaxherit Wifi

Personalizimi i Menaxherit Wifi
Personalizimi i Menaxherit Wifi

Në këtë Së pari unë instalova menaxherin wifi së pari dhe pastaj kopjova Dosjen e menaxherit Wifi dhe kalova përsëri në të njëjtën në dosjen e bibliotekës Arduino, pastaj u riemërova si WiFiManager_custom.

Drejtoria e dosjeve Root Kryesisht pëlqen

C: / Përdoruesit / emri i kompjuterit tuaj / Documents / Arduino / bibliotekat

Pastaj hapa dosjen wifimanager_custom dhe u riemërtova header.cpp file njësoj si wifimanager_custom, e shtuar njëjtë në skedarët e header &.cpp gjithashtu.

Dhe shtova Formularin dhe Butonin tim të personalizuar në kokë.

në HTTP_PORTAL_OPTIONS PROGMEM shtova formularin tim të butonit për Menunë.

dhe shtoi Formularin e ri për hyrjen në linjë dhe ndërrim. Unë e krijova këtë formë si formë teksti të thjeshtë.

Pas kësaj ne do të krijojmë funksione veprimi për këto forma në skedarin.cpp, për këtë ne duhet të bëjmë deklarimin e funksionit në skedarin e kokës.

/ * funksionet e mia me porosi */

void handleCustomForm (); void handleCustomSave ();

Unë deklarova funksionet e mia të personalizuara në skedarin e kokës. se ajo, puna jonë në kokë ka mbaruar duhet të shkojmë me skedarin.cpp për të krijuar funksionin dhe veprimet tona.

Hapi 3: Funksionet e personalizuara për veprimin e formularit

Funksionet e personalizuara për veprimin e formularit
Funksionet e personalizuara për veprimin e formularit
Funksionet e personalizuara për veprimin e formularit
Funksionet e personalizuara për veprimin e formularit
Funksionet e personalizuara për veprimin e formularit
Funksionet e personalizuara për veprimin e formularit

Tani ne hapim skedarin tonë wifimanager_custom.cpp.

dhe ne duhet të shtojmë mbajtësin tonë të përgjigjeve http për të thirrur funksionet tona kur formulari ynë është i postuar.

server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // Doreza ime me porosi

server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // Doreza ime me porosi

këto do të thërrasin funksionet tona të personalizuara kur formulari të postohet.

1.handleCustomForm ()-> do të krijojë një faqe me formularin tonë të personalizuar për butonin input & shift & save.

2.handleCustomSave ()-> ky funksion do të marrë vlerat e formës dhe do të ruhet në vendet e kujtesës Flash 0 (rresht) & 50 (zhvendosje).

Hapi 4: Lidhjet & Programi Kryesor

Lidhjet & Programi Kryesor
Lidhjet & Programi Kryesor

Lidhjet janë shumë të thjeshta..

Lidhjet dhe instalimet elektrike:

nodemcu TM1637 Ekran

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- kaloni push

- butoni i bashkangjitur në pin D8 nga +5V - rezistencë 10K e bashkangjitur në pin D8 nga toka

ne përfunduam personalizimin e wifimanager -it tonë. tani duhet të krijojmë programin tonë kryesor.

1. menaxheri ynë wifi do të lidhet me rrjetin wifi me kredencialet e përdorura për herë të fundit për t'u lidhur, nëse dështon hap një server wifi AutoConnectAP. Ne mund të konfigurojmë kritere të reja wifi, linjë dhe zhvendosje duke u lidhur me këtë server wifi.

2. atëherë do të hyjë në lakin kryesor.

Lakri ynë kryesor do të përmbajë dy pjesë. njëra është nën -rutina e konfigurimit kur duhet të ndryshojmë linjën, të ndryshojmë ose të shtojmë ndonjë kredenciale wifi për të thirrur modalitetin e kërkesës AP për të konfiguruar. kjo do të thirret kur Shtypet një buton shtypi i lidhur me pin D8.

lak void () {

config_loop ();

}

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

Serial.println ("Në pritje të statusit të butonit të konfigurimit …");

//display.print("Prit ");

nëse (digitalRead (TRIGGER_PIN) == LART)

{

display.print ("Conf"); // Menaxher WiFi

// Intializimi lokal. Pasi të jetë bërë biznesi i tij, nuk ka nevojë ta mbani atë rreth WiFiManager wifiManager;

// rivendosni cilësimet - për testim

//wifiManager.resetSettings ();

// cakton afatin kohor derisa portali i konfigurimit të fiket // i dobishëm për t'i bërë të gjitha të provoni përsëri ose të flini // në sekonda

//wifiManager.setTimeout(120);

// fillon një pikë aksesi me emrin e specifikuar

// këtu "AutoConnectAP" // dhe kalon në një lak bllokues në pritje të konfigurimit

// PA KETIS AP AP NUK DUKET T TO PUNOJ SIPAS ME SDK 1.5, përditësoni të paktën 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("dështoi të lidhet dhe goditi timeout"); vonesë (3000); // rivendosni dhe provoni përsëri, ose ndoshta vendoseni në gjumë të thellë ESP.reset (); vonesa (5000); }}

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

}

E dyta do të jetë programi ynë kryesor për të marrë përgjigje HTTP nga një server i veçantë dhe Shfaq sasinë e hyrjes në Ekran.

Për këtë Së pari ne duhet të marrim detajet e linjës dhe zhvendosjes nga ruajtja Flash e ESP (adresa 0-> rreshti, 50-> ndërrim)

EEPROM.filloj (100); // eeprom storageEEPROM.get (0, rresht); // merrni Vlerën nga adresa 0

EEPROM.get (50, ndërrim); // Merrni Vlerën Nga Adresa 50

atëherë ne duhet të kalojmë këtë linjë dhe të zhvendosim detajet në serverin tonë http me metodën e marrjes për të marrë vlerën e hyrjes dhe daljes.

String Base_url = "u hoq"; // urlHTTPClient im bazë http; // Objekti i klasës

URL -ja e vargut = Baza_url+"?"+"Line ="+linjë+"& shift ="+shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // kjo do të printojë të gjithë vargun e përgjigjes

nëse doni që të gjithë tekstin, atëherë puna juaj ka përfunduar këtu vetë, ne mund ta shfaqim drejtpërdrejt në ekranin tm1637.

display.print (http.getString ());

Por nuk dua të tregoj të gjithë tekstin, sepse ai përmban hyrje, dalje në formën json dhe ndonjë tekst tjetër të përgjithshëm në lidhje me bazën e të dhënave të tij etj.

kështu që së pari e hoqa atë tekst të përgjithshëm nga vargu i përgjigjes duke përdorur funksionin Substring ().

Unë numërova gjatësinë e tekstit të përgjithshëm dhe e shkurtova atë.

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

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

String json_string = http.getString (). Nën varg (121); /* ky është kompensimi im i tekstit të përgjithshëm nëse përgjigja juaj nuk ka ndonjë gjë të tillë, mund ta hiqni këtë kod; */

//Serial.println(json_string);

Gabim DeserializationError = deserializeJson (rrënjë, json_string);

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

nëse (gabim)

{Serial.print (F ("deserializeJson () dështoi:"));

Serial.println (error.c_str ());

kthim;

}

tjeter {

const char* input = rrënja ["input"];

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

Serial.print ("Hyrja:");

Serial.println (input);

Serial.print ("Output:");

Serial.println (dalje);

shfaqje.print (".. në..");

shfaqje.qartë (); // pastroni ekranin

ekran.print (input); // print COUNTING DISA DIGITES

}

kjo është se programi ynë kryesor ka përfunduar.

Hapi 5: Krijimi i Web Serverit

Krijimi i Web Serverit
Krijimi i Web Serverit
Krijimi i Web Serverit
Krijimi i Web Serverit

Unë jam duke përdorur xampp si shërbimin tim në internet dhe kodin PHP për të marrë të dhëna nga baza ime e të dhënave SQL për të marrë sasinë e saktë.

Por nuk mund t'i ndaj të gjitha kodet origjinale të tij. sepse konfidencialiteti i kompanisë sime. por unë do të tregoj mënyrën e krijimit të një serveri në internet, shfaqjen e madhësisë dhe hyrjes statike statike.

Për këtë ju duhet të keni ndonjë host në internet, unë jam duke përdorur këtu xampp si hostin tim.

ju mund të shkarkoni xampp këtu.

instaloni xampp … nëse keni nevojë për udhëzime të qarta, mund të përdorni këtë lidhje.

Pas instalimit të xampp ju duhet të shkoni në drejtorinë tuaj rrënjësore.

C: / xampp / htdocs

të gjitha programet tuaja php duhet të jenë brenda kësaj rrënje.

Unë krijova faqen time në emrin e quajtur esp_api.php

ky është kodi im php. këtu po shfaq vetëm vlerat statike të hyrjes dhe daljes;

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

jehonë ("myString"); // Tekst i përgjithshëm

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

tjetër {$ result ['input'] = 200; $ result ['output'] = 199; }

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

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

$ myJSON = json_encode ($ myObj);

jehonë $ myJSON;

Tani API -ja jonë e përgjigjes HTTP ka përfunduar.

Url -ja jonë http bazë do të jetë e ngjashme

you_ip_adresa/esp_api.php

mund të kontrolloni tekstin tuaj të përgjigjes API nga

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

këtu përmenda vijën si a0401 dhe zhvendosjen si dd.

Hapi 6: Hapi i fundit !!

Hapi i fundit !!!
Hapi i fundit !!!
Hapi i fundit !!!
Hapi i fundit !!!
Hapi i fundit !!!
Hapi i fundit !!!

Vendosni adresën IP të kompjuterit tuaj në URL -në bazë

String Base_url = "u hoq"; // url -ja juaj bazë

dhe Ngarko në ESP nodemcu tuaj. Pasi të keni mbaruar, thjesht ndizni wifin tuaj nga celulari ose laptopi juaj, do të merrni një rrjet të quajtur AutoConnectAP. lidheni me të dhe futni konfigurimet tuaja të kredencialeve dhe linjës.

Pastaj rivendosni pajisjen tuaj dhe kontrolloni që rrjeti juaj të jetë lidhur pasi të jetë lidhur, atëherë çdo gjë është bërë.

Mund të shihni që hyrja shfaqet në ekran.

nëse doni të ndryshoni ndonjë linjë ose kredenciale wifi ju mund të shtypni push switch për disa sekonda, ekrani tregon confi.

keni hyrë në modalitetin e kërkesësAP. mund të ndryshoni dhe rivendosni pajisjen.

Motoja kryesore e tij udhëzuese për t'ju treguar se si mund t'i përdorim projektet tona të hobit dhe argëtimit në zonën dhe shfaqjen reale të prodhimit dhe prodhimit

Recommended: