Агуулгын хүснэгт:
- Алхам 1: Ашигласан эд анги, багаж хэрэгсэл:
- Алхам 2: Wifi менежерийг тохируулах
- Алхам 3: Маягт үйлдлийн захиалгат функцууд
- Алхам 4: Холболт ба үндсэн програм
- Алхам 5: Вэб сервер үүсгэх
- Алхам 6: Эцсийн алхам !
Видео: Үйлдвэрлэлийн менежментийн WIFI дэлгэц: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Би IOT болон дан самбарын компьютерын талаар бага зэрэг цуврал юм.
Би үүнийг хобби ба хөгжилтэй төслүүдээс (бодит үйлдвэрлэл ба үйлдвэрлэл) гадна ашиглахыг үргэлж хүсч байна.
Энэхүү зааварчилгаа нь ESP nodemcu бүхий 4 оронтой 7 сегмент бүхий WIFI дэлгэцийг бүтээх бөгөөд үйлдвэрлэлийн үйлдвэрлэлийн оролтыг харуулах болно. Би үйлдвэрлэлийн шалны оролт, гаралт, процессыг хянах, хянах зорилгоор Үйлдвэрлэлийн Гүйцэтгэх Системийг (MES) ашигладаг электроникийн үйлдвэрлэлийн салбарт ажилладаг. Энэ төсөлд би үйлдвэрлэл, оролтын хэмжээг шугам, ээлжинд, цаг тутамд харуулах жижиг дэлгэцийн нэгжийг бий болгож байна.
Техникийн хувьд энэ төсөл нь Youtube -ийн захиалагчдын тоог харуулахтай төстэй бөгөөд энд бид API/HTTP хариултыг онлайнаар ашигладаг боловч энд бид өөрийн орон нутгийн MES системтэй харилцах оролтыг авахын тулд өөрийн api бүтээх гэж байна.
Алхам 1: Ашигласан эд анги, багаж хэрэгсэл:
Ашигласан техник хангамжийн хэсгүүд:
- ESP зангилаа
- TM1637 4 оронтой цаг Дэлгэц
- Түлхүүрийг дарна уу
- 10к эсэргүүцэл
- цөөн тооны холбогч утас
Ашигласан програм хангамжийн хэрэгсэл:
- Arduino IDE
- PHP/Apache вэб серверийн хувьд Xampp
Arduino номын сангийн ашигласан:
1. Wifi менежер tzapu & i миний захиалгат файлд тохируулсан (wifimanager)
2. Миний өөрчлөн тохируулсан утгыг Flash санах ойд хадгалах ESP_EEPROM
3. SevenSegmentTM1637 харуулах зориулалттай
Алхам 2: Wifi менежерийг тохируулах
Энэ хэсэгт би эхлээд wifi менежерийг суулгаж, дараа нь Wifi менежерийн хавтасыг хуулж, Arduino номын сангийн хавтсанд дахин оруулаад дараа нь WiFiManager_custom гэж нэрлэв.
Folder Root лавлах Ихэнх нь дуртай
C: / Хэрэглэгчид / таны компьютерийн нэр / Documents / Arduino / сангууд
Дараа нь би wifimanager_custom фолдерыг нээж, толгой.cpp файлыг wifimanager_custom -тэй адилаар нэрлэжээ.
Толгой дээр миний захиалгат маягт, товчлуурыг нэмсэн.
HTTP_PORTAL_OPTIONS PROGMEM -д би цэсийн товчлуурын маягтаа нэмсэн.
мөр оруулах, шилжүүлэх шинэ маягт нэмсэн. Би энэ маягтыг энгийн текст хэлбэрээр бүтээсэн.
Үүний дараа бид.cpp файлд энэ маягтуудын үйл ажиллагааны функцуудыг үүсгэх гэж байгаа бөгөөд үүний тулд бид толгой файл дээр функцын мэдэгдлийг хийх ёстой.
/ * миний захиалгат функцууд */
void handleCustomForm (); void handleCustomSave ();
Би өөрийн хувийн функцуудыг толгой файл дээр зарласан. Толгой дээрх бидний ажил дууссан тул бид өөрсдийн үйл ажиллагаа, үйлдлүүдийг үүсгэхийн тулд.cpp файлыг ашиглах ёстой.
Алхам 3: Маягт үйлдлийн захиалгат функцууд
Одоо бид wifimanager_custom.cpp файлыг нээж байна.
мөн бид маягтаа байршуулах үед функцуудаа дуудахын тулд http хариулагчаа нэмэх ёстой.
server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, this)); // Миний захиалгат бариул
server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, this)); // Миний захиалгат бариул
Эдгээр нь маягтыг байршуулах үед бидний захиалгат функцуудыг дуудах болно.
1.handleCustomForm ()-> нь шугам, ээлжийн оролт, хадгалах товчлуурыг манай захиалгат маягтаар хуудас үүсгэх болно.
2.handleCustomSave ()-> энэ функц нь хэлбэрийн утгыг авах бөгөөд Flash санах ойн 0 (шугам) & 50 (ээлжийн) байршилд хадгалагдах болно.
Алхам 4: Холболт ба үндсэн програм
Холболтууд нь маш энгийн..
Холболт ба утас:
nodemcu TM1637 Дэлгэц
3.3v ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
зангилаа түлхэх түлхүүр
- +5V -аас D8 зүү дээр бэхлэгдсэн товчлуур - D8 зүү дээр газраас 10K эсэргүүцэл холбосон
бид wifimanager -ээ өөрчилж дууслаа. одоо бид үндсэн програмаа бий болгох ёстой.
1. Манай wifi менежер хамгийн сүүлд ашигласан итгэмжлэл бүхий wifi сүлжээнд холбогдох болно, хэрэв энэ нь амжилтгүй болвол AutoConnectAP wifi сервер нээгдэнэ. Энэ wifi сервертэй холбогдож шинэ wifi -ийн нууц үг, шугам, шилжүүлгийг тохируулах боломжтой.
2. дараа нь энэ нь үндсэн хүрд рүү орох болно.
Манай үндсэн хэлхээ нь хоёр хэсгээс бүрдэнэ. Бид тохируулахын тулд AP горимын эрэлтийн горимыг дуудахын тулд шугамыг өөрчлөх, өөрчлөх эсвэл wifi -ийн итгэмжлэлийг нэмэх шаардлагатай үед нэг нь confi subroutine юм. D8 зүүтэй холбогдсон товчлуур дарагдсан үед үүнийг дуудах болно.
void loop () {
config_loop ();
}
хүчингүй config_loop () {Serial.println ("");
Serial.println ("Тохируулах товчлуурын төлөвийг хүлээж байна …");
//display.print("Хүлээгээрэй ");
хэрэв (digitalRead (TRIGGER_PIN) == HIGH)
{
display.print ("Conf"); // WiFi менежер
// Орон нутгийн интиализаци. Түүний бизнесийг хийсний дараа WiFiManager wifiManager -ийн эргэн тойронд байлгах шаардлагагүй болно;
// тохиргоог дахин тохируулах - туршихад зориулагдсан
//wifiManager.resetSettings ();
// тохиргооны портал унтрах хүртэл завсарлагааг тохируулна // бүгдийг дахин оролдох эсвэл хэдэн секундын дотор унтахын тулд хэрэгтэй болно
//wifiManager.setTimeout(120);
// энэ нь заасан нэртэй хандалтын цэгийг эхлүүлнэ
// энд "AutoConnectAP" // ба тохиргоог хүлээж буй блоклох гогцоонд орно
// ЭНЭГҮЙ бол AP нь SDK 1.5 -тэй зөв ажиллахгүй мэт санагдаж, дор хаяж 1.5.1 болгон шинэчлэх //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("холбогдож чадаагүй бөгөөд хугацаа хэтэрсэн"); саатал (3000); // дахин тохируулаад дахин оролдоно уу, эсвэл гүн нойронд оруулна уу ESP.reset (); саатал (5000); }}
//Serial.println("Tutton status False. Back to Main loop "); //display.print("Gain давталт "); //display.clear ();
}
Хоёрдугаарт, тодорхой серверээс HTTP хариулт авах, оролтын хэмжээг дэлгэц дээр харуулах бидний гол програм болно.
Үүнийг хийхийн тулд бид ESP-ийн Flash хадгалалтаас шугам, ээлжийн дэлгэрэнгүй мэдээллийг авах ёстой (хаяг 0-> шугам, 50-> ээлжийн)
EEPROM.begin (100); // eeprom storageEEPROM.get (0, мөр); // 0 хаягаас Утга авах
EEPROM.get (50, ээлж); // 50 -р хаягаас үнэ цэнийг авах
Дараа нь бид энэ мөрийг дамжуулж, оролт, гаралтын утгыг олж авахын тулд дэлгэрэнгүй мэдээллийг http сервер рүү шилжүүлэх ёстой.
String Base_url = "хасагдсан"; // миний үндсэн urlHTTPClient http; // HTTPClient ангийн объект
String URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // энэ нь бүх http хариултын мөрийг хэвлэх болно;
Хэрэв та бүх текстийг хэрхэн яаж дуусгахыг хүсч байвал бид үүнийг tm1637 дэлгэц дээр шууд үзүүлэх боломжтой.
display.print (http.getString ());
Гэхдээ би бүх текстийг харуулахыг хүсэхгүй байна, учир нь энэ нь оролт, json хэлбэрээр гаралт, мэдээллийн сан болон бусад зүйлсийн талаархи бусад ерөнхий текстийг агуулдаг.
Тиймээс эхлээд би Substring () функцийг ашиглан ерөнхий текстийг хариултын мөрөөс устгасан.
Би ерөнхий текстийн уртыг тоолж, хайчилж авлаа.
if (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument root (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
String json_string = http.getString (). Дэд мөр (121); /* Хэрэв таны хариултанд энэ кодыг устгах боломжтой зүйл байхгүй бол энэ бол ерөнхий текстийн миний офсет юм. */
//Serial.println(json_string);
DeserializationError error = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
хэрэв (алдаа)
{Serial.print (F ("deserializeJson () амжилтгүй болсон:"));
Serial.println (error.c_str ());
буцах;
}
өөр {
const char* оролт = root ["оролт"];
const char* output = root ["output"];
Serial.print ("Оролт:");
Serial.println (оролт);
Serial.print ("Гаралт:");
Serial.println (гаралт);
display.print (".. in..");
display.clear (); // дэлгэцийг цэвэрлэх
display.print (оролт); // хэвлэх COUNTING SOME DIGITS
}
Тиймээс бидний үндсэн хөтөлбөр дууссан.
Алхам 5: Вэб сервер үүсгэх
Би xampp -ийг вэб үйлчилгээ болон PHP кодыг ашиглан SQL мэдээллийн сангаас өгөгдөл авахын тулд яг тодорхой тоо хэмжээ авах боломжтой.
Гэхдээ би түүний бүх анхны кодыг хуваалцаж чадахгүй. Учир нь энэ нь миний компанийн нууцлал юм. Гэхдээ би нэг вэб сервер хэрхэн үүсгэх, статик оролт, гаралтын хэмжээг харуулах болно.
Үүний тулд танд ямар ч вэб хост хэрэгтэй болно, би энд xampp -ийг хостоор ашиглаж байна.
Та эндээс xampp татаж авах боломжтой.
xampp -ийг суулгаарай … хэрэв танд тодорхой заавар хэрэгтэй бол энэ холбоосыг ашиглаж болно.
Xampp суулгасны дараа та өөрийн үндсэн лавлах руу очих ёстой.
C: / xampp / htdocs
Таны бүх php програмууд энэ үндэс дотор байх ёстой.
Би өөрийн хуудсыг esp_api.php нэртэйгээр үүсгэсэн
энэ бол миний php код. энд би зөвхөн оролт, гаралтын статик утгыг харуулж байна;
$ line = $ _ АВАХ ['мөр']; $ шилжилт = $ _ АВАХ ['ээлжийн'];
цуурай ("myString"); // ерөнхий текст
if ($ line == 'a0401' ба $ shift = 'dd') {$ үр дүн ['оролт'] = 100; $ үр дүн ['гаралт'] = 99; }
өөр {$ үр дүн ['input'] = 200; $ үр дүн ['гаралт'] = 199; }
$ myObj-> оролт = ''. $ үр дүн ['оролт']. '';
$ myObj-> output = ''. $ үр дүн ['гаралт']. '';
$ myJSON = json_encode ($ myObj);
echo $ myJSON;
Одоо манай HTTP хариу API дууссан.
Манай http -ийн үндсэн URL нь ийм байх болно
you_ip_address/esp_api.php
Та API хариултын текстээ шалгах боломжтой
localhost/esp_api.php? line = a0401 & shift = dd
Энд би a0401 гэж шугамыг хэлээд dd гэж шилжүүлэв.
Алхам 6: Эцсийн алхам !
Үндсэн URL дээр компьютерийн IP хаягийг оруулна уу
String Base_url = "хасагдсан"; // таны үндсэн URL
болон ESP nodemcu дээрээ байршуулна уу. Wifi -г гар утас эсвэл зөөврийн компьютераасаа асаасны дараа танд AutoConnectAP сүлжээ бий болно. түүнтэй холбогдож, итгэмжлэл, шугамын тохиргоог оруулна уу.
Дараа нь төхөөрөмжөө дахин тохируулаад сүлжээгээ холбосны дараа бүх зүйлийг хийсний дараа холбоно уу.
Оролт дэлгэц дээр гарч байгааг та харж болно.
Хэрэв та ямар нэгэн шугам эсвэл wifi итгэмжлэлийг өөрчлөхийг хүсч байвал түлхүүрийг хэдхэн секундын турш дарж болно.
таAP горимыг шаардаж байна. Та төхөөрөмжийг сольж, дахин тохируулах боломжтой.
Хобби, хөгжилтэй төслүүдээ жинхэнэ үйлдвэрлэл, үйлдвэрлэлийн талбай, шоунд хэрхэн ашиглаж болохыг харуулах түүний зааварчилгааны гол мото.
Зөвлөмж болгож буй:
Micropython бүхий TTGO (өнгөт) дэлгэц (TTGO T-дэлгэц): 6 алхам
Micropython бүхий TTGO (өнгөт) дэлгэц (TTGO T-дэлгэц): TTGO T-Display нь ESP32 дээр суурилсан 1.14 инчийн өнгөт дэлгэцтэй самбар юм. Уг самбарыг 7 доллараас бага үнээр худалдаж авах боломжтой (тээвэрлэлт, шагналыг banggood дээрээс үзнэ үү). Энэ бол дэлгэцийг багтаасан ESP32 -ийн гайхалтай шагнал юм
I2C / IIC LCD дэлгэц - Arduino ашиглан SPI -IIC модулийг ашиглан I2C LCD дэлгэц рүү SPI LCD ашиглах: 5 алхам
I2C / IIC LCD дэлгэц | IUC LCD дэлгэц дээр SPI LCD дэлгэцийг SPI -ийг IIC модулийг ашиглан Arduino ашиглан ашиглаарай: Сайн байна уу залуусаа, ердийн SPI LCD 1602 -ийг холбоход хэт олон утас байдаг тул үүнийг arduino -той холбоход маш хэцүү боловч зах зээл дээр боломжтой нэг модуль байдаг. SPI дэлгэцийг IIC дэлгэц болгон хөрвүүлэх тул та зөвхөн 4 утас холбох хэрэгтэй
Бараа материалын менежментийн нэгдсэн систем: 10 алхам (зурагтай)
Бараа материалын менежментийн нэгдсэн систем: Би агуулахынхаа бүх зүйлийг хянаж байх боломжийн аргыг үргэлж хүсч байсан тул хэдэн сарын өмнө би үүнийг хийх төсөл дээр ажиллаж эхэлсэн. Зорилго нь ашиглахад тун хялбар, хямд үнэтэй системийг бий болгох явдал байв
Ухаалаг хогийн менежментийн систем: 23 алхам
Ухаалаг хог хаягдлын менежментийн систем: ТАНИЛЦУУЛГА Энэхүү төсөлтэй холбоотой одоогийн асуудал эсвэл асуудал Манай өнөөгийн нийгэмд тулгарч буй гол асуудал бол хатуу хог хаягдлын хуримтлал юм. Энэ нь манай нийгмийн эрүүл мэнд, хүрээлэн буй орчинд илүү их нөлөө үзүүлэх болно. Илрүүлэлт, хяналт
Даалгаврын менежер - Өрхийн ажлын менежментийн систем: 5 алхам (зурагтай)
Даалгаврын менежер - Өрхийн ажлын менежментийн систем: Би өрхдөө тулгарч буй бодит асуудлыг (мөн бусад олон уншигчдын санаанд байгаа) шийдвэрлэхийг хичээхийг хүссэн бөгөөд энэ нь хүүхдүүдээ хэрхэн тусалж, урамшуулж, шагнах вэ? гэрийн ажилтай. Өнөөг хүртэл бид ламинатан хуудсыг хадгалсаар ирсэн