Përmbajtje:
- Hapi 1: Pjesët dhe mjetet e përdorura:
- Hapi 2: Personalizimi i Menaxherit Wifi
- Hapi 3: Funksionet e personalizuara për veprimin e formularit
- Hapi 4: Lidhjet & Programi Kryesor
- Hapi 5: Krijimi i Web Serverit
- Hapi 6: Hapi i fundit !!
Video: Ekrani WIFI për Menaxhimin e Prodhimit: 6 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:19
Unë jam pak Seri për kompjuterët IOT dhe Single Board.
Unë gjithmonë dëshiroj ta përdor atë përtej Hobby & Fun Projects (Prodhim dhe Prodhim i vërtetë).
Ky Instructable është gati për Krijimin e ekranit 4-shifror 7-segmentësh WIFI me ESP nodemcu për të shfaqur hyrjen në orë të prodhimit. Unë jam duke punuar në industrinë prodhuese të elektronikës, ku ne përdorim Sistemin e Ekzekutimit të Prodhimit (MES) për të monitoruar dhe kontrolluar hyrjen, daljen dhe procesin e dyshemesë së prodhimit. Në këtë projekt unë jam duke krijuar njësi të vogël të ekranit e cila do të tregojë sasinë e prodhimit të prodhimit sipas rreshtit, ndërrimit dhe orës.
Në aspektin teknik, ky projekt është i ngjashëm me një ekran të numërimit të pajtimtarëve në Youtube, ku ne përdorim përgjigjen API/HTTP nga interneti. Por këtu ne do të krijojmë api -në tonë për të bashkëvepruar me sistemin tonë lokal të MASH -it për të marrë sasinë e hyrjes.
Hapi 1: Pjesët dhe mjetet e përdorura:
Pjesët e harduerit të përdorura:
- ESP nodemcu
- TM1637 Orë me 4 shifra Ekran
- Çelës shtytës
- Rezistencë 10k
- pak tela kërcyes
Mjetet Softuerike të Përdorura:
- Arduino IDE
- Xampp për serverin e uebit PHP/Apache
Biblioteka Arduino përdoret:
1. Menaxher Wifi nga tzapu & i Përshtatur për dosjet e mia me porosi (wifimanager)
2. ESP_EEPROM për ruajtjen e vlerave të mia të personalizuara në Flash memorie
3. SevenSegmentTM1637 Për ekran
Hapi 2: Personalizimi i Menaxherit Wifi
Në këtë Së pari unë instalova menaxherin wifi së pari dhe pastaj kopjova Dosjen e menaxherit Wifi dhe kalova përsëri në të njëjtën në dosjen e bibliotekës Arduino, pastaj u riemërova si WiFiManager_custom.
Drejtoria e dosjeve Root Kryesisht pëlqen
C: / Përdoruesit / emri i kompjuterit tuaj / Documents / Arduino / bibliotekat
Pastaj hapa dosjen wifimanager_custom dhe u riemërtova header.cpp file njësoj si wifimanager_custom, e shtuar njëjtë në skedarët e header &.cpp gjithashtu.
Dhe shtova Formularin dhe Butonin tim të personalizuar në kokë.
në HTTP_PORTAL_OPTIONS PROGMEM shtova formularin tim të butonit për Menunë.
dhe shtoi Formularin e ri për hyrjen në linjë dhe ndërrim. Unë e krijova këtë formë si formë teksti të thjeshtë.
Pas kësaj ne do të krijojmë funksione veprimi për këto forma në skedarin.cpp, për këtë ne duhet të bëjmë deklarimin e funksionit në skedarin e kokës.
/ * funksionet e mia me porosi */
void handleCustomForm (); void handleCustomSave ();
Unë deklarova funksionet e mia të personalizuara në skedarin e kokës. se ajo, puna jonë në kokë ka mbaruar duhet të shkojmë me skedarin.cpp për të krijuar funksionin dhe veprimet tona.
Hapi 3: Funksionet e personalizuara për veprimin e formularit
Tani ne hapim skedarin tonë wifimanager_custom.cpp.
dhe ne duhet të shtojmë mbajtësin tonë të përgjigjeve http për të thirrur funksionet tona kur formulari ynë është i postuar.
server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // Doreza ime me porosi
server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // Doreza ime me porosi
këto do të thërrasin funksionet tona të personalizuara kur formulari të postohet.
1.handleCustomForm ()-> do të krijojë një faqe me formularin tonë të personalizuar për butonin input & shift & save.
2.handleCustomSave ()-> ky funksion do të marrë vlerat e formës dhe do të ruhet në vendet e kujtesës Flash 0 (rresht) & 50 (zhvendosje).
Hapi 4: Lidhjet & Programi Kryesor
Lidhjet janë shumë të thjeshta..
Lidhjet dhe instalimet elektrike:
nodemcu TM1637 Ekran
3.3v ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- kaloni push
- butoni i bashkangjitur në pin D8 nga +5V - rezistencë 10K e bashkangjitur në pin D8 nga toka
ne përfunduam personalizimin e wifimanager -it tonë. tani duhet të krijojmë programin tonë kryesor.
1. menaxheri ynë wifi do të lidhet me rrjetin wifi me kredencialet e përdorura për herë të fundit për t'u lidhur, nëse dështon hap një server wifi AutoConnectAP. Ne mund të konfigurojmë kritere të reja wifi, linjë dhe zhvendosje duke u lidhur me këtë server wifi.
2. atëherë do të hyjë në lakin kryesor.
Lakri ynë kryesor do të përmbajë dy pjesë. njëra është nën -rutina e konfigurimit kur duhet të ndryshojmë linjën, të ndryshojmë ose të shtojmë ndonjë kredenciale wifi për të thirrur modalitetin e kërkesës AP për të konfiguruar. kjo do të thirret kur Shtypet një buton shtypi i lidhur me pin D8.
lak void () {
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Në pritje të statusit të butonit të konfigurimit …");
//display.print("Prit ");
nëse (digitalRead (TRIGGER_PIN) == LART)
{
display.print ("Conf"); // Menaxher WiFi
// Intializimi lokal. Pasi të jetë bërë biznesi i tij, nuk ka nevojë ta mbani atë rreth WiFiManager wifiManager;
// rivendosni cilësimet - për testim
//wifiManager.resetSettings ();
// cakton afatin kohor derisa portali i konfigurimit të fiket // i dobishëm për t'i bërë të gjitha të provoni përsëri ose të flini // në sekonda
//wifiManager.setTimeout(120);
// fillon një pikë aksesi me emrin e specifikuar
// këtu "AutoConnectAP" // dhe kalon në një lak bllokues në pritje të konfigurimit
// PA KETIS AP AP NUK DUKET T TO PUNOJ SIPAS ME SDK 1.5, përditësoni të paktën 1.5.1 //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("dështoi të lidhet dhe goditi timeout"); vonesë (3000); // rivendosni dhe provoni përsëri, ose ndoshta vendoseni në gjumë të thellë ESP.reset (); vonesa (5000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Laku kryesor "); //display.clear ();
}
E dyta do të jetë programi ynë kryesor për të marrë përgjigje HTTP nga një server i veçantë dhe Shfaq sasinë e hyrjes në Ekran.
Për këtë Së pari ne duhet të marrim detajet e linjës dhe zhvendosjes nga ruajtja Flash e ESP (adresa 0-> rreshti, 50-> ndërrim)
EEPROM.filloj (100); // eeprom storageEEPROM.get (0, rresht); // merrni Vlerën nga adresa 0
EEPROM.get (50, ndërrim); // Merrni Vlerën Nga Adresa 50
atëherë ne duhet të kalojmë këtë linjë dhe të zhvendosim detajet në serverin tonë http me metodën e marrjes për të marrë vlerën e hyrjes dhe daljes.
String Base_url = "u hoq"; // urlHTTPClient im bazë http; // Objekti i klasës
URL -ja e vargut = Baza_url+"?"+"Line ="+linjë+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // kjo do të printojë të gjithë vargun e përgjigjes
nëse doni që të gjithë tekstin, atëherë puna juaj ka përfunduar këtu vetë, ne mund ta shfaqim drejtpërdrejt në ekranin tm1637.
display.print (http.getString ());
Por nuk dua të tregoj të gjithë tekstin, sepse ai përmban hyrje, dalje në formën json dhe ndonjë tekst tjetër të përgjithshëm në lidhje me bazën e të dhënave të tij etj.
kështu që së pari e hoqa atë tekst të përgjithshëm nga vargu i përgjigjes duke përdorur funksionin Substring ().
Unë numërova gjatësinë e tekstit të përgjithshëm dhe e shkurtova atë.
if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); Rrënjë DynamicJsonDocument (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
String json_string = http.getString (). Nën varg (121); /* ky është kompensimi im i tekstit të përgjithshëm nëse përgjigja juaj nuk ka ndonjë gjë të tillë, mund ta hiqni këtë kod; */
//Serial.println(json_string);
Gabim DeserializationError = deserializeJson (rrënjë, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
nëse (gabim)
{Serial.print (F ("deserializeJson () dështoi:"));
Serial.println (error.c_str ());
kthim;
}
tjeter {
const char* input = rrënja ["input"];
const char* output = root ["output"];
Serial.print ("Hyrja:");
Serial.println (input);
Serial.print ("Output:");
Serial.println (dalje);
shfaqje.print (".. në..");
shfaqje.qartë (); // pastroni ekranin
ekran.print (input); // print COUNTING DISA DIGITES
}
kjo është se programi ynë kryesor ka përfunduar.
Hapi 5: Krijimi i Web Serverit
Unë jam duke përdorur xampp si shërbimin tim në internet dhe kodin PHP për të marrë të dhëna nga baza ime e të dhënave SQL për të marrë sasinë e saktë.
Por nuk mund t'i ndaj të gjitha kodet origjinale të tij. sepse konfidencialiteti i kompanisë sime. por unë do të tregoj mënyrën e krijimit të një serveri në internet, shfaqjen e madhësisë dhe hyrjes statike statike.
Për këtë ju duhet të keni ndonjë host në internet, unë jam duke përdorur këtu xampp si hostin tim.
ju mund të shkarkoni xampp këtu.
instaloni xampp … nëse keni nevojë për udhëzime të qarta, mund të përdorni këtë lidhje.
Pas instalimit të xampp ju duhet të shkoni në drejtorinë tuaj rrënjësore.
C: / xampp / htdocs
të gjitha programet tuaja php duhet të jenë brenda kësaj rrënje.
Unë krijova faqen time në emrin e quajtur esp_api.php
ky është kodi im php. këtu po shfaq vetëm vlerat statike të hyrjes dhe daljes;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
jehonë ("myString"); // Tekst i përgjithshëm
if ($ line == 'a0401' dhe $ shift = 'dd') {$ result ['input'] = 100; $ result ['output'] = 99; }
tjetër {$ result ['input'] = 200; $ result ['output'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> output = ''. $ result ['output']. '';
$ myJSON = json_encode ($ myObj);
jehonë $ myJSON;
Tani API -ja jonë e përgjigjes HTTP ka përfunduar.
Url -ja jonë http bazë do të jetë e ngjashme
you_ip_adresa/esp_api.php
mund të kontrolloni tekstin tuaj të përgjigjes API nga
localhost/esp_api.php? line = a0401 & shift = dd
këtu përmenda vijën si a0401 dhe zhvendosjen si dd.
Hapi 6: Hapi i fundit !!
Vendosni adresën IP të kompjuterit tuaj në URL -në bazë
String Base_url = "u hoq"; // url -ja juaj bazë
dhe Ngarko në ESP nodemcu tuaj. Pasi të keni mbaruar, thjesht ndizni wifin tuaj nga celulari ose laptopi juaj, do të merrni një rrjet të quajtur AutoConnectAP. lidheni me të dhe futni konfigurimet tuaja të kredencialeve dhe linjës.
Pastaj rivendosni pajisjen tuaj dhe kontrolloni që rrjeti juaj të jetë lidhur pasi të jetë lidhur, atëherë çdo gjë është bërë.
Mund të shihni që hyrja shfaqet në ekran.
nëse doni të ndryshoni ndonjë linjë ose kredenciale wifi ju mund të shtypni push switch për disa sekonda, ekrani tregon confi.
keni hyrë në modalitetin e kërkesësAP. mund të ndryshoni dhe rivendosni pajisjen.
Motoja kryesore e tij udhëzuese për t'ju treguar se si mund t'i përdorim projektet tona të hobit dhe argëtimit në zonën dhe shfaqjen reale të prodhimit dhe prodhimit
Recommended:
Priza Arduino Mega RJ45 për Menaxhimin e Kabllove: 5 Hapa
Priza Arduino Mega RJ45 për Menaxhimin e Kabllove: Arduino Mega ka shumë kunja - kjo është një arsye e madhe për të blerë një, apo jo? Ne duam t'i përdorim të gjitha ato kunjat! Instalimet elektrike mund të bëhen shpejt një rrëmujë spageti pa menaxhimin e kabllove, megjithatë. Ne mund të konsolidojmë telat duke përdorur priza Ethernet. Të dhënat futen në
D4E1: Mjeti i leximit 2.0 (Procesi i avancuar i prodhimit): 9 hapa
D4E1: Mjeti i leximit 2.0 (Procesi i avancuar i prodhimit): Informacion:-Dy studentë Dizajni i produktit industrial në Kortrijk (Belgjikë) doli me këtë mjet leximi. Ne filluam bazuar në një model ekzistues dhe e kemi zhvilluar atë në një dizajn tjetër. Mjeti i leximit fillimisht është zhvilluar për një klimë
PCB që ndihmon me menaxhimin e kabllove: 6 hapa (me fotografi)
PCB që ndihmon me menaxhimin e kabllove: Pak kohë më parë kam bërë një mulli CNC të personalizuar të desktopit. Që atëherë unë jam duke e përmirësuar atë me përbërës të rinj. Herën e fundit kam shtuar një Arduino të dytë me ekran 4 shifror për të kontrolluar RPM të gishtit tim duke përdorur lakun PID. Më duhej ta lidhja me derrin kryesor Arduino
POMODORO TECHNIQUE TIMER - P USRDORIMI I LART I PAJISJES HARDWARE PAGR MENAXHIMIN E KOHS: 4 hapa
POMODORO TECHNIQUE TIMER - P USRDORIMI I LART I PAJISJES HARDWARE P MANR MENAXHIMIN E KOHS: 1. Çfarë është kjo? Teknika pomodoro është një aftësi e menaxhimit të kohës që ndan kohën e punës në bllok 25 minuta dhe ndjek kohën e thyerjes 5 minuta. detajet si më poshtë: https: //francescocirillo.com/pages/pomodoro-techni..Ky kohëmatës është i lehtë për t’u përdorur
D4E1: Mjeti i leximit 2.0 (Procesi bazë i prodhimit): 9 hapa (me fotografi)
D4E1: Mjeti i leximit 2.0 (Procesi bazë i prodhimit): Informacion:-Dy studentë Dizajni i produktit industrial në Kortrijk (Belgjikë) doli me këtë mjet leximi. Ne filluam bazuar në një model ekzistues dhe e kemi zhvilluar atë në një dizajn tjetër. Mjeti i leximit fillimisht është zhvilluar për një klimë