Talaan ng mga Nilalaman:
- Hakbang 1: Ginamit ang Mga Bahagi at Kasangkapan:
- Hakbang 2: Pagpapasadya ng Wifi Manager
- Hakbang 3: Mga Pasadyang Pag-andar para sa Pagkilos ng Form
- Hakbang 4: Mga Koneksyon at Pangunahing Program
- Hakbang 5: Lumilikha ng Web Server
- Hakbang 6: Pangwakas na Hakbang !!
Video: Ipakita ang WIFI para sa Pamamahala ng Produksyon: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Ako ay maliit na Serye tungkol sa IOT at Single board computer.
Palagi kong hinahangad na gamitin ito lampas sa Mga Proyekto sa Libangan at Kasayahan (tunay na Produksyon at Paggawa).
Ang Instructable na ito ay malapit nang Lumikha ng 4 na digit na 7-segment na display ng WIFI na may ESP nodemcu upang Ipakita ang oras-oras na Pag-input ng Produksyon. Nagtatrabaho ako sa industriya ng pagmamanupaktura ng Elektronika, kung saan ginagamit namin ang System ng Pagpapatupad ng Paggawa (MES) upang Subaybayan at Kontrolin ang Pag-input, Paglabas at Proseso ng Production Production Floor. Sa proyektong ito Lumilikha ako ng Maliit na yunit ng pagpapakita na magpapakita ng dami ng input ng Production ayon sa bawat linya, paglilipat at oras.
Sa panteknikal na ang Project na ito ay katulad ng isang display ng count ng Subscriber ng Youtube, kung saan gumagamit kami ng tugon ng API / HTTP mula sa online. Ngunit dito lilikha kami ng aming sariling api upang makipag-ugnay sa aming lokal na system ng MES upang Kumuha ng dami ng Input.
Hakbang 1: Ginamit ang Mga Bahagi at Kasangkapan:
Ginamit ang Mga Bahagi ng Hardware:
- ESP nodemcu
- TM1637 4 na digit na orasan Ipakita
- Push switch
- 10k risistor
- ilang mga jumper wires
Ginamit ang Mga Tool ng Software:
- Arduino IDE
- Xampp para sa PHP / Apache web server
Ginamit ang Arduino Library:
1. Wifi manager ni tzapu & i Customized para sa aking pasadyang mga filed (wifimanager)
2. ESP_EEPROM para sa pagtatago ng aking mga pasadyang halaga sa memorya ng Flash
3. SevenSegmentTM1637 Para sa Ipakita
Hakbang 2: Pagpapasadya ng Wifi Manager
Sa Una na ito nag-install muna ako ng wifi manager at pagkatapos ay Kinopya ko ang Wifi manager Folder at ipinasa muli sa Same sa folder ng Arduino library, pagkatapos ay pinalitan ng pangalan bilang WiFiManager_custom.
Direktoryo ng Folder Root Karamihan sa gusto
C: / Mga Gumagamit / iyong pangalan ng computer / Mga Dokumento / Arduino / aklatan
Pagkatapos ay binuksan ko ang wifimanager_custom folder at pinalitan ang pangalan ng
At Idinagdag ang aking Pasadyang Form at Button sa header.
sa HTTP_PORTAL_OPTIONS PROGMEM idinagdag ko ang aking form sa pindutan para sa Menu.
at nagdagdag ng bagong Form para sa pagpasok ng linya at shift. nilikha ko ang form na ito bilang simpleng form ng teksto.
Pagkatapos nito ay lilikha kami ng mga pagpapaandar ng pagkilos para sa mga form na ito sa.cpp file, para doon kailangan nating gawin ang pagdeklara ng pagpapaandar sa header file.
/ * aking mga pasadyang pagpapaandar * /
walang bisa ang hawakanCustomForm (); walang bisa ang hawakanCustomSave ();
idineklara ko ang aking pasadyang mga pagpapaandar sa header file. na ito, tapos na ang aming trabaho sa header kailangan naming pumunta kasama ang.cpp file upang likhain ang aming pag-andar at mga pagkilos.
Hakbang 3: Mga Pasadyang Pag-andar para sa Pagkilos ng Form
Ngayon ay binubuksan namin ang aming wifimanager_custom.cpp file.
at kailangan naming idagdag ang aming tagapamahala ng tugon sa http upang tawagan ang aming mga pag-andar kapag ang aming form ay nai-post.
server-> on (String (F ("/ custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // ANG aking pasadyang hawakan
server-> on (String (F ("/ custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // ANG aking pasadyang hawakan
tatawagan nito ang aming mga pasadyang pagpapaandar kapag na-post ang form.
1.handleCustomForm () -> lilikha ng isang pahina gamit ang aming pasadyang form para sa linya at i-shift ang pindutan ng pag-save.
2.handleCustomSave () -> ang pagpapaandar na ito ay makakakuha ng mga halaga ng form at mag-iimbak sa mga lokasyon ng memorya ng Flash na 0 (linya) at 50 (shift).
Hakbang 4: Mga Koneksyon at Pangunahing Program
Ang mga koneksyon ay napaka-simple..
Mga koneksyon at kable:
nodemcu TM1637 Ipakita
3.3v ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
nodemcu- push switch
- pushbutton na nakakabit sa pin D8 mula sa + 5V - 10K risistor na nakakabit sa pin D8 mula sa lupa
natapos namin ang pagpapasadya ng aming wifimanager. ngayon kailangan nating lumikha ng aming pangunahing programa.
1. ang aming wifi manager ay Makikonekta sa wifi network na may huling ginamit na mga kredensyal upang kumonekta, kung nabigo ito ay bubukas ang isang AutoConnectAP wifi server. Maaari nating mai-configure ang mga bagong kriminal sa wifi, linya at paglilipat sa pamamagitan ng pagkonekta sa wifi server na ito.
2. pagkatapos ay papasok ito sa pangunahing loop.
Maglalaman ang aming pangunahing loop ng dalawang bahagi. ang isa ay confi subroutine kapag kailangan naming baguhin ang linya, ilipat o magdagdag ng anumang kredensyal sa wifi upang tawagan ang demand mode AP upang i-configure. tatawagin ito kapag ang isang pindutan ng push na konektado sa pin ng D8 ay Pinindot.
void loop () {
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Naghihintay Para sa Katayuan ng pindutan ng Config …");
//display.print("Wait ");
kung (digitalRead (TRIGGER_PIN) == TAAS)
{
display.print ("Conf"); // WiFiManager
// Local intialization. Kapag tapos na ang negosyo, hindi na kailangang panatilihin ito sa paligid ng WiFiManager wifiManager;
// reset setting - para sa pagsubok
//wifiManager.resetSettings ();
// nagtatakda ng timeout hanggang sa naka-off ang portal ng pagsasaayos // kapaki-pakinabang upang gawin itong muli subukang muli o matulog // sa mga segundo
//wifiManager.setTimeout(120);
// nagsisimula ito ng isang access point na may tinukoy na pangalan
// dito "AutoConnectAP" // at papunta sa isang pag-block ng loop na naghihintay ng pagsasaayos
// NG WALANG ITO ANG AP AY HINDI GUMAGAWA NG PROPERLY NG SDK 1.5, i-update sa hindi bababa sa 1.5.1 //WiFi.mode(WIFI_STA);
kung (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("nabigong kumonekta at ma-hit ang timeout"); pagkaantala (3000); // reset at subukang muli, o marahil ilagay ito sa mahimbing na pagtulog ng ESP.reset (); pagkaantala (5000); }}
//Serial.println("Mga katayuan ng pindutan Maling. Balik sa Pangunahing loop "); //display.print("Main loop "); //display.clear ();
}
Ang pangalawa ay ang aming pangunahing programa upang makakuha ng tugon sa HTTP mula sa partikular na server at Ipakita ang dami ng pag-input sa Display.
Para sa Una na ito kailangan naming makuha ang aming linya at detalye ng paglilipat mula sa Flash na imbakan ng ESP (address 0-> linya, 50-> shift)
EEPROM.begin (100); // eeprom storageEEPROM.get (0, linya); // kumuha ng Halaga mula sa address 0
EEPROM.get (50, shift); // Kumuha ng Halaga Mula sa address 50
pagkatapos ay kailangan nating ipasa ang mga detalye ng linya at paglilipat sa aming http server sa pamamagitan ng pagkuha ng pamamaraan upang makuha ang halaga ng pag-input at output.
String Base_url = "tinanggal"; // my base urlHTTPClient http; // Bagay ng klase
String URL = Base_url + "?" + "Line =" + line + "& shift =" + shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // ililimbag nito ang lahat ng string ng pagtugon sa
kung nais mo kung paano ang lahat ng teksto pagkatapos ang iyong trabaho ay tapos na dito ito sa sarili maaari nating direktang ipakita ito sa tm1637 display.
display.print (http.getString ());
Ngunit hindi ko nais na ipakita ang lahat ng teksto, dahil naglalaman ito ng input, output sa json form at ilang iba pang pangkalahatang teksto tungkol sa database at etcs.
kaya't tinanggal ko muna ang pangkalahatang teksto na iyon mula sa string ng pagtugon sa pamamagitan ng paggamit ng Substring () na pagpapaandar.
binilang ko ang haba ng pangkalahatang teksto at pinutol ito.
kung (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); Ugat ng DynamicJsonDocument (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
String json_string = http.getString (). Substring (121); / * ito ang aking offset ng pangkalahatang teksto kung ang iyong pagtugon ay walang anumang bagay tulad na maaari mong alisin ang code na ito; * /
//Serial.println(json_string);
Error sa DeserializationError = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
kung (error)
{Serial.print (F ("deserializeJson () bigo:"));
Serial.println (error.c_str ());
bumalik;
}
iba pa {
const char * input = root ["input"];
const char * output = root ["output"];
Serial.print ("Input:");
Serial.println (input);
Serial.print ("Output:");
Serial.println (output);
display.print (".. in..");
display.clear (); // limasin ang display
display.print (input); // print COUNTING SOME DIGITS
}
iyon ang aming pangunahing programa ay tapos na.
Hakbang 5: Lumilikha ng Web Server
Gumagamit ako ng xampp bilang aking web service at PHP code upang makakuha ng data mula sa aking SQL database upang makakuha ng eksaktong dami.
Ngunit hindi ko maibabahagi ang lahat ng mga orihinal na code nito. dahil ang pagiging kompidensiyal nito ng aking kumpanya. ngunit ipapakita ko kung paano lumikha ng isang web server, ipakita ang dummy static input at output dami.
Para sa mga ito kailangan mong kailanganin ang anumang web host, gumagamit ako dito bilang aking host.
maaari kang mag-download ng xampp dito.
i-install ang xampp… kung kailangan mo ng malinaw na tagubilin maaari mong gamitin ang link na ito.
Pagkatapos i-install ang xampp kailangan mong pumunta sa iyong direktoryo ng ugat.
C: / xampp / htdocs
lahat ng iyong mga programa sa php ay dapat nasa loob ng ugat na ito.
nilikha ko ang aking pahina sa pangalang tinatawag na esp_api.php
ito ang aking php code. narito ako ay nagpapakita lamang ng mga static na halaga ng pag-input at output;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
echo ("myString"); // pangkalahatang Teksto
kung ($ line == 'a0401' at $ shift = 'dd') {$ resulta ['input'] = 100; $ resulta ['output'] = 99; }
iba pa {$ resulta ['input'] = 200; $ resulta ['output'] = 199; }
$ myObj-> input = ''. $ resulta ['input']. '';
$ myObj-> output = ''. $ resulta ['output']. '';
$ myJSON = json_encode ($ myObj);
echo $ myJSON;
Ngayon ang aming HTTP response API ay tapos na.
Ang aming http base url ay magiging katulad
you_ip_address / esp_api.php
maaari mong suriin ang iyong teksto ng tugon sa API sa pamamagitan ng
localhost/esp_api.php? line = a0401 & shift = dd
dito nabanggit ko ang linya bilang a0401 at ilipat bilang dd.
Hakbang 6: Pangwakas na Hakbang !!
Ipasok ang iyong computer ip address sa Base URL
String Base_url = "tinanggal"; // iyong base url
at I-upload sa iyong ESP nodemcu. Kapag natapos mo na lang i-on ang iyong wifi mula sa iyong mobile o laptop, makakakuha ka ng network na tinatawag na AutoConnectAP. kumonekta dito at ipasok ang iyong mga kredensyal at linya na config.
Pagkatapos ay i-reset ang iyong aparato at suriin sa iyong network ay konektado sa sandaling ito ay konektado pagkatapos ng bawat bagay ay tapos na.
Maaari mong makita ang input ay ipinapakita sa display.
kung nais mong baguhin ang anumang linya o kredensyal ng wifi maaari mong pindutin ang push switch nang ilang segundo, ipinapakita ang display confi.
pumasok ka sa demandAP mode. maaari mong baguhin at i-reset ang aparato.
Ang pangunahing moto ng kanyang itinuro na ipakita sa iyo kung paano namin magagamit ang aming libangan at mga nakakatuwang proyekto sa totoong lugar ng paggawa at pagmamanupaktura at palabas
Inirerekumendang:
Ang Shelly EM Auto Toggle Batay sa Produksyon ng Solar Panels: 6 na Hakbang
Ang Shelly EM Auto Toggle Batay sa Production ng Solar Panels: P1: pagkonsumo ng bahay (hal " P1 = 1kW " ⇒ kumokonsumo kami ng 1kW) P2: paggawa ng solar panels (hal " P2 = - 4kW " ⇒ gumagawa kami ng 4kW) Ang elektrisidad ang heater ay kumokonsumo ng 2kW kapag naka-on. Gusto naming i-on ito kung ang solar panel ay nag-
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Ang Batas ni Lenz at ang Tamang Pamamahala ng Kamay: 8 Hakbang (na may Mga Larawan)
Lenz's Law and the Right Hand Rule: Ang modernong mundo ay hindi magkakaroon ngayon kung walang electromagnets; halos lahat ng ginagamit natin ngayon ay tumatakbo sa mga electromagnet sa isang paraan o sa iba pa. Ang memorya ng hard drive sa iyong computer, ang speaker sa iyong radyo, ang starter sa iyong kotse, lahat ay gumagamit ng electromag
Paano Gumawa ng isang Bumpin 'Electronic Track: Panimulang Produksyon ng Musika para sa FL Studio: 6 na Hakbang
Paano Gumawa ng isang Bumpin 'Electronic Track: Panimulang Produksyon ng Musika para sa FL Studio: Maligayang pagdating! Ang tagubilin na Makatuturo na ito ay makakatulong sa nagsisimula upang magitan ang mga tagagawa ng musika sa paggamit ng FL Studio upang lumikha ng iba't ibang mga genre ng Electronic Dance Music. Tatakbo ito sa pamamagitan ng mga pangunahing elemento ng paglikha ng isang kanta, na may layunin na detalyado ang mga pangunahing tip
Paano Itakda ang Samsung Galaxy S7 Sa Android 8.0 upang Ipakita lamang ang Screen para sa Isang App !!: 5 Mga Hakbang
Paano Itakda ang Samsung Galaxy S7 Sa Android 8.0 upang Ipakita lamang ang Screen para sa Isang App !!: Ipapakita sa iyo ng Instructable na ito kung paano i-set ang iyong samsung galaxy s7 upang ipakita ang screen para sa isang app lamang. Mahusay ito kung mayroon kang isang sanggol / anak na gustong maglaro sa iyong telepono o nais na tiyakin na ang iyong telepono ay mananatili sa isang app lamang kapag may ibang tao