Sisällysluettelo:

WIFI -näyttö tuotannonhallintaan: 6 vaihetta
WIFI -näyttö tuotannonhallintaan: 6 vaihetta

Video: WIFI -näyttö tuotannonhallintaan: 6 vaihetta

Video: WIFI -näyttö tuotannonhallintaan: 6 vaihetta
Video: Kamera-LAMP, jossa on henkilön seuranta ja tunnistaminen. 2024, Marraskuu
Anonim
WIFI -näyttö tuotannonhallintaan
WIFI -näyttö tuotannonhallintaan

Olen vähän sarja IOT- ja yhden kortin tietokoneista.

Haluan aina käyttää sitä Hobby & Fun -projektien (todellinen tuotanto ja valmistus) ulkopuolella.

Tämä Instructable aikoo luoda 4-numeroisen 7-segmenttisen WIFI-näytön, jossa on ESP-nodemcu, joka näyttää tuotantotunnit. Työskentelen elektroniikan valmistusteollisuudessa, jossa käytämme Manufacturing Execution System (MES) -järjestelmää tuotantokerroksen tulojen, tulosten ja prosessien seurantaan ja hallintaan. Tässä projektissa olen luomassa pienen näyttöyksikön, joka näyttää tuotantomäärän rivin, vuoron ja tunnin mukaan.

Teknisesti tämä projekti on samanlainen kuin Youtube -tilaajamäärän näyttö, jossa käytämme API/HTTP -vastausta online -tilassa, mutta täällä aiomme luoda oman sovellusliittymän, joka on vuorovaikutuksessa paikallisen MES -järjestelmän kanssa saadaksesi syöttömäärän.

Vaihe 1: Käytetyt osat ja työkalut:

Käytetyt osat ja työkalut
Käytetyt osat ja työkalut

Käytetyt laitteiston osat:

  1. ESP -nodemcu
  2. TM1637 4 -numeroinen kellonäyttö
  3. Paina kytkintä
  4. 10k vastus
  5. muutama hyppyjohdin

Käytetyt ohjelmistotyökalut:

  1. Arduino IDE
  2. Xampp PHP/Apache -verkkopalvelimelle

Arduinon kirjaston käytetyt:

1. Wifi Manager by tzapu & i Räätälöity omille tiedostoilleni (wifimanager)

2. ESP_EEPROM mukautettujen arvojen tallentamiseen Flash -muistiin

3. SevenSegmentTM1637 näyttöön

Vaihe 2: Wifi Managerin mukauttaminen

Wifi Managerin mukauttaminen
Wifi Managerin mukauttaminen

Tässä ensin asensin ensin wifi -hallinnan ja sitten kopioin Wifi -hallintakansion ja välitin uudelleen samassa Arduino -kirjaston kansiossa ja nimettiin sitten uudelleen nimellä WiFiManager_custom.

Kansio Juurihakemisto Enimmäkseen kuten

C: / Käyttäjät / tietokoneesi nimi / Dokumentit / Arduino / kirjasto

Sitten avasin wifimanager_custom -kansion ja nimesin otsikon.cpp -tiedoston uudelleen samaksi kuin wifimanager_custom, lisäsin saman myös otsikko- ja.cpp -tiedostoihin.

Ja lisäsin mukautetun lomakkeen ja painikkeen otsikkoon.

HTTP_PORTAL_OPTIONS OHJELMASSA lisäsin painikelomakkeen Valikkoon.

ja lisäsi uuden lomakkeen riville ja vuorolle siirtymiseen. Tein tämän lomakkeen yksinkertaisena tekstimuodona.

Tämän jälkeen aiomme luoda toimintofunktioita tälle lomakkeelle.cpp -tiedostossa, jota varten meidän on tehtävä funktion ilmoitus otsikkotiedostossa.

/ * omat toiminnot */

tyhjä kahvaCustomForm (); tyhjä kahvaCustomSave ();

Ilmoitin mukautetut toiminnot otsikkotiedostossa. että se, työ otsikossa on valmis, meidän on käytettävä.cpp -tiedostoa toiminnon ja toimintojen luomiseksi.

Vaihe 3: Lomaketoiminnon mukautetut toiminnot

Lomaketoiminnon mukautetut toiminnot
Lomaketoiminnon mukautetut toiminnot
Lomaketoiminnon mukautetut toiminnot
Lomaketoiminnon mukautetut toiminnot
Lomaketoiminnon mukautetut toiminnot
Lomaketoiminnon mukautetut toiminnot

Nyt avaamme wifimanager_custom.cpp -tiedoston.

ja meidän on lisättävä http -vastauskäsittelijämme kutsuaksemme toimintojamme, kun lomake on postitettu.

palvelin-> päällä (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // MINUN mukautettu kahva

palvelin-> päällä (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // MINUN mukautettu kahva

nämä kutsuvat mukautettuja toimintojamme, kun lomake lähetetään.

1.handleCustomForm ()-> luo sivun mukautetulla lomakkeellamme rivin ja siirron syöttämiseen ja tallentamiseen.

2.handleCustomSave ()-> tämä toiminto hakee lomakkeen arvot ja tallentaa ne Flash-muistipaikkoihin 0 (rivi) ja 50 (shift).

Vaihe 4: Yhteydet ja pääohjelma

Yhteydet ja pääohjelma
Yhteydet ja pääohjelma

Liitännät ovat hyvin yksinkertaisia ..

Liitännät ja johdotus:

nodemcu TM1637 Näyttö

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- painokytkin

- painike, joka on kiinnitetty nastaan D8 +5V - 10K vastuksesta kiinnitetty nastaan D8 maasta

saimme vaimonhallinnan mukauttamisen valmiiksi. Nyt meidän on luotava pääohjelmamme.

1. wifi -ylläpitäjämme muodostaa yhteyden wifi -verkkoon, jossa on viimeksi käytetyt kirjautumistiedot, jos se epäonnistuu, se avaa AutoConnectAP -wifi -palvelimen. Voimme määrittää uudet wifi -rikolliset, linjan ja siirron muodostamalla yhteyden tähän wifi -palvelimeen.

2. sitten se siirtyy pääsilmukkaan.

Pääsilmukassamme on kaksi osaa. yksi on confi -aliohjelma, kun meidän on muutettava riviä, siirrettävä tai lisättävä kaikki wifi -tunnistetiedot kysyntätilojen tukiasemaan määritettäväksi. tätä kutsutaan, kun D8 -nastaan kytkettyä painiketta painetaan.

void loop () {

config_loop ();

}

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

Serial.println ("Odottaa määrityspainikkeen tilaa…");

//näyttö.print ("Odota");

jos (digitalRead (TRIGGER_PIN) == HIGH)

{

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

// Paikallinen intialisaatio. Kun sen liiketoiminta on valmis, sitä ei tarvitse pitää WiFiManager wifiManagerin ympärillä;

// nollaa asetukset - testausta varten

//wifiManager.resetSettings ();

// asettaa aikakatkaisun, kunnes määritysportaali sammutetaan // hyödyllistä tehdä kaikki uudelleen tai mennä nukkumaan // sekunneissa

//wifiManager.setTimeout(120);

// se aloittaa tukiaseman määritetyllä nimellä

// tässä "AutoConnectAP" // ja siirtyy estosilmukkaan, joka odottaa määritystä

// ILMAN TÄTÄ SOVELLUS EI näytä toimivan oikein SDK 1.5: n kanssa, päivitä versioon vähintään 1.5.1 //WiFi.mode(WIFI_STA);

if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("yhdistäminen epäonnistui ja aikakatkaisu epäonnistui"); viive (3000); // nollaa ja yritä uudelleen, tai ehkä laita se nukkumaan ESP.reset (); viive (5000); }}

//Serial.println("Painikkeen tila False. Back to Main loop "); //display.print("Pääsilmukka "); //display.clear ();

}

Toinen on pääohjelmamme saada HTTP -vastaus tietyltä palvelimelta ja näyttää syöttömäärä näytössä.

Tätä varten meidän on ensin saatava linja- ja siirtotiedot ESP: n Flash-muistista (osoite 0-> rivi, 50-> vaihto)

EEPROM.bin (100); // eeprom storageEEPROM.get (0, rivi); // hae arvo osoitteesta 0

EEPROM.get (50, vuoro); // Hanki arvo osoitteesta 50

sitten meidän on välitettävä tämä rivi ja siirrettävä tiedot http -palvelimellemme hakumenetelmällä syöttö- ja tulostusarvon saamiseksi.

Jono Base_url = "poistettu"; // minun perus -urlHTTPClient http; // Luokan HTTPClient objekti

Merkkijonon URL -osoite = Base_url+"?"+"Line ="+line+"& shift ="+shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // tämä tulostaa kaikki http -vastausmerkkijonot;

jos haluat miten kaikki teksti, niin työsi on valmis täällä, voimme itse näyttää sen tm1637 -näytössä.

display.print (http.getString ());

Mutta en halua näyttää koko tekstiä, koska se sisältää syötteitä, tuloksia json -muodossa ja jotain muuta yleistä tekstiä tietokannastaan ja muusta.

joten ensin poistin kyseisen yleisen tekstin vastausmerkkijonosta käyttämällä Substring () -funktiota.

Laskin yleisen tekstin pituuden ja leikkasin sen.

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

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

Jono json_string = http.getString (). Alimerkkijono (121); /* tämä on yleisen tekstini poikkeama, jos vastauksessasi ei ole mitään sellaista, että voit poistaa tämän koodin; */

//Sarja.println(json_string);

DeserializationError error = deserializeJson (root, json_string);

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

jos (virhe)

{Serial.print (F ("deserializeJson () epäonnistui:"));

Sarja.println (error.c_str ());

palata;

}

muu{

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

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

Serial.print ("Input:");

Serial.println (syöttö);

Serial.print ("Lähtö:");

Sarja.println (lähtö);

display.print (".. sisään..");

display.clear (); // tyhjennä näyttö

display.print (syöttö); // tulosta LUETTELOA JOKAINEN DIGITS

}

pääohjelmamme on päättynyt.

Vaihe 5: Web -palvelimen luominen

Web -palvelimen luominen
Web -palvelimen luominen
Web -palvelimen luominen
Web -palvelimen luominen

Käytän xamppia verkkopalveluna ja PHP -koodina saadakseni tietoja SQL -tietokannastani tarkan määrän saamiseksi.

Mutta en voi jakaa kaikkia sen alkuperäisiä koodeja. koska se on yritykseni luottamuksellisuus. mutta näytän kuinka luodaan yksi verkkopalvelin, näytä nuken staattinen syöttö- ja tulostusmäärä.

Tätä varten tarvitset minkä tahansa web -isännän, käytän täällä xamppia isäntänä.

voit ladata xamppin täältä.

asenna xampp… jos tarvitset selkeitä ohjeita, voit käyttää tätä linkkiä.

Xamppin asentamisen jälkeen sinun on mentävä juurihakemistoosi.

C: / xampp / htdocs

kaikkien php -ohjelmien pitäisi olla tämän juuren sisällä.

loin sivuni nimellä nimeltä esp_api.php

tämä on minun php -koodini. tässä näytän vain staattisia tulo- ja lähtöarvoja;

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

echo ("myString"); // yleinen teksti

jos ($ 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);

echo $ myJSON;

Nyt HTTP -vastausliittymämme on valmis.

Http -pohjainen URL -osoitteemme on

you_ip_address/esp_api.php

voit tarkistaa API -vastaustekstisi

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

tässä mainitsin rivin a0401 ja shift dd: nä.

Vaihe 6: Viimeinen vaihe !

Viimeinen vaihe !!!
Viimeinen vaihe !!!
Viimeinen vaihe !!!
Viimeinen vaihe !!!
Viimeinen vaihe !!!
Viimeinen vaihe !!!

Kirjoita tietokoneen IP -osoite perus -URL -osoitteeseen

Jono Base_url = "poistettu"; // perusosoitteesi

ja lataa ESP -nodemcuisi. Kun olet vain käynnistänyt wifi -yhteyden matkapuhelimestasi tai kannettavastasi, saat verkon nimeltä AutoConnectAP. muodosta yhteys siihen ja kirjoita tunnistetietosi ja linjamääritykset.

Nollaa sitten laite ja tarkista, että verkko on yhdistetty, kun se on yhdistetty, ja sitten kaikki on tehty.

Näet, että tulo näkyy näytössä.

Jos haluat muuttaa minkä tahansa linjan tai wifi -tunnistetietoja, voit painaa kytkintä muutaman sekunnin ajan, näytössä näkyy confi.

olet siirtynyt demandAP -tilaan. voit vaihtaa ja nollata laitteen.

Hänen oppaansa päämoto näyttää, kuinka voimme käyttää harrastus- ja hauskoja projektejamme todellisella tuotanto- ja tuotantoalueella ja näyttää

Suositeltava: