Sisukord:

WIFI -ekraan tootmise haldamiseks: 6 sammu
WIFI -ekraan tootmise haldamiseks: 6 sammu

Video: WIFI -ekraan tootmise haldamiseks: 6 sammu

Video: WIFI -ekraan tootmise haldamiseks: 6 sammu
Video: 🧨Все неприятности и "сюрпризы" Volkswagen Passat B6. У какой версии меньше проблем? 🤔 2024, November
Anonim
WIFI -ekraan tootmise haldamiseks
WIFI -ekraan tootmise haldamiseks

Olen natuke seeria IOT -i ja ühe pardaarvutite kohta.

Soovin seda alati kasutada ka väljaspool hobi- ja lõbuprojekte (tegelik tootmine ja tootmine).

See juhendab umbes 4-kohalise 7-segmendilise WIFI-ekraani loomist ESP-nodemcu abil, et kuvada iga-aastane tootmissisend. Töötan elektroonikatööstuses, kus kasutame tootmispõranda süsteemi (MES), et jälgida ja juhtida tootmispõranda sisendit, väljundit ja protsessi. Selles projektis loon väikese kuvaüksuse, mis näitab tootmise sisendkogust rea, vahetuse ja tunni kohta.

Tehniliselt sarnaneb see projekt Youtube'i abonentide arvu kuvaga, kus kasutame võrgus API/HTTP vastust. Kuid siin loome oma API, et suhelda kohaliku MES -süsteemiga, et saada sisendkogus.

Samm: kasutatud osad ja tööriistad:

Kasutatud osad ja tööriistad
Kasutatud osad ja tööriistad

Kasutatud riistvaraosad:

  1. ESP nodemcu
  2. TM1637 4 -kohaline kellaekraan
  3. Vajutage lülitit
  4. 10k takisti
  5. mõned hüppajajuhtmed

Kasutatud tarkvara tööriistad:

  1. Arduino IDE
  2. Xampp PHP/Apache veebiserverile

Arduino raamatukogu kasutatakse:

1. Wifi haldur tzapu & i poolt kohandatud minu kohandatud failide jaoks (wifimanager)

2. ESP_EEPROM minu kohandatud väärtuste salvestamiseks välkmällu

3. SevenSegmentTM1637 ekraanile

2. toiming: Wifi halduri kohandamine

Wifi halduri kohandamine
Wifi halduri kohandamine

Esmalt installisin esmalt wifihalduri ja seejärel kopeerisin Wifi halduri kausta ning andsin uuesti Arduino raamatukogu kausta Same, seejärel nimetasin selle ümber nimeks WiFiManager_custom.

Kaust Juurkataloog Enamasti meeldib

C: / Kasutajad / teie arvuti nimi / Dokumendid / Arduino / teegid

Seejärel avasin kausta wifimanager_custom ja nimetasin päise.cpp -faili ümber samaks kui wifimanager_custom, lisasin sama ka päisesse ja.cpp -faili.

Ja lisasin päisesse oma kohandatud vormi ja nupu.

HTTP_PORTAL_OPTIONS PROGMEM lisasin menüü jaoks oma nupuvormi.

ja lisas uue vormi rea ja vahetuse sisestamiseks. lõin selle vormi lihtsa tekstivormina.

Pärast seda loome selle vormi jaoks.cpp -failis toimimisfunktsioonid, selleks peame päisefailis funktsiooni deklareerima.

/ * minu kohandatud funktsioonid */

tühi käepideCustomForm (); tühi käepideCustomSave ();

deklareerisin oma kohandatud funktsioonid päisefailis. et see, meie töö päises on lõppenud, peame oma funktsiooni ja toimingute loomiseks kasutama.cpp -faili.

3. toiming: vormitoimingu kohandatud funktsioonid

Vormitoimingu kohandatud funktsioonid
Vormitoimingu kohandatud funktsioonid
Vormitoimingu kohandatud funktsioonid
Vormitoimingu kohandatud funktsioonid
Vormitoimingu kohandatud funktsioonid
Vormitoimingu kohandatud funktsioonid

