INHOUDSOPGAWE:

WIFI -skerm vir produksiebestuur: 6 stappe
WIFI -skerm vir produksiebestuur: 6 stappe

Video: WIFI -skerm vir produksiebestuur: 6 stappe

Video: WIFI -skerm vir produksiebestuur: 6 stappe
Video: Een Niche Kiezen voor je Website in 6 Stappen 2024, Julie
Anonim
WIFI -skerm vir produksiebestuur
WIFI -skerm vir produksiebestuur

Ek is 'n klein reeks oor IOT- en enkelbordrekenaars.

Ek wil dit altyd verder gebruik as Hobby & Fun Projects (regte produksie en vervaardiging).

Hierdie instruksie is op die punt om 'n 4-syfer-7-segment WIFI-skerm met ESP-nodemcu te skep om produksie-insette per uur te wys. Ek werk in die elektroniese vervaardigingsbedryf, waar ons Manufacturing Execution System (MES) gebruik om produksievloerinvoer, -uitset en -proses te monitor en te beheer. In hierdie projek skep ek 'n klein skermeenheid wat die hoeveelheid produksie -insette volgens reël, skof en uur sal toon.

Tegnies is hierdie projek soortgelyk aan 'n vertoning van YouTube -intekenare, waar ons API/HTTP -reaksie van aanlyn gebruik, maar hier gaan ons ons eie API skep om met ons plaaslike MES -stelsel te kommunikeer om die hoeveelheid in te voer.

Stap 1: Onderdele en gereedskap wat gebruik word:

Onderdele en gereedskap wat gebruik word
Onderdele en gereedskap wat gebruik word

Hardeware onderdele wat gebruik word:

  1. ESP knik
  2. TM1637 4 -syferhorlosie
  3. Druk skakelaar
  4. 10k weerstand
  5. paar springdrade

Sagteware -instrumente wat gebruik word:

  1. Arduino IDE
  2. Xampp vir PHP/Apache -webbediener

Arduino -biblioteek word gebruik:

1. Wifi -bestuurder deur tzapu & i Pasgemaak vir my persoonlike lêers (wifimanager)

2. ESP_EEPROM vir die stoor van my persoonlike waardes in Flash geheue

3. SevenSegmentTM1637 vir vertoning

Stap 2: Pas Wifi -bestuurder aan

Pas Wifi -bestuurder aan
Pas Wifi -bestuurder aan

In hierdie eerste installeer ek eers wifi -bestuurder en daarna kopieer ek die Wifi -bestuurdermap en slaag dit weer in dieselfde in die Arduino -biblioteekmap, dan herdoop na WiFiManager_custom.

Folder Root -gids Gewoonlik

C: / Gebruikers / u rekenaarnaam / Documents / Arduino / biblioteke

Toe maak ek die wifimanager_custom -lêergids oop en hernoem die kop -cpp -lêer, dieselfde as die wifimanager_custom, dieselfde in die kop- en.cpp -lêers.

En het my pasgemaakte vorm en knoppie by die kop gevoeg.

in HTTP_PORTAL_OPTIONS PROGMEEM het ek my knoppievorm vir Menu bygevoeg.

en 'n nuwe vorm bygevoeg om lyn en verskuiwing in te voer. Ek het hierdie vorm as 'n eenvoudige teksvorm geskep.

Hierna gaan ons aksiefunksies vir hierdie vorms in die.cpp -lêer skep, daarvoor moet ons funksieverklaring in die koplêer doen.

/ * my persoonlike funksies */

leegte handleCustomForm (); leegte handleCustomSave ();

Ek het my persoonlike funksies in die koplêer verklaar. dat dit, ons werk in die opskrif klaar is, moet ons met die.cpp -lêer gaan om ons funksie en aksies te skep.

Stap 3: Pasgemaakte funksies vir vormaksie

Pasgemaakte funksies vir vormaksie
Pasgemaakte funksies vir vormaksie
Pasgemaakte funksies vir vormaksie
Pasgemaakte funksies vir vormaksie
Pasgemaakte funksies vir vormaksie
Pasgemaakte funksies vir vormaksie

Nou maak ons ons wifimanager_custom.cpp -lêer oop.

en ons moet ons http -reaksie -hanteerder byvoeg om ons funksies te skakel wanneer ons vorm pos.

bediener-> op (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, hierdie)); // MY pasgemaakte handvatsel

bediener-> op (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, hierdie)); // MY pasgemaakte handvatsel

hierdie sal ons persoonlike funksies noem wanneer die vorm gepos word.

1.handleCustomForm ()-> skep 'n bladsy met ons pasgemaakte vorm vir lyn- en skuifinvoer en stoorknoppie.

2.handleCustomSave ()-> hierdie funksie kry die vormwaardes en stoor dit in die Flash-geheue 0 (reël) en 50 (shift).

Stap 4: Verbindings en hoofprogram

Verbindings en hoofprogram
Verbindings en hoofprogram

Verbindings is baie eenvoudig..

Aansluitings en bedrading:

nodemcu TM1637 Display

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- druk skakelaar

- drukknop vasgemaak aan pen D8 vanaf +5V - 10K weerstand wat aan pen D8 vanaf die grond geheg is

ons het ons wifimanager klaar aangepas. nou moet ons ons hoofprogram opstel.

1. ons wifi -bestuurder sal verbinding maak met die wifi -netwerk met die laaste gebruikte geloofsbriewe om aan te sluit, as dit misluk, maak dit 'n AutoConnectAP wifi -bediener oop. Ons kan nuwe wifi -kriminele, lyn en verskuiwing instel deur aan te sluit op hierdie wifi -bediener.

2. dan gaan dit in by die hooflus.

Ons hooflus sal twee dele bevat. een is konfi -onderroutine wanneer ons van lyn moet verander, skuif of 'n wifi -bewys moet byvoeg om die vraagmodus AP te skakel om dit op te stel. dit sal gebel word as 'n drukknoppie wat aan die D8 -pen gekoppel is, ingedruk word.

leemte -lus () {

config_loop ();

}

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

Serial.println ("Wag vir konfig knoppie status …");

//display.print("Wait ");

as (digitalRead (TRIGGER_PIN) == HOOG)

{

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

// Plaaslike intialisering. As dit eers klaar is, hoef u dit nie by WiFiManager wifiManager te hou nie;

// herstel instellings - vir toetsing

//wifiManager.resetSettings ();

// stel 'n tydsduur in totdat die konfigurasieportaal afgeskakel word // handig om alles weer te probeer of te gaan slaap // binne sekondes

//wifiManager.setTimeout(120);

// dit begin 'n toegangspunt met die gespesifiseerde naam

// hier "AutoConnectAP" // en gaan in 'n blokkeerlus wat op konfigurasie wag

// SONDER DIT LYK DIE AP NIE OM WERKLIK MET SDK 1.5 TE WERK nie, werk op na ten minste 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("kon nie koppel nie en raak time -out"); vertraging (3000); // herstel en probeer weer, of sit dit in diepe slaap ESP.reset (); vertraging (5000); }}

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

}

Die tweede een is ons hoofprogram om HTTP -reaksie van 'n spesifieke bediener te kry en die invoerhoeveelheid in die skerm te vertoon.

Vir hierdie eerste moet ons ons lyn- en verskuiwingsdetail kry van die Flash-berging van ESP (adres 0-> reël, 50-> skof)

EEPROM.begin (100); // eeprom storageEEPROM.get (0, reël); // kry waarde vanaf adres 0

EEPROM.get (50, skof); // Kry waarde vanaf adres 50

dan moet ons hierdie reël deurgee en die besonderhede na ons http -bediener verskuif deur die kry metode om die waarde van invoer en uitset te kry.

String Base_url = "verwyder"; // my basis urlHTTPClient http; // Voorwerp van klas

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

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // dit sal alle http -antwoordstring afdruk;

as u wil hoe al die teks is, dan is u werk self klaar, kan ons dit direk in tm1637 vertoon.

display.print (http.getString ());

Maar ek wil nie al die teks wys nie, want dit bevat insette, afvoer in json -vorm en 'n ander algemene teks oor die databasis en ens.

so eers het ek die algemene teks uit die antwoordstring verwyder deur die Substring () -funksie te gebruik.

Ek tel die lengte van die algemene teks en sny dit af.

as (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument -wortel (bufferSize);

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

String json_string = http.getString (). Substring (121); /* dit is my verrekening van algemene teks as u antwoord nie iets soos hierdie het nie, kan u hierdie kode verwyder; */

//Serial.println(json_string);

DeserializationError -fout = deserializeJson (root, json_string);

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

as (fout)

{Serial.print (F ("deserializeJson () misluk:"));

Serial.println (error.c_str ());

terugkeer;

}

anders {

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

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

Serial.print ("Invoer:");

Serial.println (invoer);

Serial.print ("Uitset:");

Serial.println (uitset);

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

display.clear (); // maak die skerm skoon

display.print (invoer); // print TEL ENKELE SYFERS

}

dit is dat ons hoofprogram klaar is.

Stap 5: Skep 'n webbediener

Skep 'n webbediener
Skep 'n webbediener
Skep 'n webbediener
Skep 'n webbediener

Ek gebruik xampp as my webbediener en PHP -kode om data uit my SQL -databasis te kry om die presiese hoeveelheid te kry.

Maar ek kan nie alle oorspronklike kodes daarvan deel nie. omdat dit vertroulik is oor my onderneming. maar ek sal wys hoe u 'n webbediener kan skep, 'n dummy statiese invoer en afvoerhoeveelheid kan toon.

Hiervoor benodig u enige webgasheer, ek gebruik xampp hier as my gasheer.

u kan xampp hier aflaai.

installeer xampp … as u duidelike instruksies benodig, kan u hierdie skakel gebruik.

Nadat u xampp geïnstalleer het, moet u na u wortelmap gaan.

C: / xampp / htdocs

al u php -programme moet binne hierdie wortel wees.

Ek het my bladsy geskep met die naam esp_api.php

dit is my php kode. hier vertoon ek net statiese waardes van invoer en uitset;

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

eggo ("myString"); // algemene teks

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

anders {$ result ['input'] = 200; $ resultaat ['uitvoer'] = 199; }

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

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

$ myJSON = json_encode ($ myObj);

eggo $ myJSON;

Nou is ons HTTP -reaksie -API klaar.

Ons http -basis -url sal soos volg wees

jy_ip_adres/esp_api.php

u kan u API -antwoordteks nagaan deur

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

hier noem ek reël as a0401 en skuif as dd.

Stap 6: Laaste stap !

Laaste stap !!!
Laaste stap !!!
Laaste stap !!!
Laaste stap !!!
Laaste stap !!!
Laaste stap !!!

Voer u rekenaar -ip -adres in die basis -URL in

String Base_url = "verwyder"; // jou basis -url

en Laai op na jou ESP nodemcu. As u eers u wifi vanaf u selfoon of skootrekenaar aangeskakel het, kry u 'n netwerk genaamd AutoConnectAP. skakel daarmee in en voer u geloofsbriewe en reëlkonfigure in.

Stel dan u toestel terug en kyk of u netwerk gekoppel is sodra dit gekoppel is, dan is alles gedoen.

U kan sien dat die invoer op die skerm verskyn.

As u 'n lyn- of wifi -bewys wil verander, kan u 'n paar sekondes op die drukknop druk, op die skerm verskyn konfi.

jy het aangegaan in die demandAP -modus. u kan die toestel verander en herstel.

Die belangrikste motor van hom kan u wys hoe ons ons stokperdjie en prettige projekte in die werklike produksie- en vervaardigingsgebied kan gebruik en kan wys

Aanbeveel: