Kazalo:

Zaslon WIFI za upravljanje proizvodnje: 6 korakov
Zaslon WIFI za upravljanje proizvodnje: 6 korakov

Video: Zaslon WIFI za upravljanje proizvodnje: 6 korakov

Video: Zaslon WIFI za upravljanje proizvodnje: 6 korakov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
WIFI zaslon za upravljanje proizvodnje
WIFI zaslon za upravljanje proizvodnje

Sem majhna serija o računalnikih IOT in enosmernih računalnikih.

Vedno ga želim uporabiti poleg Hobby & Fun Projects (prava proizvodnja in proizvodnja).

Ta Instructable bo kmalu ustvaril 4-mestni 7-segmentni zaslon WIFI z nodemcu ESP za prikaz urnih produkcijskih vnosov. Delam v predelovalni industriji elektronike, kjer uporabljamo sistem za izvedbo proizvodnje (MES) za spremljanje in nadzor vhodov, izhodov in procesov proizvodnih tal. V tem projektu Ustvarjam majhno prikazno enoto, ki bo prikazala vhodno količino proizvodnje glede na vrstico, izmeno in uro.

Tehnično je ta projekt podoben prikazovalniku števila naročnikov Youtube, kjer uporabljamo odziv API/HTTP iz spleta, toda tukaj bomo ustvarili lasten API za interakcijo z našim lokalnim sistemom MES za pridobivanje količine vnosa.

1. korak: Uporabljeni deli in orodja:

Uporabljeni deli in orodja
Uporabljeni deli in orodja

Uporabljeni deli strojne opreme:

  1. ESP nodemcu
  2. TM1637 4 -mestna ura Ura
  3. Potisno stikalo
  4. 10k upor
  5. nekaj mostičnih žic

Uporabljena programska orodja:

  1. Arduino IDE
  2. Xampp za spletni strežnik PHP/Apache

Uporabljena knjižnica Arduino:

1. Wifi manager by tzapu & i Prilagojeno za moje vloge po meri (wifimanager)

2. ESP_EEPROM za shranjevanje mojih vrednosti po meri v pomnilnik Flash

3. SevenSegmentTM1637 Za prikaz

2. korak: prilagajanje upravitelja Wifi

Prilagajanje upravitelja Wifi
Prilagajanje upravitelja Wifi

Na tem mestu sem najprej namestil upravitelja wifi, nato sem kopiral mapo upravitelja Wifi in ga znova poslal v isto v mapi knjižnice Arduino, nato preimenoval v WiFiManager_custom.

Mapa Korenski imenik Večinoma všeč

C: / Users / ime vašega računalnika / Documents / Arduino / libraries

Nato sem odprl mapo wifimanager_custom in preimenoval datoteko header.cpp, enako kot wifimanager_custom, isto dodal tudi v datoteko header &.cpp.

In v glavo sem dodal svoj obrazec in gumb po meri.

v HTTP_PORTAL_OPTIONS PROGMEM sem dodal obrazec gumba za Meni.

in dodan nov obrazec za vnos vrstice in premika. Ta obrazec sem ustvaril kot preprosto besedilno obliko.

Po tem bomo ustvarili akcijske funkcije za te obrazce v datoteki.cpp, za to pa moramo v datoteki z glavo narediti deklaracijo funkcije.

/ * moje funkcije po meri */

void handleCustomForm (); void handleCustomSave ();

svoje datoteke po meri sem prijavil v datoteki glave. da je to, naše delo v glavi končano, moramo ustvariti našo funkcijo in dejanja z datoteko.cpp.

3. korak: Funkcije po meri za dejanje obrazca

Funkcije po meri za dejanje obrazca
Funkcije po meri za dejanje obrazca
Funkcije po meri za dejanje obrazca
Funkcije po meri za dejanje obrazca
Funkcije po meri za dejanje obrazca
Funkcije po meri za dejanje obrazca

Zdaj odpremo datoteko wifimanager_custom.cpp.

in moramo dodati naš vodnik odziva http, da pokliče naše funkcije, ko je naš obrazec objavljen.

server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, to)); // MOJ ročaj po meri

server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, to)); // MOJ ročaj po meri

te bodo po objavi obrazca klicale naše funkcije po meri.

1.handleCustomForm ()-> bo ustvaril stran z našim obrazcem po meri za vnos vrstice in premika ter gumb za shranjevanje.

2.handleCustomSave ()-> ta funkcija bo prejela vrednosti obrazcev in jih shranila v pomnilnik Flash 0 (vrstica) & 50 (premik).

4. korak: Povezave in glavni program

Povezave in glavni program
Povezave in glavni program

Povezave so zelo preproste..

Priključki in ožičenje:

nodemcu TM1637 Zaslon

3,3 V ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- potisno stikalo

- tipka pritrjena na pin D8 iz +5V - 10K upor pritrjen na pin D8 od tal

dokončali smo prilagajanje našega wifimanagerja. zdaj moramo ustvariti naš glavni program.

1. naš upravitelj wifi se bo povezal z omrežjem wifi z zadnjimi uporabljenimi poverilnicami za vzpostavitev povezave.

2. potem bo vstopil v glavno zanko.

Naša glavna zanka bo vsebovala dva dela. ena je podprogram confi, ko moramo spremeniti vrstico, premakniti ali dodati katero koli poverilnico wifi za klicni način načina povpraševanja za konfiguracijo. to se pokliče, ko pritisnete gumb, povezan z zatičem D8.

void loop () {

config_loop ();

}

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

Serial.println ("Čakanje na stanje gumba za konfiguracijo …");

//display.print(" Počakaj ");

če (digitalRead (TRIGGER_PIN) == VISOKO)