Nüüd avame oma faili wifimanager_custom.cpp.

ja peame lisama oma http vastuste käitleja, et helistada oma funktsioonidele, kui meie vorm on postitatud.

server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, see)); // MINU kohandatud käepide

server-> sisse (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, see)); // MINU kohandatud käepide

need kutsuvad vormi postitamisel meie kohandatud funktsioone.

1.handleCustomForm ()-> loob lehe, millel on meie kohandatud vorm rea ja nihke sisestamiseks ja salvestamiseks.

2.handleCustomSave ()-> see funktsioon saab vormi väärtused ja salvestab välkmälu asukohtadesse 0 (rida) ja 50 (vahetus).

Samm: ühendused ja põhiprogramm

Ühendused ja põhiprogramm
Ühendused ja põhiprogramm

Ühendused on väga lihtsad..

Ühendused ja juhtmestik:

nodemcu TM1637 Ekraan

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- vajutage lülitit

- nupp D8 külge kinnitatud nupp +5V - 10K takisti külge, mis on kinnitatud tihvti D8 külge maapinnast

lõpetasime oma abikaasahalduri kohandamise. nüüd peame looma oma põhiprogrammi.

1. meie wifihaldur loob ühenduse viimati kasutatud volikirjaga wifi -võrguga, kui see ebaõnnestub, avab see AutoConnectAP wifi -serveri. Saame selle wifi -serveriga ühendades konfigureerida uued wifi -kriminaalid, liinid ja vahetused.

2. siis siseneb see põhiahelasse.

Meie peamine silmus koosneb kahest osast. üks on confi alamprogramm, kui peame seadistamiseks muutma rida, nihutama või lisama mis tahes WiFi -mandaadi nõudlusrežiimi AP kutsumiseks. see helistatakse, kui vajutatakse D8 tihvtiga ühendatud nupule.

void loop () {

config_loop ();

}

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

Serial.println ("Ootab konfiguratsiooninupu olekut …");

//display.print("Oota ");

if (digitalRead (TRIGGER_PIN) == HIGH)

{

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

// Kohalik intialiseerimine. Kui tema äri on tehtud, pole vaja seda WiFiManager wifiManager ümber hoida;

// seadete lähtestamine - testimiseks

//wifiManager.resetSettings ();

// määrab ajalõpu kuni konfiguratsiooniportaali väljalülitamiseni // kasulik, et seda kõike uuesti proovida või magama minna // sekunditega

//wifiManager.setTimeout(120);

// see alustab määratud nimega pöörduspunkti

// siin "AutoConnectAP" // ja läheb blokeerimisahelasse, mis ootab seadistamist

// ilma selleta ei tundu, et rakendus SDK 1.5 -ga korralikult töötaks, värskendage vähemalt versioonile 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("ebaõnnestus ühendus ja tabas ajalõpp"); viivitus (3000); // lähtesta ja proovi uuesti või pane see võib -olla sügavasse unne ESP.reset (); viivitus (5000); }}

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

}

Teine on meie peamine programm HTTP -vastuse saamiseks konkreetselt serverilt ja sisendkoguse kuvamine ekraanil.

Selleks peame esmalt saama oma rea ja nihke üksikasjad ESP välkmälust (aadress 0-> rida, 50-> vahetus)

EEPROM.bin (100); // eeprom storageEEPROM.get (0, rida); // hankige väärtus aadressilt 0

EEPROM.get (50, vahetus); // Hankige väärtus aadressilt 50

siis peame edastama selle rea ja nihutama üksikasjad oma http -serverile, kasutades meetodit sisendi ja väljundi väärtuse saamiseks.

String Base_url = "eemaldatud"; // minu baasi urlHTTPClient http; // Klassi HTTPClient objekt

Stringi URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // see prindib kogu http vastuse stringi;

kui soovite, kuidas kogu tekst on teie töö siin lõpetatud, saame selle ise kuvada tm1637 ekraanil.

display.print (http.getString ());

Kuid ma ei taha kogu teksti näidata, sest see sisaldab sisendit, väljundit json -vormingus ja mõnda muud üldist teksti oma andmebaasi ja muude kohta.

nii et kõigepealt eemaldasin selle üldteksti vastuste stringist funktsiooni Substring () abil.

lugesin üldteksti pikkust ja kärpisin seda.

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

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

String json_string = http.getString (). Alamstring (121); /* see on minu üldteksti nihe, kui teie vastusel pole midagi sellist, mille saate selle koodi eemaldada; */

//Serial.println(json_string);

DeserializationError error = deserializeJson (juur, json_string);

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

kui (viga)

{Serial.print (F ("deserializeJson () ebaõnnestus:"));

Serial.println (error.c_str ());

tagasipöördumine;

}

muu {

const char* sisend = juur ["sisend"];

const char* väljund = juur ["väljund"];

Serial.print ("Sisend:");

Serial.println (sisend);

Serial.print ("Väljund:");

Serial.println (väljund);

display.print (".. sisse..");

display.clear (); // ekraani tühjendamine

display.print (sisend); // print MÕNE DIGITI LOENDAMINE

}

see on meie põhiprogramm.

Samm: veebiserveri loomine

Veebiserveri loomine
Veebiserveri loomine
Veebiserveri loomine
Veebiserveri loomine

i m Kasutan oma veebiteenindajana xamppi ja PHP -koodi, et saada andmeid oma SQL -andmebaasist täpse koguse saamiseks.

Kuid ma ei saa jagada kõiki selle algseid koode. sest see on minu ettevõtte konfidentsiaalsus. aga ma näitan, kuidas luua üks veebiserver, näidata näiv staatilist sisend- ja väljundkogust.

Selleks vajate mis tahes veebi, ma kasutan siin hostina xampp.

xamppi saate alla laadida siit.

installige xampp… kui vajate selgeid juhiseid, saate seda linki kasutada.

Pärast xamppi installimist peate minema oma juurkataloogi.

C: / xampp / htdocs

kõik teie php -programmid peaksid olema selles juuris.

lõin oma lehe nimega esp_api.php

see on minu php -kood. siin kuvan lihtsalt sisendi & väljundi staatilisi väärtusi;

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

echo ("myString"); // üldine tekst

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

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

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

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

$ myJSON = json_encode ($ myObj);

kaja $ myJSON;

Nüüd on meie HTTP vastuse API valmis.

Meie http baasi URL on sarnane

sa_ip_aadress/esp_api.php

saate oma API vastusteksti kontrollida

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

siin mainisin rida kui a0401 ja nihet kui dd.

6. samm: viimane samm !

Viimane samm !!!
Viimane samm !!!
Viimane samm !!!
Viimane samm !!!
Viimane samm !!!
Viimane samm !!!

Sisestage baasi URL -i oma arvuti IP -aadress

String Base_url = "eemaldatud"; // teie baasi URL

ja laadige üles oma ESP nodemcu. Kui olete oma mobiiltelefonist või sülearvutist lihtsalt WiFi sisse lülitanud, saate võrgu nimega AutoConnectAP. looge sellega ühendus ja sisestage oma mandaat ja rea konfiguratsioonid.

Seejärel lähtestage oma seade ja kontrollige, kas teie võrk on ühendatud, kui see on ühendatud, siis on kõik tehtud.

Näete, et sisend kuvatakse ekraanil.

kui soovite muuta mis tahes rida või wifi mandaati, võite vajutada mõne sekundi jooksul lülitit, ekraanil kuvatakse confi.

sisenesite nõudluse režiimi. saate seadet muuta ja lähtestada.

Tema juhendatav peamine moto näitab teile, kuidas saame oma hobi- ja lõbuprojekte reaalses tootmis- ja tootmispiirkonnas kasutada ning näidata

Soovitan: