Mundarija:
- 1 -qadam: Ishlatiladigan qismlar va asboblar:
- 2 -qadam: Wi -Fi menejerini sozlash
- 3 -qadam: Forma uchun maxsus funktsiyalar
- 4 -qadam: Ulanishlar va asosiy dastur
- 5 -qadam: Veb -server yaratish
- 6 -qadam: Oxirgi qadam !!
Video: Ishlab chiqarishni boshqarish uchun WIFI displeyi: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Men IOT va bitta taxtali kompyuterlar haqida bir oz ma'lumotga egaman.
Men har doim uni "Hobby & Fun Projects" (haqiqiy ishlab chiqarish va ishlab chiqarish) doirasidan tashqarida ishlatishni xohlayman.
Bu ko'rsatma soatlik ishlab chiqarish ma'lumotlarini ko'rsatish uchun ESP nodemcu bilan 4 xonali 7 segmentli WIFI displeyini yaratish arafasida. Men elektronika ishlab chiqarish sohasida ishlayman, u erda biz ishlab chiqarishning kirish, chiqish va jarayonini nazorat qilish va nazorat qilish uchun ishlab chiqarishni bajarish tizimi (MES) dan foydalanamiz. Ushbu loyihada men ishlab chiqarish hajmini chiziq, smena va soat bo'yicha ko'rsatadigan kichik displey qurilmasini yaratyapman.
Texnik nuqtai nazardan, bu loyiha onlaynda API/HTTP javobidan foydalanadigan Youtube obunachilari sonini aks ettirishga o'xshaydi, lekin bu erda biz o'z MI tizimimiz bilan mahalliy MES tizimiga kirish miqdorini olish uchun o'zaro aloqa o'rnatamiz.
1 -qadam: Ishlatiladigan qismlar va asboblar:
Ishlatilgan apparat qismlari:
- ESP tugunlari
- TM1637 4 raqamli soatli displey
- Kalitni bosing
- 10 k qarshilik
- bir nechta o'tish simlari
Ishlatilgan dasturiy vositalar:
- Arduino IDE
- PHP/Apache veb -serveri uchun Xampp
Arduino kutubxonasi ishlatilgan:
1. Wifi menejeri tzapu & i mening shaxsiy fayllarim uchun moslashtirilgan (wifimanager)
2. ESP_EEPROM mening shaxsiy qiymatlarimni Flash xotirada saqlash uchun
3. SevenSegment TM1637 ko'rsatish uchun
2 -qadam: Wi -Fi menejerini sozlash
Bu erda men birinchi bo'lib Wi -Fi menejerini o'rnatdim, keyin men Wi -Fi menejeri papkasini nusxalashtirdim va Arduino kutubxonasidagi papkaga o'tdim, keyin WiFiManager_custom deb nomladim.
Papka ildizi katalogi asosan yoqadi
C: / Foydalanuvchilar / sizning kompyuteringiz nomi / Hujjatlar / Arduino / kutubxonalari
Keyin wifimanager_custom papkasini ochdim va header.cpp faylini wifimanager_custom bilan bir xil qilib o'zgartirdim, shuningdek header va.cpp fayllariga qo'shdim.
Va sarlavhaga shaxsiy shakl va tugma qo'shildi.
HTTP_PORTAL_OPTIONS PROGMEMda menyu tugmachasini Menyu uchun qo'shdim.
satr va siljish uchun yangi shakl qo'shildi. Men bu shaklni oddiy matn shakli sifatida yaratdim.
Shundan so'ng, biz bu formalar uchun.cpp faylida harakat funktsiyalarini yaratmoqchimiz, buning uchun header faylida funktsiyalarni e'lon qilishimiz kerak.
/ * mening shaxsiy funktsiyalarim */
void handleCustomForm (); void handleCustomSave ();
men sarlavha faylida maxsus funktsiyalarni e'lon qildim. Shunday qilib, bizning sarlavhadagi ishimiz tugadi, biz o'z vazifamiz va harakatlarimizni yaratish uchun.cpp fayli bilan borishimiz kerak.
3 -qadam: Forma uchun maxsus funktsiyalar
Endi biz wifimanager_custom.cpp faylini ochamiz.
va biz formani yuborganimizda o'z vazifalarimizni chaqirish uchun http javob ishlovchilarini qo'shishimiz kerak.
server-> on (String (F ("/custom_config")), std:: bind (& WiFiManager:: handleCustomForm, bu)); // MYning maxsus tutqichi
server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, bu)); // MYning maxsus tutqichi
bu shakl joylashtirilganda bizning maxsus funktsiyalarimizni chaqiradi.
1.handleCustomForm ()-> chiziq va siljish kiritish va saqlash tugmachalari uchun maxsus shaklga ega bo'lgan sahifani yaratadi.
2.handleCustomSave ()-> bu funksiya forma qiymatlarini oladi va Flash xotirada 0 (chiziq) va 50 (siljish) joylarida saqlanadi.
4 -qadam: Ulanishlar va asosiy dastur
Ulanishlar juda oddiy..
Ulanish va simlar:
nodemcu TM1637 Displey
3.3v ---- Vcc
G ---- Gnd
D2 ---- CLK
D3 ----- DIO
tugunni bosish tugmasi
- +5V dan D8 piniga biriktirilgan tugma - erdan D8 piniga ulangan 10K qarshilik
biz wifimanager -ni sozlashni tugatdik. endi biz asosiy dasturimizni yaratishimiz kerak.
1. bizning Wi -Fi menejerimiz Wi -Fi tarmog'iga oxirgi ishlatilgan hisob ma'lumotlari bilan ulanadi, agar u ishlamasa, u AutoConnectAP wifi -serverini ochadi, biz wifi serveriga ulanish orqali yangi Wi -Fi ma'lumotlarini sozlashimiz, yo'nalish va siljishlarni amalga oshirishimiz mumkin.
2. keyin u asosiy tsiklga kiradi.
Bizning asosiy halqa ikki qismdan iborat bo'ladi. biz sozlashimiz kerak bo'lgan AP rejimini chaqirish uchun liniyani o'zgartirish, o'zgartirish yoki Wi -Fi ma'lumotlarini qo'shish kerak bo'lganda, bu subroutine. bu D8 piniga ulangan tugma bosilganda chaqiriladi.
void loop () {
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Konfiguratsiya tugmasi holatini kutilmoqda …");
//display.print("Kutish");
agar (digitalRead (TRIGGER_PIN) == YUQORI)
{
display.print ("Conf"); // WiFi menejeri
// Mahalliy intializatsiya. Uning ishi tugagach, uni WiFiManager wifiManager atrofida saqlashga hojat yo'q;
// sozlamalarni tiklash - sinov uchun
//wifiManager.resetSettings ();
// konfiguratsiya portali o'chirilmaguncha vaqtni belgilaydi // hammasini qayta urinish yoki bir necha soniyada uxlab qolish uchun foydalidir //
//wifiManager.setTimeout (120);
// u ko'rsatilgan nom bilan kirish nuqtasini ishga tushiradi
// bu erda "AutoConnectAP" // va konfiguratsiyani kutayotgan blokirovka tsikliga o'tadi
// BU YO'RSIZ AP, SDK 1.5 bilan to'g'ri ishlamaydi, kamida 1.5.1 ga yangilang //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("ulanib bo'lmadi va kutish vaqti tugadi"); kechikish (3000); // qayta o'rnating va qaytadan urinib ko'ring, yoki uni chuqur uyquga qo'ying ESP.reset (); kechikish (5000); }}
//Serial.println("Tugma holati False. Back to Main loop "); //display.print("Ana ko'chadan "); //display.clear ();
}
Ikkinchisi, ma'lum bir serverdan HTTP javobini olish va displeyda kirish miqdorini ko'rsatish uchun bizning asosiy dasturimiz bo'ladi.
Buning uchun biz ESP-ning Flash-xotirasidan (0-> liniya, 50-> smenadan) o'z liniyamiz va smenamiz tafsilotlarini olishimiz kerak.
EEPROM.begin (100); // eeprom saqlashEEPROM.get (0, qator); // 0 manzilidan qiymatni oling
EEPROM.get (50, siljish); // 50 -manzildan qiymat oling
keyin biz kirish va chiqish qiymatini olish uchun bu satrni olishimiz va get usuli bilan tafsilotlarni http serverimizga o'tkazishimiz kerak.
String Base_url = "o'chirildi"; // mening asosiy urlHTTPClient http; // HTTPClient sinfining ob'ekti
String URL = Base_url+"?"+"Line ="+line+"& shift ="+shift;
Serial.println (URL);
http.begin (URL);
int httpCode = http. GET ();
Serial.println (http.getString ()); // bu barcha http javob satrini chop etadi;
Agar siz butun matnni qanday qilib tugatishni xohlasangiz, biz uni to'g'ridan -to'g'ri tm1637 displeyida ko'rsatishimiz mumkin.
display.print (http.getString ());
Lekin men hamma matnni ko'rsatishni xohlamayman, chunki u json formasida kirish, chiqish va ma'lumotlar bazasi va boshqalar haqidagi boshqa umumiy matnni o'z ichiga oladi.
shuning uchun birinchi navbatda Substring () funktsiyasidan foydalanib, bu umumiy matnni javoblar qatoridan olib tashladim.
Men umumiy matn uzunligini hisobladim va qirqib tashladim.
agar (httpCode> 0) {const size_t bufferSize = 100; // DynamicJsonDocument jsonBuffer (bufferSize); DynamicJsonDocument ildizi (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
String json_string = http.getString (). Pastki satr (121); /* bu mening umumiy matndagi ofsetim, agar sizning javobingizda bu kodni o'chirib tashlashingiz mumkin bo'lgan narsa bo'lmasa; */
//Serial.println(json_string);
DeserializationError xato = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
agar (xato)
{Serial.print (F ("deserializeJson () muvaffaqiyatsiz tugadi:"));
Serial.println (error.c_str ());
qaytish;
}
boshqa {
const char* kirish = ildiz ["kirish"];
const char* chiqish = ildiz ["chiqish"];
Serial.print ("Kirish:");
Serial.println (kirish);
Serial.print ("Chiqish:");
Serial.println (chiqish);
display.print (".. ichida..");
display.clear (); // displeyni tozalash
display.print (kirish);
}
Shunday qilib, bizning asosiy dasturimiz tugadi.
5 -qadam: Veb -server yaratish
Men aniq ma'lumotni olish uchun SQL ma'lumotlar bazasidan ma'lumotlarni olish uchun xampp -ni veb -xizmat sifatida va PHP kodidan foydalanaman.
Lekin men uning barcha asl kodlarini baham ko'rmayman. chunki bu mening kompaniyamning maxfiyligi. lekin men qanday qilib bitta veb -serverni yaratishni ko'rsataman, statik kirish va chiqish miqdorini ko'rsataman.
Buning uchun sizga har qanday veb -xost kerak bo'lishi kerak, men bu erda xamppni xost sifatida ishlataman.
xampp -ni bu yerdan yuklab olishingiz mumkin.
xampp -ni o'rnating … agar sizga aniq ko'rsatma kerak bo'lsa, siz bu havoladan foydalanishingiz mumkin.
Xampp -ni o'rnatgandan so'ng, siz o'zingizning asosiy katalogingizga o'tishingiz kerak.
C: / xampp / htdocs
barcha php dasturlaringiz shu ildiz ichida bo'lishi kerak.
Men o'z sahifamni esp_api.php nomli yaratdim
bu mening php kodim. bu erda men faqat kirish va chiqishning statik qiymatlarini ko'rsataman;
$ line = $ _ Oling ['qator']; $ shift = $ _ Oling ['siljish'];
echo ("myString"); // umumiy matn
agar ($ line == 'a0401' va $ shift = 'dd') {$ natija ['kiritish'] = 100; $ natija ['chiqish'] = 99; }
boshqa {$ natija ['kiritish'] = 200; $ natija ['chiqish'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> chiqish = ''. $ natija ['chiqish']. '';
$ myJSON = json_encode ($ myObj);
echo $ myJSON;
Endi bizning HTTP javob API -si tugadi.
Bizning http bazasining url -si shunga o'xshash bo'ladi
you_ip_address/esp_api.php
API javob matnini tekshirishingiz mumkin
localhost/esp_api.php? line = a0401 & shift = dd
bu erda men a0401 qatorini aytib o'tdim va dd sifatida o'tdim.
6 -qadam: Oxirgi qadam !!
Asosiy IP manziliga kompyuterning IP manzilini kiriting
String Base_url = "o'chirildi"; // sizning asosiy url
va ESP nodemcu -ga yuklang. Wi -Fi -ni mobil yoki noutbukdan yoqgandan so'ng, siz AutoConnectAP deb nomlangan tarmoqqa ega bo'lasiz. U bilan bog'laning va hisob ma'lumotlarini va chiziq konfiguratsiyasini kiriting.
Keyin qurilmangizni qayta o'rnating va tarmoq ulangandan so'ng hamma narsa bajarilganligini tekshiring.
Kirish displeyda ko'rsatilishini ko'rishingiz mumkin.
Agar siz biron bir tarmoq yoki Wi -Fi ma'lumotlarini o'zgartirishni xohlasangiz, tugmani bir necha soniya bosib turishingiz mumkin.
sizAPAP rejimiga kirdingiz. qurilmani o'zgartirish va qayta o'rnatish mumkin.
Uning asosiy moto muallifi sizga sevimli mashg'ulotlarimiz va qiziqarli loyihalarimizni haqiqiy ishlab chiqarish va ishlab chiqarish maydonida qanday ishlatishimiz mumkinligini ko'rsatib beradi.
Tavsiya:
DIY masofadan boshqarish pulti 2262/2272 M4 non paneli va ishlab chiqaruvchi uchun o'rni: 4 qadam (rasmlar bilan)
DIY masofadan boshqarish pulti 2262/2272 M4 non paneli va ishlab chiqaruvchi uchun o'rni: aqlli uy bizning hayotimizga keladi. Agar biz aqlli uyning amalga oshishini xohlasak, bizga ko'p masofadan boshqarish pulti kerak bo'ladi. Bugun biz test o'tkazamiz, masofadan boshqarish pultining nazariyasini o'rganish uchun oson sxemani tuzamiz. bu to'plam dizayni SINONING ROBOT tomonidan
"Hamma narsani" boshqarish uchun LED chastotali LED masofadan boshqarish pultini o'zgartirish: 5 qadam
"Hamma narsani" boshqarish uchun LED chastotali LED masofadan boshqarish pultini o'zgartirish: Men ushbu loyihada sizga LED chastotali masofadan boshqarish pultini qanday o'zgartirish kerakligini ko'rsataman, u orqali siz xohlagan narsani boshqarasiz. Bu shuni anglatadiki, biz RF masofadan boshqarish pultining uzatish jarayonini batafsil ko'rib chiqamiz, Arduino mcC bilan yuborilgan ma'lumotlarni o'qiymiz
Joule o'g'ri yorug'lik chiqarishni juda oddiy boshqarish bilan: 6 qadam (rasmlar bilan)
Joule o'g'ri yorug'lik chiqarishni juda oddiy boshqaruvchi: "Joule Thief" sxemasi yangi elektron tajribachilar uchun juda zo'r va ko'p marta takrorlangan, haqiqatan ham Google qidiruvi 245000 marta topilgan! Hozircha eng tez -tez uchraydigan sxema belo 1 -bosqichda ko'rsatilgan
Ishlab chiqarishni nazorat qilish Qualcomm: 4 qadam
Qualcomm ishlab chiqarish nazorati: DragonBoard 410c texnologiyasi ishlab chiqarishni nazorat qilish va nazorat qilish tizimi bilan jihozlangan - Qualcomm, bu muammoni hal qilish uchun eng yaxshi echimdir
Uyda ishlab chiqarilgan arzon LED chiroq (to'liq ishlab chiqarish): 6 qadam
Uyda ishlab chiqarilgan arzon LED chiroq (to'liq ishlab chiqarish): LEDlarning arzon manbai To'liq mash'ala / chiroq