{

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

// Lokalna intializacija. Ko je posel končan, ga ni treba hraniti v bližini WiFiManager wifiManager;

// ponastavitev nastavitev - za testiranje

//wifiManager.resetSettings ();

// nastavi časovno omejitev, dokler se konfiguracijski portal ne izklopi // koristno, da se vse znova poskusi ali zaspi // v nekaj sekundah

//wifiManager.setTimeout(120);

// zažene dostopno točko z določenim imenom

// tukaj "AutoConnectAP" // in gre v blokirno zanko, ki čaka na konfiguracijo

// BREZ TEGA AP NE Zgleda, da deluje pravilno s SDK 1.5, posodobite na vsaj 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("povezava ni uspela in časovna omejitev ni uspela"); zamuda (3000); // ponastavite in poskusite znova ali pa ga postavite v stanje globokega spanja ESP.reset (); zamuda (5000); }}

//Serial.println(" Status gumba False. Back to Main loop "); //display.print("Glavna zanka "); //display.clear ();

}

Drugi bo naš glavni program za odziv HTTP od določenega strežnika in prikaz vhodne količine na zaslonu.

Za to moramo najprej dobiti podatke o vrstici in premiku iz pomnilnika Flash ESP (naslov 0-> vrstica, 50-> premik)

EEPROM.začetek (100); // eeprom storageEEPROM.get (0, vrstica); // dobimo vrednost z naslova 0

EEPROM.get (50, izmena); // Pridobite vrednost z naslova 50

potem moramo to vrstico in podatke pomakniti na naš http strežnik po metodi get, da dobimo vrednost vnosa in izhoda.

Niz Base_url = "odstranjeno"; // moj osnovni urlHTTPClient http; // Objekt razreda

Niz URL = Base_url+"?"+"Vrstica ="+vrstica+"& shift ="+shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // to natisne ves niz odziva

če želite, kako je vse besedilo, potem je vaše delo tukaj končano, ga lahko neposredno prikažemo na zaslonu tm1637.

display.print (http.getString ());

Ne želim pa prikazati vsega besedila, ker vsebuje vnos, izhod v obliki json in nekaj drugega splošnega besedila o svoji bazi podatkov itd.

zato sem najprej odstranil to splošno besedilo iz odzivnega niza s funkcijo Substring ().

preštela sem dolžino splošnega besedila in ga obrezala.

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

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

Niz json_string = http.getString (). Podniz (121); /* to je moj odmik splošnega besedila, če vaš odgovor nima nič takega, lahko odstranite to kodo; */

//Serial.println(json_string);

Napaka DeserializationError = deserializeJson (root, json_string);

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

če (napaka)

{Serial.print (F ("deserializeJson () ni uspelo:"));

Serial.println (napaka.c_str ());

vrnitev;

}

drugače {

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

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

Serial.print ("Vnos:");

Serial.println (vnos);

Serial.print ("Izhod:");

Serial.println (izhod);

display.print (".. v..");

display.clear (); // počistite zaslon

display.print (input); // natisnite ŠTEVANJE NEKAJ ŠTEVIL

}

s tem je naš glavni program končan.

5. korak: Ustvarjanje spletnega strežnika

Ustvarjanje spletnega strežnika
Ustvarjanje spletnega strežnika
Ustvarjanje spletnega strežnika
Ustvarjanje spletnega strežnika

i m Uporabljam xampp kot svojo spletno storitev in kodo PHP za pridobivanje podatkov iz moje baze podatkov SQL za natančno količino.

Ne morem pa deliti vseh izvirnih kod. ker je zaupnost mojega podjetja. vendar bom pokazal, kako ustvariti en spletni strežnik, pokazal lažne statične vhodne in izhodne količine.

Za to potrebujete katerega koli spletnega gostitelja, tukaj uporabljam xampp kot svojega gostitelja.

xampp lahko prenesete tukaj.

namestite xampp … če potrebujete jasna navodila, lahko uporabite to povezavo.

Po namestitvi xampp morate iti v svoj korenski imenik.

C: / xampp / htdocs

vsi vaši programi php morajo biti znotraj tega korena.

svojo stran sem ustvaril z imenom esp_api.php

to je moja php koda. tukaj samo prikazujem statične vrednosti vhoda in izhoda;

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

echo ("myString"); // splošno besedilo

if ($ line == 'a0401' in $ 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);

echo $ myJSON;

Zdaj je naš odzivni API HTTP končan.

Naš osnovni bazni naslov http bo podoben

you_ip_address/esp_api.php

odzivno besedilo API -ja lahko preverite z

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

tukaj sem omenil vrstico kot a0401 in premik kot dd.

6. korak: Zadnji korak !!

Zadnji korak !!!
Zadnji korak !!!
Zadnji korak !!!
Zadnji korak !!!
Zadnji korak !!!
Zadnji korak !!!

IP naslov računalnika vnesite v osnovni URL

Niz Base_url = "odstranjeno"; // vaš osnovni URL

in naložite v svoj ESP nodemcu. Ko v mobilnem ali prenosnem računalniku samo vklopite wifi, boste dobili omrežje z imenom AutoConnectAP. povežite se z njim in vnesite poverilnice in konfiguracijo vrstice.

Nato ponastavite napravo in preverite, ali je omrežje povezano, ko je povezano, potem je vse opravljeno.

Vidite lahko, da je vnos prikazan na zaslonu.

če želite spremeniti katero koli vrstico ali poverilnico za wifi, lahko za nekaj sekund pritisnete potisno stikalo, na zaslonu se prikaže confi.

ste vstopili v način demandAP. lahko spremenite in ponastavite napravo.

Glavni moto njegovega poučevanja je pokazati, kako lahko svoje hobi in zabavne projekte uporabimo na resničnem proizvodnem in proizvodnem področju ter pokažemo

Priporočena: