Мазмуну:
- 1 -кадам: Колдонулган тетиктер жана шаймандар:
- 2 -кадам: Wifi менеджерин ыңгайлаштыруу
- 3 -кадам: Форма аракетинин бажы функциялары
- 4 -кадам: Байланыштар жана негизги программа
- 5 -кадам: Web Server түзүү
- 6 -кадам: Акыркы кадам !
Video: Өндүрүштү башкаруу үчүн WIFI дисплейи: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Мен IOT жана Single Board компьютерлери жөнүндө бир аз сериямын.
Мен аны Hobby & Fun Projects (реалдуу өндүрүш жана өндүрүш) чегинен тышкары колдонууну каалайм.
Бул көрсөтмө ESP nodemcu менен 4 орундуу 7 сегменттүү WIFI дисплейин түзүү үчүн, саат сайын өндүрүштү киргизүүнү көрсөтүү үчүн. Мен Электрондук өндүрүш тармагында иштеп жатам, анда биз Өндүрүштү аткаруу системасын (MES) колдонуп, өндүрүштүн киришине, чыгышына жана процессине мониторинг жүргүзөбүз. Бул долбоордо мен чакан дисплей бирдигин түзүп жатам, ал өндүрүштүн көлөмүн сапка, сменага жана саатка жараша көрсөтөт.
Техникалык жактан бул долбоор Youtube абоненттеринин санына окшош, биз онлайндан API/HTTP жоопторун колдонобуз, бирок бул жерде биз жергиликтүү MES тутумубуз менен кирүү санын алуу үчүн өз апи түзөбүз.
1 -кадам: Колдонулган тетиктер жана шаймандар:
Колдонулган аппараттык бөлүктөр:
- ESP nodemcu
- TM1637 4 орундуу саат Дисплей
- Баскычты басыңыз
- 10k каршылык
- бир нече секирүүчү зымдар
Колдонулган Программалык Куралдар:
- Arduino IDE
- PHP/Apache веб -сервери үчүн Xampp
Arduino китепканасынын колдонулганы:
1. Wifi менеджери тарабынан tzapu & i Ыңгайлаштырылган файлдарга ылайыкташтырылган (wifimanager)
2. ESP_EEPROM менин ыңгайлаштырылган баалуулуктарымды Flash эстутумунда сактоо үчүн
3. SevenSegmentTM1637 дисплей үчүн
2 -кадам: Wifi менеджерин ыңгайлаштыруу
Бул адегенде мен адегенде wifi менеджерин орноттум, андан кийин мен Wifi менеджеринин папкасын көчүрдүм жана Arduino китепканасынын папкасына кайра тапшырдым, андан кийин WiFiManager_custom деп аталды.
Папка Root каталогу Көбүнчө жагат
C: / Колдонуучулар / сиздин компьютердин аты / Документтер / Arduino / китепканалары
Андан кийин мен wifimanager_custom папкасын ачып, header.cpp файлын wifimanager_custom менен бирдей деп өзгөртүп, башына &.cpp файлдарын дагы коштум.
Жана менин ыңгайлаштырылган формамды жана баскычымды башына кошту.
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, бул)); // МЕНИН ыңгайлаштырылган туткасы
server-> on (String (F ("/custom_save")), std:: bind (& WiFiManager:: handleCustomSave, бул)); // МЕНИН ыңгайлаштырылган туткасы
бул форма жайгаштырылганда бул биздин ыңгайлаштырылган функцияларыбызды чакырат.
1.handleCustomForm ()-> линия жана жылыш киргизүү жана сактоо баскычы үчүн биздин ыңгайлаштырылган формабыз бар баракты түзөт.
2.handleCustomSave ()-> бул функция форма баалуулуктарын алат жана Flash эс тутумдарында 0 (линия) & 50 (жылыш) сакталат.
4 -кадам: Байланыштар жана негизги программа
Байланыштар абдан жөнөкөй..
Байланыштар жана зымдар:
nodemcu TM1637 Display
3.3v ---- Vcc
Г ---- Гнд
D2 ---- CLK
D3 ----- DIO
nodemcu- баскыч
- D8 пинге +5Vдан бекитилген баскыч - жерден 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 ("Config баскычынын статусу күтүлүүдө …");
//display.print( Күтө туруңуз));
эгер (digitalRead (TRIGGER_PIN) == HIGH)
{
display.print ("Conf"); // WiFiManager
// Жергиликтүү интиализация. Анын бизнеси бүткөндөн кийин, аны WiFiManager wifiManager тегерегинде сактоонун кажети жок;
// жөндөөлөрдү баштапкы абалга келтирүү - тестирлөө үчүн
//wifiManager.resetSettings ();
// конфигурация порталы өчүрүлгөнгө чейин күтүү убактысын коет // анын баарын кайра аракет кылуу же секунда ичинде уктоо // пайдалуу
//wifiManager.setTimeout(120);
// ал көрсөтүлгөн аталыш менен кирүү чекитин баштайт
// бул жерде "AutoConnectAP" // жана конфигурацияны күтүп жаткан бөгөт коюу циклине кирет
// МЫНАСЫЗ АП SDK 1.5 МЕНЕН ТУУРА ИШТЕП КӨРБӨЙТ, жок дегенде 1.5.1ге жаңыртуу //WiFi.mode(WIFI_STA);
if (! wifiManager.startConfigPortal ("OnDemandAP")) {Serial.println ("туташкан жок жана тайм -аут"); кечигүү (3000); // баштапкы абалга келтирип, кайра аракет кылыңыз, же аны терең уйкуга коёсуз ESP.reset (); кечигүү (5000); }}
//Serial.println("Button status False. Back to Main loop "); //display.print("Ana loop "); //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 тамыры (bufferSize);
// JsonObject & root = doc.parseObject (http.getString ());
String json_string = http.getString (). Substring (121); /* бул жалпы тексттин менин офсетим, эгерде сиздин жообуңузда бул кодду алып салсаңыз болот; */
//Serial.println(json_string);
DeserializationError катасы = deserializeJson (root, json_string);
// JsonObject & root = jsonBuffer.parseObject (http.getString ());
эгер (ката)
{Serial.print (F ("deserializeJson () ишке ашпай калды:"));
Serial.println (error.c_str ());
кайтуу;
}
башка {
const char* input = root ["input"];
const char* output = root ["output"];
Serial.print ("Киргизүү:");
Serial.println (киргизүү);
Serial.print ("Чыгуу:");
Serial.println (чыгаруу);
display.print (".. ичинде..");
display.clear (); // дисплейди тазалоо
display.print (input); // print COUNTING SIGE SIGES
}
Ошентип, биздин негизги программабыз аяктады.
5 -кадам: Web Server түзүү
Мен так санын алуу үчүн SQL маалымат базасынан маалыматтарды алуу үчүн веб кызматым жана PHP коду катары xamppты колдоном.
Бирок мен анын бардык баштапкы коддорун бөлүшө албайм. анткени менин компаниямдын купуялыгы. бирок мен кантип бир веб -серверди түзүүнү, статикалык киргизүү жана чыгаруу көлөмүн көрсөтөм.
Бул үчүн сизге каалаган веб -хост керек, мен бул жерде xamppты хостум катары колдонуп жатам.
xamppты бул жерден жүктөп алсаңыз болот.
xampp орнотуу … эгер сизге так көрсөтмө керек болсо, бул шилтемени колдоно аласыз.
Xamppти орноткондон кийин, сиз түп каталогго өтүшүңүз керек.
C: / xampp / htdocs
php программаларыңыздын баары ушул тамырдын ичинде болушу керек.
Мен баракчамды esp_api.php деп аталышында түздүм
бул менин php кодум. бул жерде мен жөн эле кириштин жана чыгуунун статикалык маанилерин көрсөтүп жатам;
$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];
echo ("myString"); // жалпы текст
if ($ line == 'a0401' жана $ shift = 'dd') {$ result ['input'] = 100; $ result ['output'] = 99; }
else {$ result ['input'] = 200; $ result ['output'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> output = ''. $ result ['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го жүктөө. Уюлдук телефонуңуздан же ноутбугуңуздан Wi -Fi күйгүзгөндөн кийин, AutoConnectAP деп аталган тармакка ээ болосуз. аны менен туташып, ишеним грамотаңызды жана сап конфигурацияларыңызды киргизиңиз.
Андан кийин түзмөгүңүздү баштапкы абалга келтирип, туташканыңызды текшериңиз, ал туташкандан кийин баары жасалат.
Сиз киргизүү дисплейде көрсөтүлө турганын көрө аласыз.
Эгерде сиз каалаган линияны же wifi ишеним грамотасын өзгөрткүңүз келсе, баскычты бир нече секундага бассаңыз болот, дисплейде конфини көрсөтөт.
СизAPAP режимине кирдиңиз. түзмөгүңүздү өзгөртүп, баштапкы абалга келтире аласыз.
Негизги мотосу, биз чыныгы өндүрүш жана өндүрүш чөйрөсүндө хоббибизди жана кызыктуу долбоорлорду кантип колдоно аларыбызды көрсөтүү үчүн.
Сунушталууда:
Чоңойтууну башкаруу үчүн гитара баатырдык гитараны колдонуу (Windows үчүн гана): 9 кадам
Масштабды көзөмөлдөө үчүн гитара баатырдык гитараны колдонуу (Windows үчүн гана): Биз глобалдык пандемиянын ортосунда турганыбыз үчүн, көбүбүз үйдү тазалап, Zoomдагы жолугушууларга катышып жатабыз. Бир аз убакыттан кийин, бул абдан жумшак жана кызыксыз болуп калышы мүмкүн. Үйүмдү тазалап жатып, ыргытып жиберилген эски гитара баатырын таптым
IPad үчүн дубалга орнотуу Үйдү автоматташтыруунун башкаруу панели катары, Экранды иштетүү үчүн Servo башкарылган магнитти колдонуу: 4 кадам (Сүрөттөр менен)
IPad үчүн дубалга орнотуу Үйдү автоматташтыруунун башкаруу панели катары, Экранды иштетүү үчүн Servo Control Magnetтин жардамы менен: Акыркы убакта мен үйдүн ичинде жана айланасында нерселерди автоматташтырууга көп убакыт бөлдүм. Мен Domoticzди үй автоматташтыруу тиркемеси катары колдонуп жатам, чоо -жайын билүү үчүн www.domoticz.com караңыз. Менин издөөдө, бардык Domoticz маалыматтарын көрсөтүүчү панель колдонмосу
ЭЛЕКТРОНДУК ТЕЗДИКТИ БАШКАРУУ ҮЧҮН БАШКАРУУ СИГНАЛЫ ГЕНЕРАТОРУ (ЭСК): 7 кадам
ЭЛЕКТРОНДУК ТЕЗДИКТИ БАШКАРУУ ҮЧҮН БАШКАРУУ СИГНАЛЫНЫН ГЕНЕРАТОРУ (ЭСК): Бир аз убакыт мурун мен YouTube каналымда шамал турбинасын кантип жасоону көрсөткөн видеону (https://www.youtube.com/watch?v=-4sblF1GY1E) жарыяладым. щеткасыз DC моторунан. Мен видеону испан тилинде тарттым жана бул кыймылдаткыч ага берилгенин түшүндүрдү
KerbalController: Кербал космос программасы үчүн ракеталык оюн үчүн атайын башкаруу панели: 11 кадам (сүрөттөр менен)
KerbalController: ракеталык оюндар үчүн атайын башкаруу панели Kerbal Space программасы: Эмне үчүн KerbalController курулат? Ооба, анткени баскычтарды басуу жана физикалык өчүргүчтөрдү ыргытуу чычканыңызды баскандан алда канча олуттуу сезилет. Айрыкча, бул чоң кызыл коопсуздук ачкычы болгондо, сиз биринчи капкагын ачышыңыз керек, которгучту басыңыз
Өндүрүштү көзөмөлдөө Qualcomm: 4 кадам
Өндүрүштү көзөмөлдөө Qualcomm: Hackears системасы технологияларды көзөмөлдөө / көзөмөлдөө процессинде, DragonBoard 410c платформасында - Qualcomm, бул көйгөйдүн чечилишинин негизги көйгөйү болуп саналат