Sadržaj:
- Korak 1: Korišteni dijelovi i alati:
- Korak 2: Prilagođavanje Wifi Managera
- Korak 3: Prilagođene funkcije za radnju obrasca
- Korak 4: Veze i glavni program
- Korak 5: Stvaranje web poslužitelja
- Korak 6: Završni korak !
Video: WIFI zaslon za upravljanje proizvodnjom: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Ja sam mala serija o IOT i single board računalima.
Uvijek ga želim koristiti izvan hobi i zabavnih projekata (stvarna proizvodnja i proizvodnja).
Ovaj Instructable sprema se stvoriti 4-znamenkasti 7-segmentni WIFI zaslon s ESP nodemcuom za prikaz unosa proizvodnje po satu. Radim u prerađivačkoj industriji elektronike, gdje koristimo Sustav izvršenja proizvodnje (MES) za nadgledanje i kontrolu ulaznih, izlaznih i proizvodnih podova. U ovom projektu stvaram malu prikaznu jedinicu koja će prikazati količinu ulazne proizvodnje prema retku, smjeni i satu.
Tehnički je ovaj projekt sličan zaslonu za prikaz broja pretplatnika na YouTubeu, gdje koristimo API/HTTP odgovor s interneta. No ovdje ćemo stvoriti vlastiti API za interakciju s našim lokalnim MES sustavom za dobivanje količine unosa.
Korak 1: Korišteni dijelovi i alati:
Korišteni dijelovi hardvera:
- ESP nodemcu
- TM1637 4 -znamenkasti satni zaslon
- Pritisnite prekidač
- 10k otpornik
- nekoliko kratkospojnih žica
Korišteni softverski alati:
- Arduino IDE
- Xampp za PHP/Apache web poslužitelj
Korištena je Arduino knjižnica:
1. Wifi manager by tzapu & i Prilagođeno za moje prilagođene datoteke (wifimanager)
2. ESP_EEPROM za spremanje prilagođenih vrijednosti u Flash memoriju
3. SevenSegmentTM1637 Za prikaz
Korak 2: Prilagođavanje Wifi Managera
U ovo prvo sam prvo instalirao wifi manager, a zatim sam kopirao mapu Wifi upravitelja i ponovo prošao u isto u mapi Arduino knjižnice, zatim preimenovan u WiFiManager_custom.
Mapa Root direktorij Uglavnom sviđa
C: / Users / ime vašeg računala / Documents / Arduino / libraries
Zatim sam otvorio mapu wifimanager_custom i preimenovao datoteku zaglavlja.cpp isto kao wifimanager_custom, dodao isto u datoteke zaglavlja i.cpp.
I dodao moj prilagođeni obrazac i gumb u zaglavlje.
u HTTP_PORTAL_OPTIONS PROGMEM dodao sam obrazac gumba za Izbornik.
i dodan novi obrazac za unos linije & shift. stvorio sam ovaj obrazac kao jednostavan tekstualni oblik.
Nakon toga ćemo stvoriti akcijske funkcije za ove obrasce u.cpp datoteci, za to moramo napraviti deklaraciju funkcije u datoteci zaglavlja.
/ * moje prilagođene funkcije */
void handleCustomForm (); void handleCustomSave ();
deklarirao sam svoje prilagođene funkcije u datoteci zaglavlja. da je to, naš rad u zaglavlju je završen, moramo krenuti s.cpp datotekom da bismo stvorili svoju funkciju i radnje.
Korak 3: Prilagođene funkcije za radnju obrasca
Sada otvaramo datoteku wifimanager_custom.cpp.
i moramo dodati naš rukovatelj http odgovora da pozove naše funkcije kada je naš obrazac objavljen.
server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, ovo)); // MOJA prilagođena ručka
server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, ovo)); // MOJA prilagođena ručka
te će pozivati naše prilagođene funkcije kada se obrazac objavi.
1.handleCustomForm ()-> stvorit će stranicu s našim prilagođenim obrascem za redak i pomak unosa i gumb za spremanje.
2.handleCustomSave ()-> ova funkcija dobit će vrijednosti obrasca i pohraniti ih u memoriju Flash memorije 0 (redak) & 50 (pomak).
Korak 4: Veze i glavni program
Veze su vrlo jednostavne..
Priključci i ožičenje:
nodemcu TM1637 Zaslon
3,3 V ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- pritisni prekidač
- tipka pričvršćena na pin D8 od +5V - 10K otpornik spojen na pin D8 sa zemlje
dovršili smo prilagodbu našeg wifimanagera. sada moramo stvoriti naš glavni program.
1. naš WiFi upravitelj će se povezati s wifi mrežom s posljednjim korištenim vjerodajnicama za povezivanje, ako ne uspije, otvara Wi -Fi poslužitelj AutoConnectAP. Možemo konfigurirati nove vjerodajnice za WiFi, liniju i pomak povezivanjem na ovaj WiFi poslužitelj.
2. tada će ući u glavnu petlju.
Naša glavna petlja sadržavat će dva dijela. jedna je confi podrutina kada moramo promijeniti liniju, pomaknuti ili dodati bilo koju vjerodajnicu za WiFi za pozivanje AP načina rada za konfiguriranje. to će se pozvati kada se pritisne gumb pritisnut na pin D8.
void loop () {{100} {101}
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Čekanje statusa gumba za konfiguraciju …");
//display.print("Wait ");
if (digitalRead (TRIGGER_PIN) == HIGH)
{
display.print ("Conf"); // WiFiManager
// Lokalna incijalizacija. Nakon što posao završi, nema potrebe držati ga u blizini WiFiManager wifiManager;
// resetiranje postavki - za testiranje
//wifiManager.resetSettings ();
// postavlja vremensko ograničenje do isključivanja konfiguracijskog portala // korisno za ponovni pokušaj ili spavanje // u sekundama
//wifiManager.setTimeout(120);
// pokreće pristupnu točku s navedenim imenom
// ovdje "AutoConnectAP" // i ulazi u blokirajuću petlju koja čeka konfiguraciju
// BEZ OVOA AP NE ČINI SE DA RADI PRAVILNO SA SDK -om 1.5, ažurirajte na najmanje 1.5.1 //WiFi.mode (WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("povezivanje nije uspjelo i vremensko ograničenje je hit"); kašnjenje (3000); // resetirati i pokušati ponovo, ili možda staviti u duboki san ESP.reset (); kašnjenje (5000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Main loop "); //display.clear ();
}
Drugi će biti naš glavni program za dobivanje HTTP odgovora od određenog poslužitelja i prikaz ulazne količine na zaslonu.
Za ovo prvo moramo dobiti detalje o liniji i pomaku iz Flash pohrane ESP-a (adresa 0-> linija, 50-> pomak)
EEPROM.početi (100); // eeprom storageEEPROM.get (0, redak); // dobivamo vrijednost s adrese 0
EEPROM.get (50, smjena); // Dobivanje vrijednosti s adrese 50
onda moramo proslijediti ovu liniju i pomaknuti detalje na naš http poslužitelj metodom get kako bismo dobili vrijednost ulaza i izlaza.
String Base_url = "uklonjeno"; // moj osnovni urlHTTPClient http; // Objekt klase
URL niza = Base_url+"?"+"Linija ="+redak+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // ovo će ispisati sve nizove http odgovora;
ako želite kako sav tekst tada je vaš posao dovršen, možete ga izravno prikazati na zaslonu tm1637.
display.print (http.getString ());
Ali ne želim prikazati sav tekst jer sadrži ulaz, izlaz u json obliku i neki drugi opći tekst o svojoj bazi podataka itd.
pa sam prvo uklonio taj opći tekst iz niza odgovora pomoću funkcije Substring ().
izbrojao sam duljinu općeg teksta i obrezao ga.
if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument korijen (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
Niz json_string = http.getString (). Podniz (121); /* ovo je moj pomak općeg teksta ako vaš odgovor nema ništa slično, možete ukloniti ovaj kôd; */
//Serial.println(json_string);
DeserializationError error = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
ako (greška)
{Serial.print (F ("deserializeJson () nije uspio:"));
Serial.println (pogreška.c_str ());
povratak;
}
drugo{
const char* input = root ["ulaz"];
const char* izlaz = korijen ["izlaz"];
Serial.print ("Ulaz:");
Serial.println (ulaz);
Serial.print ("Izlaz:");
Serial.println (izlaz);
display.print (".. u..");
display.clear (); // brisanje prikaza
display.print (input); // ispis BROJANJE NEKIH CIJENA
}
to je naš glavni program završen.
Korak 5: Stvaranje web poslužitelja
i m Korištenje xampp -a kao web poslužitelja i PHP koda za dobivanje podataka iz moje SQL baze podataka za dobivanje točne količine.
Ali ne mogu podijeliti sve njegove izvorne kodove. jer je njegova povjerljivost moje tvrtke. ali pokazat ću kako stvoriti jedan web poslužitelj, pokazati lažne statičke ulazne i izlazne količine.
Za to bi vam trebao bilo koji web host, ovdje koristim xampp kao svog domaćina.
xampp možete preuzeti ovdje.
instalirajte xampp … ako vam trebaju jasne upute, možete koristiti ovu vezu.
Nakon instalacije xampp morate otići u svoj root direktorij.
C: / xampp / htdocs
svi vaši php programi trebaju biti unutar ovog korijena.
stvorio sam svoju stranicu pod imenom esp_api.php
ovo je moj php kod. ovdje samo prikazujem statičke vrijednosti ulaza i izlaza;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
echo ("myString"); // opći tekst
if ($ line == 'a0401' i $ shift = 'dd') {$ rezultat ['ulaz'] = 100; $ rezultat ['izlaz'] = 99; }
else {$ result ['input'] = 200; $ rezultat ['izlaz'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> output = ''. $ result ['output']. '';
$ myJSON = json_encode ($ myObj);
echo $ myJSON;
Naš API za HTTP odgovor je dovršen.
Naš http bazni url bit će poput
you_ip_address/esp_api.php
svoj tekst odgovora API -ja možete provjeriti do
localhost/esp_api.php? line = a0401 & shift = dd
ovdje sam spomenuo liniju kao a0401 i pomak kao dd.
Korak 6: Završni korak !
Unesite IP adresu računala u osnovni URL
String Base_url = "uklonjeno"; // vaš osnovni url
i prenesite na svoj ESP nodemcu. Kada završite, samo uključite svoj WiFi s mobitela ili prijenosnog računala, dobit ćete mrežu koja se zove AutoConnectAP. povežite se s njim i unesite svoje vjerodajnice i linijske konfiguracije.
Zatim resetirajte uređaj i provjerite je li vaša mreža spojena kada se poveže, onda je sve učinjeno.
Možete vidjeti da je unos prikazan na zaslonu.
ako želite promijeniti bilo koju liniju ili wifi vjerodajnicu, možete pritisnuti prekidač na nekoliko sekundi, na zaslonu se prikazuje potvrda.
ušli ste u način rada demandAP. možete promijeniti i resetirati uređaj.
Glavni moto njegovih instrukcija da vam pokaže kako možemo koristiti naše hobi i zabavne projekte u stvarnom proizvodnom i proizvodnom području i pokazati
Preporučeni:
TTGO (kolor) zaslon s mikropythonom (TTGO T-zaslon): 6 koraka
TTGO (kolor) zaslon s Micropythonom (TTGO T-zaslon): TTGO T-zaslon je ploča temeljena na ESP32 koja uključuje zaslon u boji od 1,14 inča. Ploča se može kupiti za nagradu manju od 7 USD (uključujući dostavu, nagrada viđena na banggood -u). To je nevjerojatna nagrada za ESP32 uključujući zaslon. T
I2C / IIC LCD zaslon - Upotrijebite SPI LCD za I2C LCD zaslon Korištenje SPI do IIC modula s Arduinom: 5 koraka
I2C / IIC LCD zaslon | Upotrijebite SPI LCD na I2C LCD zaslonu Korištenje SPI na IIC modula s Arduinom: Zdravo dečki, budući da normalni SPI LCD 1602 ima previše žica za povezivanje pa je vrlo teško povezati ga s arduinom, ali na tržištu postoji jedan modul koji može pretvoriti SPI zaslon u IIC zaslon pa morate spojiti samo 4 žice
I2C / IIC LCD zaslon - Pretvorite SPI LCD u I2C LCD zaslon: 5 koraka
I2C / IIC LCD zaslon | Pretvorite SPI LCD u I2C LCD zaslon: za korištenje spi lcd zaslona potrebno je previše povezivanja, što je zaista teško učiniti pa sam pronašao modul koji može pretvoriti i2c lcd u spi lcd pa krenimo
Spojite Raspberry Pi na zaslon prijenosnog računala bez LAN kabela ili WIFI -a: 9 koraka
Povežite Raspberry Pi na zaslon prijenosnog računala bez LAN kabela ili WIFI -ja: U ovom ću vodiču pokazati kako možemo povezati Raspberry pi sa zaslonom prijenosnog računala bez LAN kabela ili Wi -Fi -ja. Raspberry Pi ima kompozitnu video izlaznu utičnicu koja podržava četiri različita načina rada1. sdtv_mode = 0 Normalni NTSC2. sdtv_mode = 1 jap
UPRAVLJANJE I UPRAVLJANJE BRZINOM DC MOTORA KORIŠĆENJEM LABVIEW (PWM) I ARDUINA: 5 koraka
UPUTSTVO I UPRAVLJANJE BRZINOM DC MOTORA KORIŠĆENJEM LABVIEW (PWM) I ARDUINO: Pozdrav momci, prije svega žao mi je zbog mog smiješnog engleskog jezika. U ovom uputstvu pokazat ću vam kako kontrolirati brzinu istosmjernog motora pomoću laboratorijskog pregleda Počnimo