Satura rādītājs:

WIFI displejs ražošanas vadībai: 6 soļi
WIFI displejs ražošanas vadībai: 6 soļi

Video: WIFI displejs ražošanas vadībai: 6 soļi

Video: WIFI displejs ražošanas vadībai: 6 soļi
Video: Здесь всё, что нужно знать о 7G Tronic! Детальный обзор АКПП Mercedes 722.9. 2024, Novembris
Anonim
WIFI displejs ražošanas vadībai
WIFI displejs ražošanas vadībai

Es esmu mazliet sērija par IOT un vienas plates datoriem.

Es vienmēr vēlos to izmantot ārpus hobiju un izklaides projektiem (reāla ražošana un ražošana).

Šī pamācība gatavojas izveidot četrciparu 7 segmentu WIFI displeju ar ESP nodemcu, lai parādītu stundas ražošanas ieeju. Es strādāju elektronikas ražošanas nozarē, kur mēs izmantojam ražošanas izpildes sistēmu (MES), lai uzraudzītu un kontrolētu ražošanas grīdas ievadi, izvadi un procesu. Šajā projektā es izveidoju nelielu displeju, kas parādīs ražošanas ievades daudzumu rindā, maiņā un stundā.

Tehniski šis projekts ir līdzīgs Youtube abonentu skaita displejam, kurā mēs izmantojam API/HTTP atbildi tiešsaistē. Bet šeit mēs izveidosim savu API, lai mijiedarbotos ar mūsu vietējo MES sistēmu, lai iegūtu ievades daudzumu.

1. darbība. Izmantotās detaļas un rīki:

Izmantotās detaļas un rīki
Izmantotās detaļas un rīki

Izmantotās aparatūras daļas:

  1. ESP nodemcu
  2. TM1637 4 ciparu pulksteņa displejs
  3. Spiediet slēdzi
  4. 10k rezistors
  5. daži džemperu vadi

Izmantotie programmatūras rīki:

  1. Arduino IDE
  2. Xampp PHP/Apache tīmekļa serverim

Arduino bibliotēka tiek izmantota:

1. Tzapu & i Wifi pārvaldnieks Pielāgots maniem pielāgotajiem failiem (wifimanager)

2. ESP_EEPROM manu pielāgoto vērtību saglabāšanai zibatmiņā

3. SevenSegmentTM1637 displejam

2. darbība. Wifi pārvaldnieka pielāgošana

Wifi pārvaldnieka pielāgošana
Wifi pārvaldnieka pielāgošana

Šajā vispirms es vispirms instalēju wifi pārvaldnieku, un pēc tam es nokopēju Wifi pārvaldnieka mapi un atkal nokārtoju tajā pašā mapē Arduino bibliotēka, pēc tam pārdēvēju par WiFiManager_custom.

Mapes saknes direktorijs Galvenokārt patīk

C: / Lietotāji / jūsu datora nosaukums / Dokumenti / Arduino / bibliotēkas

Tad es atvēru mapi wifimanager_custom un pārdēvēju galvenes.cpp failu tāpat kā wifimanager_custom, pievienoju to pašu arī galvenē un.cpp failos.

Un galvenē pievienoju savu pielāgoto veidlapu un pogu.

HTTP_PORTAL_OPTIONS PROGMEM Es izvēlnei pievienoju savas pogas veidlapu.

un pievienoja jaunu veidlapu rindas un maiņas ievadīšanai. Es izveidoju šo veidlapu kā vienkāršu teksta formu.

Pēc tam mēs veidlapām izveidosim darbības funkcijas.cpp failā, lai to paveiktu, mums ir jādeklarē galvenes fails.

/ * manas pielāgotās funkcijas */

tukšs rokturisCustomForm (); tukšs rokturisCustomSave ();

es deklarēju savas pielāgotās funkcijas galvenes failā. ka tas, mūsu darbs galvenē ir pabeigts, mums ir jāizmanto.cpp fails, lai izveidotu savu funkciju un darbības.

3. darbība. Veidlapas darbības pielāgotās funkcijas

Veidlapas darbības pielāgotas funkcijas
Veidlapas darbības pielāgotas funkcijas
Veidlapas darbības pielāgotas funkcijas
Veidlapas darbības pielāgotas funkcijas
Veidlapas darbības pielāgotas funkcijas
Veidlapas darbības pielāgotas funkcijas

Tagad mēs atveram failu wifimanager_custom.cpp.

un mums ir jāpievieno mūsu http atbildes apstrādātājs, lai izsauktu mūsu funkcijas, kad mūsu veidlapa ir publicēta.

serveris-> ieslēgts (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // MANS pielāgotais rokturis

serveris-> ieslēgts (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // MANS pielāgotais rokturis

veidlapas ievietošanas laikā tās izsauks mūsu pielāgotās funkcijas.

1.handleCustomForm ()-> izveidos lapu ar mūsu pielāgoto veidlapu rindu un maiņu ievadīšanai un saglabāšanai.

2.handleCustomSave ()-> šī funkcija iegūs formas vērtības un saglabās Flash atmiņas vietās 0 (rinda) un 50 (maiņa).

4. solis: Savienojumi un galvenā programma

Savienojumi un galvenā programma
Savienojumi un galvenā programma

Savienojumi ir ļoti vienkārši..

Savienojumi un vadi:

nodemcu TM1637 Displejs

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- spiediena slēdzis

- spiedpoga, kas piestiprināta pie tapas D8 no +5V - 10K rezistors, kas piestiprināts pie tapas D8 no zemes

mēs pabeidzām pielāgot savu sievu pārvaldnieku. tagad mums ir jāizveido mūsu galvenā programma.

1. mūsu wifi pārvaldnieks izveidos savienojumu ar wifi tīklu ar pēdējiem izmantotajiem akreditācijas datiem, lai izveidotu savienojumu, ja tas neizdodas, tas atver AutoConnectAP wifi serveri. Mēs varam konfigurēt jaunus wifi noziedzniekus, līniju un maiņu, izveidojot savienojumu ar šo wifi serveri.

2. tad tas nonāks galvenajā cilpā.

Mūsu galvenajā cilpā būs divas daļas. viens ir confi apakšprogramma, kad mums ir jāmaina līnija, jāpārvieto vai jāpievieno jebkādi wifi akreditācijas dati, lai konfigurētu pieprasījuma režīma AP. tas tiks izsaukts, kad tiks nospiesta spiedpoga, kas savienota ar D8 tapu.

void loop () {

config_loop ();

}

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

Serial.println ("Gaida konfigurācijas pogas statusu …");

//display.print(" Gaidi ");

ja (digitalRead (TRIGGER_PIN) == HIGH)

{

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

// Vietējā inicializācija. Kad bizness ir pabeigts, nav nepieciešams to turēt ap WiFiManager wifiManager;

// atiestatīt iestatījumus - pārbaudei

//wifiManager.resetSettings ();

// iestata taimautu, līdz konfigurācijas portāls tiek izslēgts // noderīgs, lai visu mēģinātu vēlreiz vai pārietu gulēt // sekundēs

//wifiManager.setTimeout(120);

// tas sāk piekļuves punktu ar norādīto nosaukumu

// šeit "AutoConnectAP" // un nonāk bloķēšanas ciklā, kas gaida konfigurāciju

// BEZ ŠĪS APLIETOJUMS NEDRĪKST PAREIZI STRĀDĀT AR SDK 1.5, atjauniniet uz vismaz 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("neizdevās izveidot savienojumu un nokļūt taimautā"); kavēšanās (3000); // atiestatīt un mēģināt vēlreiz, vai varbūt likt to dziļā miegā ESP.reset (); kavēšanās (5000); }}

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

}

Otrā būs mūsu galvenā programma HTTP atbildes saņemšanai no konkrēta servera un displejā parādīt ievades daudzumu.

Šim nolūkam vispirms ir jāiegūst informācija par līniju un maiņu no ESP zibatmiņas (adrese 0-> līnija, 50-> maiņa)

EEPROM.sākas (100); // eeprom storageEEPROM.get (0, rinda); // iegūt vērtību no adreses 0

EEPROM.get (50, maiņa); // Iegūstiet vērtību no adreses 50

tad mums ir jānodod šī līnija un jāpārvieto informācija uz mūsu http serveri, izmantojot metodi, lai iegūtu ievades un izvades vērtību.

String Base_url = "noņemts"; // mans bāzes urlHTTPClient http; // HTTPClient klases objekts

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

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // tas izdrukās visu http atbildes virkni;

ja vēlaties, lai viss teksts būtu pabeigts, mēs varam to tieši parādīt tm1637 displejā.

display.print (http.getString ());

Bet es nevēlos parādīt visu tekstu, jo tas satur ievadi, izvadi json formā un kādu citu vispārīgu tekstu par datubāzi un utt.

tāpēc vispirms es noņemu šo vispārīgo tekstu no atbildes virknes, izmantojot funkciju Substring ().

es saskaitīju vispārējā teksta garumu un to sagriezu.

ja (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument sakne (bufferSize);

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

String json_string = http.getString (). Apakšvirkne (121); /* tas ir mans vispārējā teksta nobīde, ja jūsu atbildē nav tādas lietas kā jūs varat noņemt šo kodu; */

//Serial.println(json_string);

Deserializācijas kļūdas kļūda = deserializeJson (sakne, json_string);

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

ja (kļūda)

{Serial.print (F ("deserializeJson () neizdevās:"));

Serial.println (error.c_str ());

atgriešanās;

}

cits {

const char* ievade = sakne ["ievade"];

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

Serial.print ("Ievade:");

Serial.println (ievade);

Serial.print ("Izeja:");

Serial.println (izvade);

display.print (".. in..");

display.clear (); // notīrīt displeju

display.print (ievade); // izdrukāt DAŽU CIPRU Skaitīšanu

}

tā mūsu galvenā programma ir pabeigta.

5. darbība: tīmekļa servera izveide

Tīmekļa servera izveide
Tīmekļa servera izveide
Tīmekļa servera izveide
Tīmekļa servera izveide

Es izmantoju xampp kā savu tīmekļa pakalpojumu un PHP kodu, lai iegūtu datus no savas SQL datu bāzes, lai iegūtu precīzu daudzumu.

Bet es nevaru dalīties ar visiem tā oriģinālajiem kodiem. jo tā ir mana uzņēmuma konfidencialitāte. bet es parādīšu, kā izveidot vienu tīmekļa serveri, parādīt fiktīvu statisko ievades un izvades daudzumu.

Šim nolūkam jums ir nepieciešams jebkurš tīmekļa mitinātājs, es šeit izmantoju xampp kā savu saimniekdatoru.

xampp varat lejupielādēt šeit.

instalējiet xampp … ja jums nepieciešama skaidra instrukcija, varat izmantot šo saiti.

Pēc xampp instalēšanas jums jādodas uz saknes direktoriju.

C: / xampp / htdocs

visām jūsu php programmām jābūt šīs saknes iekšpusē.

es izveidoju savu lapu ar nosaukumu ar nosaukumu esp_api.php

tas ir mans php kods. šeit es tikai parādīju ievades un izvades statiskās vērtības;

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

echo ("myString"); // vispārīgs teksts

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

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

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

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

$ myJSON = json_encode ($ myObj);

echo $ myJSON;

Tagad mūsu HTTP atbildes API ir pabeigta.

Mūsu http bāzes URL būs līdzīgs

you_ip_address/esp_api.php

jūs varat pārbaudīt savu API atbildes tekstu pēc

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

šeit es minēju līniju kā a0401 un maiņu kā dd.

6. solis: pēdējais solis !

Pēdējais solis !!!
Pēdējais solis !!!
Pēdējais solis !!!
Pēdējais solis !!!
Pēdējais solis !!!
Pēdējais solis !!!

Ievadiet datora IP adresi bāzes URL

String Base_url = "noņemts"; // jūsu bāzes URL

un augšupielādējiet savā ESP nodemcu. Kad esat pabeidzis, vienkārši ieslēdziet savu Wi -Fi no mobilā vai klēpjdatora, jūs saņemsit tīklu ar nosaukumu AutoConnectAP. izveidojiet savienojumu ar to un ievadiet savus akreditācijas datus un līnijas konfigurācijas.

Pēc tam atiestatiet ierīci un pārbaudiet, vai tīkls ir pievienots, kad tas ir pievienots, un tad viss ir paveikts.

Jūs varat redzēt, ka displejā tiek parādīta ievade.

ja vēlaties mainīt jebkuru līniju vai wifi akreditācijas datus, dažas sekundes varat nospiest spiedpogu, displejā tiek parādīts Confi.

jūs ievadījāt pieprasījumaAP režīmā. jūs varat mainīt un atiestatīt ierīci.

Viņa galvenais moto ir pamācība, lai parādītu, kā mēs varam izmantot savus hobiju un jautros projektus reālajā ražošanas un ražošanas zonā un parādīt

Ieteicams: