Sisällysluettelo:
- Vaihe 1: Käytetyt osat ja työkalut:
- Vaihe 2: Wifi Managerin mukauttaminen
- Vaihe 3: Lomaketoiminnon mukautetut toiminnot
- Vaihe 4: Yhteydet ja pääohjelma
- Vaihe 5: Web -palvelimen luominen
- Vaihe 6: Viimeinen vaihe !
Video: WIFI -näyttö tuotannonhallintaan: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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 laitteiston osat:
- ESP -nodemcu
- TM1637 4 -numeroinen kellonäyttö
- Paina kytkintä
- 10k vastus
- muutama hyppyjohdin
Käytetyt ohjelmistotyökalut:
- Arduino IDE
- 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
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
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
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
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 !
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:
ESP32 TTGO WiFi -signaalin voimakkuus: 8 vaihetta (kuvilla)
ESP32 TTGO WiFi -signaalin voimakkuus: Tässä opetusohjelmassa opimme näyttämään WiFi -verkon signaalin voimakkuuden käyttämällä ESP32 TTGO -korttia
Erittäin pienitehoinen WiFi-kotiautomaatiojärjestelmä: 6 vaihetta (kuvilla)
Erittäin pienitehoinen WiFi-kodin automaatiojärjestelmä: Tässä projektissa näytämme, kuinka voit rakentaa paikallisen perusautomaatiojärjestelmän muutamassa vaiheessa. Aiomme käyttää Raspberry Pi: tä, joka toimii keskeisenä WiFi -laitteena. Kun taas päätesolmuissa aiomme käyttää IOT Cricketiä akkutehon valmistamiseen
Wifi -jääkaappi: 4 vaihetta
Wifi -jääkaappi: - Hei, valmistajatilastasi puuttuu jääkaappi, ota tämä! - Kiitos! Mutta kaveri, se on rikki.- Aivan. Ja näin sain laatikon kylmään maitoon kahviini. Tai ollakseni hieman tarkempi: maidon popsicles.Jääkaappi 101. Jääkaappi voidaan rikkoa monella tavalla
Lasi -kivi -LED -putki (WiFi -ohjattu älypuhelinsovelluksen kautta): 6 vaihetta (kuvilla)
Lasi-kivi-LED-putki (WiFi-ohjattu älypuhelinsovelluksen kautta): Hei muut valmistajat! Tässä ohjeessa näytän sinulle, kuinka rakentaa WiFi-ohjattu LED-putki, joka on täytetty lasikivillä mukavan diffuusioefektin aikaansaamiseksi. LEDit ovat yksilöllisesti osoitettavissa, ja siksi joitakin hienoja tehosteita on mahdollista
ESP8266-NODEMCU $ 3 WiFi-moduuli #1- WiFi: n käytön aloittaminen: 6 vaihetta
ESP8266-NODEMCU $ 3 WiFi-moduuli #1- WiFi: n käytön aloittaminen: Näiden mikrotietokoneiden uusi maailma on saapunut ja tämä asia on ESP8266 NODEMCU. Tämä on ensimmäinen osa, joka näyttää kuinka voit asentaa esp8266 -ympäristön arduino IDE -laitteeseesi aloitusvideon kautta ja osina