Turinys:
- 1 žingsnis: Naudotos dalys ir įrankiai:
- 2 veiksmas: „Wifi Manager“tinkinimas
- 3 veiksmas: pasirinktinės formos veiksmo funkcijos
- 4 žingsnis: Ryšiai ir pagrindinė programa
- 5 veiksmas: žiniatinklio serverio kūrimas
- 6 žingsnis: paskutinis žingsnis !
Video: WIFI ekranas gamybos valdymui: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Aš esu šiek tiek serija apie IOT ir vienos plokštės kompiuterius.
Aš visada noriu jį naudoti ne tik hobio ir pramogų projektuose (tikroji gamyba ir gamyba).
Ši instrukcija ketina sukurti 4 skaitmenų 7 segmentų WIFI ekraną su ESP nodemcu, kad būtų rodoma valandinė gamybos įvestis. Aš dirbu elektronikos gamybos pramonėje, kur mes naudojame gamybos vykdymo sistemą (MES), kad galėtume stebėti ir kontroliuoti gamybos grindų įvestį, išvestį ir procesą. Šiame projekte aš kuriu mažą ekraną, kuris parodys gamybos įvesties kiekį pagal eilutę, pamainą ir valandą.
Techniniu požiūriu šis projektas yra panašus į „Youtube“abonentų skaičiaus ekraną, kuriame mes naudojame API/HTTP atsaką iš interneto. Tačiau čia mes sukursime savo API, kad galėtume sąveikauti su vietine MES sistema, kad gautume įvesties kiekį.
1 žingsnis: Naudotos dalys ir įrankiai:
Naudojamos aparatūros dalys:
- ESP nodemcu
- TM1637 4 skaitmenų laikrodžio ekranas
- Stumti jungiklį
- 10k rezistorius
- keletas trumpiklių
Naudojami programinės įrangos įrankiai:
- „Arduino IDE“
- „Xampp“PHP/„Apache“žiniatinklio serveriui
Naudojama „Arduino“biblioteka:
1. „Tzapu & i“„Wi -Fi“tvarkyklė, pritaikyta mano pasirinktiniams failams („wifimanager“)
2. ESP_EEPROM mano pasirinktinėms vertėms išsaugoti „Flash“atmintyje
3. „SevenSegmentTM1637“ekranui
2 veiksmas: „Wifi Manager“tinkinimas
Pirmiausia aš pirmiausia įdiegiau „wifi“tvarkyklę, o tada nukopijavau „Wifi“tvarkyklės aplanką ir vėl perėjau į tą patį „Arduino“bibliotekos aplanke, tada pervadintas į „WiFiManager_custom“.
Aplanko šaknies katalogas Dažniausiai patinka
C: / Vartotojai / jūsų kompiuterio pavadinimas / Dokumentai / Arduino / bibliotekos
Tada atidariau aplanką „wifimanager_custom“ir pervadinau antraštės.cpp failą taip pat, kaip ir „wifimanager_custom“, taip pat pridėjau antraštės ir.cpp failus.
Ir antraštėje pridėjau savo pasirinktinę formą ir mygtuką.
HTTP_PORTAL_OPTIONS PROGMEM pridėjau meniu mygtuką.
ir pridėjo naują formą, skirtą įvesti eilutę ir pamainą. Aš sukūriau šią formą kaip paprastą teksto formą.
Po to mes sukursime veiksmų formas šioms formoms.cpp faile, tam mes turime atlikti funkcijų deklaraciją antraštės faile.
/ * mano pasirinktinės funkcijos */
tuščia rankenaCustomForm (); void rankenaCustomSave ();
Aš paskelbiau savo pasirinktines funkcijas antraštės faile. kad tai, mūsų darbas antraštėje baigtas, turime sukurti.cpp failą, kad sukurtume savo funkciją ir veiksmus.
3 veiksmas: pasirinktinės formos veiksmo funkcijos
Dabar atidarome failą wifimanager_custom.cpp.
ir mes turime pridėti savo http atsakymo tvarkyklę, kad iškviestume savo funkcijas, kai mūsų forma yra paskelbta.
serveris-> į (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // MANO pasirinktinė rankena
serveris-> į (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // MANO pasirinktinė rankena
paskelbus formą, jie iškvies mūsų pasirinktines funkcijas.
1.handleCustomForm ()-> sukurs puslapį su mūsų pasirinktine eilutės ir poslinkio įvesties ir išsaugojimo mygtuko forma.
2.handleCustomSave ()-> ši funkcija gaus formos reikšmes ir išsaugos „Flash“atminties vietose 0 (eilutė) ir 50 (pamaina).
4 žingsnis: Ryšiai ir pagrindinė programa
Sujungimai labai paprasti..
Sujungimai ir laidai:
nodemcu TM1637 ekranas
3.3v ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- stumti jungiklį
- mygtukas, pritvirtintas prie kaiščio D8, nuo +5V - 10K rezistorius, pritvirtintas prie žemės kaiščio D8
baigėme pritaikyti savo žmonos valdytoją. dabar turime sukurti savo pagrindinę programą.
1. mūsų „Wi -Fi“valdytojas prisijungs prie „Wi -Fi“tinklo naudodami paskutinius naudotus prisijungimo duomenis, jei nepavyks, atidarys „AutoConnectAP“„wifi“serverį. Prisijungę prie šio „wifi“serverio galime sukonfigūruoti naujus „wifi“nusikaltimus, liniją ir perjungimą.
2. tada jis pateks į pagrindinę kilpą.
Mūsų pagrindinę kilpą sudarys dvi dalys. vienas iš jų yra „confi“paprogramė, kai reikia pakeisti liniją, perkelti arba pridėti bet kokius „Wi -Fi“prisijungimo duomenis, kad būtų galima sukonfigūruoti paklausos režimo AP. tai bus iškviesta, kai bus paspaustas mygtukas, prijungtas prie D8 kaiščio.
void loop () {
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Laukiama konfigūracijos mygtuko būsenos …");
//display.print("Laukti ");
if (digitalRead (TRIGGER_PIN) == HIGH)
{
display.print („Conf“); // „WiFiManager“
// Vietinė intializacija. Baigus verslą, nereikia jo laikyti aplink „WiFiManager wifiManager“;
// iš naujo nustatyti nustatymus - bandymams
//wifiManager.resetSettings ();
// nustato laiką, kol konfigūracijos portalas bus išjungtas // naudinga, kad visa tai būtų bandoma iš naujo arba užmigti // per kelias sekundes
//wifiManager.setTimeout(120);
// jis pradeda prieigos tašką nurodytu pavadinimu
// čia "AutoConnectAP" // ir eina į blokavimo ciklą, laukiantį konfigūracijos
// BE ŠIO APTARBAS NEMATYTI DIRBTI SU SDK 1.5, atnaujinkite bent į 1.5.1 //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("nepavyko prisijungti ir patekti į skirtąjį laiką"); vėlavimas (3000); // atstatyti ir bandyti dar kartą, o gal užmigdyti ESP.reset (); vėlavimas (5000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Pagrindinė kilpa "); //display.clear ();
}
Antroji bus mūsų pagrindinė programa, skirta gauti HTTP atsakymą iš konkretaus serverio ir rodyti įvesties kiekį ekrane.
Norėdami tai padaryti, pirmiausia turime gauti išsamią linijos ir poslinkio informaciją iš ESP „Flash“saugyklos (adresas 0-> eilutė, 50-> pamaina)
EEPROM.pradis (100); // eeprom storageEEPROM.get (0, eilutė); // gauti vertę iš 0 adreso
EEPROM.get (50, pamaina); // Gaukite vertę iš 50 adreso
tada mes turime perduoti šią eilutę ir perkelti informaciją į mūsų http serverį gavimo metodu, kad gautume įvesties ir išvesties vertę.
Eilutė Base_url = "pašalinta"; // mano bazinis urlHTTPClient http; // HTTPClient klasės objektas
Eilutės URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // tai bus atspausdinta visa http atsakymo eilutė;
jei norite, kaip visas tekstas, tada jūsų darbas bus baigtas čia, mes galime tiesiogiai jį parodyti tm1637 ekrane.
display.print (http.getString ());
Bet aš nenoriu rodyti viso teksto, nes jame yra įvestis, išvestis json pavidalu ir kitas bendras tekstas apie jo duomenų bazę ir kt.
todėl pirmiausia pašalinau tą bendrą tekstą iš atsakymo eilutės, naudodamas funkciją Substring ().
suskaičiavau bendro teksto ilgį ir jį sutrumpinau.
if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument root (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
Styga json_string = http.getString (). Antrinė eilutė (121); /* tai yra mano bendro teksto poslinkis, jei jūsų atsakymas neturi tokio dalyko, kaip galite pašalinti šį kodą; */
//Serial.println(json_string);
DeserializationError klaida = deserializeJson (šaknis, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
jei (klaida)
{Serial.print (F ("deserializeJson () nepavyko:"));
Serial.println (error.c_str ());
grįžti;
}
Kitas{
const char* įvestis = šaknis ["input"];
const char* output = root ["output"];
Serial.print („Įvestis:“);
Serial.println (įvestis);
Serial.print ("Išvestis:");
Serial.println (išvestis);
display.print (".. in..");
display.clear (); // išvalyti ekraną
display.print (įvestis); // spausdinti KAS KEIČIŲ SKAIČIUS
}
tai mūsų pagrindinė programa baigta.
5 veiksmas: žiniatinklio serverio kūrimas
Aš naudoju „xampp“kaip žiniatinklio tarnybą ir PHP kodą, kad gaučiau duomenis iš savo SQL duomenų bazės, kad gaučiau tikslų kiekį.
Bet negaliu pasidalinti visais originaliais jo kodais. nes tai mano įmonės konfidencialumas. bet aš parodysiu, kaip sukurti vieną žiniatinklio serverį, parodysiu netikrą statinį įvesties ir išvesties kiekį.
Tam jums reikia bet kurio žiniatinklio prieglobos, aš čia naudoju xampp kaip savo pagrindinį kompiuterį.
xampp galite atsisiųsti čia.
įdiegti xampp … jei jums reikia aiškios instrukcijos, galite naudoti šią nuorodą.
Įdiegę „xampp“turite eiti į savo šakninį katalogą.
C: / xampp / htdocs
visos jūsų php programos turėtų būti šios šaknies viduje.
sukūriau savo puslapį pavadinimu esp_api.php
tai mano php kodas. čia aš tik rodau statines įvesties ir išvesties reikšmes;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
echo („myString“); // bendras tekstas
if ($ line == 'a0401' ir $ 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;
Dabar mūsų HTTP atsako API baigta.
Mūsų http bazės URL bus panašus
you_ip_address/esp_api.php
galite patikrinti savo API atsakymo tekstą
localhost/esp_api.php? line = a0401 & shift = dd
čia aš minėjau eilutę kaip a0401 ir pamainą kaip dd.
6 žingsnis: paskutinis žingsnis !
Įveskite savo kompiuterio IP adresą į bazinį URL
Eilutė Base_url = "pašalinta"; // jūsų bazinis URL
ir įkelkite į savo ESP nodemcu. Baigę tiesiog įjunkite „Wi -Fi“iš savo mobiliojo ar nešiojamojo kompiuterio, gausite tinklą, vadinamą „AutoConnectAP“. prisijunkite prie jo ir įveskite savo kredencialus ir eilutės konfigūracijas.
Tada iš naujo nustatykite įrenginį ir patikrinkite, ar jūsų tinklas prijungtas, kai jis bus prijungtas, tada viskas bus padaryta.
Galite matyti, kad įvestis rodoma ekrane.
jei norite pakeisti bet kurią eilutę ar „Wi -Fi“prisijungimo duomenis, galite keletą sekundžių paspausti jungiklį, ekrane rodoma konf.
įjungėte „demandAP“režimą. galite pakeisti ir iš naujo nustatyti įrenginį.
Pagrindinis jo pamokomas moto parodys jums, kaip galime panaudoti savo pomėgių ir pramogų projektus realioje gamybos ir gamybos srityje bei parodyti
Rekomenduojamas:
„Bluetooth“valdomas „Messenger“skystųjų kristalų ekranas -- 16x2 skystųjų kristalų ekranas -- Hc05 -- Paprasta -- Belaidžio ryšio skelbimų lenta: 8 žingsniai
„Bluetooth“valdomas „Messenger“skystųjų kristalų ekranas || 16x2 skystųjų kristalų ekranas || Hc05 || Paprasta || Belaidžio ryšio skelbimų lenta: …………………………. Prenumeruokite mano „YouTube“kanalą, kad gautumėte daugiau vaizdo įrašų …… ………………………………… Skelbimų lenta naudojama žmonėms atnaujinti nauja informacija arba jei norite išsiųsti pranešimą kambaryje arba po
TTGO (spalvotas) ekranas su mikropitonu (TTGO T-ekranas): 6 žingsniai
TTGO (spalvotas) ekranas su „Micropython“(TTGO T-ekranas): „TTGO T-Display“yra plokštė, pagrįsta ESP32, kurioje yra 1,14 colio spalvotas ekranas. Lentą galima nusipirkti už mažesnį nei 7 USD prizą (įskaitant pristatymą, prizas matomas „banggood“). Tai neįtikėtinas prizas už ESP32, įskaitant ekraną. T
„Arduino Mega RJ45“kištukai kabelių valdymui: 5 žingsniai
„Arduino Mega RJ45“kištukai kabelių valdymui: „Arduino Mega“turi daugybę kaiščių - tai didelė priežastis pirkti, tiesa? Mes norime naudoti visus tuos kaiščius! Vis dėlto laidai gali greitai tapti spagečių netvarka be kabelio valdymo. Mes galime sutvirtinti laidus naudodami eterneto kištukus. Duomenys prisegti
Įsilaužimas į žaislinę kraną „Micro: bit“valdymui: 9 žingsniai
Įsilaužimas į žaislinę kraną, skirtą „Micro: bit Control“: šiame žingsnis po žingsnio vadove mes jums padėsime pritaikyti žaislinį kraną, kad jį būtų galima valdyti naudojant „BBC micro: bit“, naudojant „Kitronik“variklio tvarkyklę, skirtą „BBC micro“: bit ir „BBC micro: bit“įmontuotas akselerometras, skirtas aptikti pakreipimą
„Strobe Blacklight“įsilaužimas, skirtas nuolatiniam ir išoriniam valdymui: 5 žingsniai (su nuotraukomis)
„Strobe Blacklight“įsilaužimas, skirtas nuolatiniam įjungimui ir išoriniam valdymui: kiekvienais metais didžiosios dėžių parduotuvės parduoda „Strobe“juodus žibintus, pagamintus naudojant UV šviesos diodus. Šone yra rankenėlė, kuri kontroliuoja stroboskopo greitį. Jie yra įdomūs ir nebrangūs, tačiau jiems trūksta nuolatinio įjungimo režimo. Be to, būtų malonu valdyti apšvietimą