Мазмұны:

Өндірісті басқаруға арналған WIFI дисплейі: 6 қадам
Өндірісті басқаруға арналған WIFI дисплейі: 6 қадам

Бейне: Өндірісті басқаруға арналған WIFI дисплейі: 6 қадам

Бейне: Өндірісті басқаруға арналған WIFI дисплейі: 6 қадам
Бейне: Шесть сигма. Бережливое производство. Управление изменениями 2024, Қараша
Anonim
Өндірісті басқаруға арналған WIFI дисплейі
Өндірісті басқаруға арналған WIFI дисплейі

Мен IOT және бір тақталы компьютерлер туралы аз сериямын.

Мен оны Hobby & Fun Projects (нақты өндіріс пен өндіріс) шеңберінен тыс жерде қолданғым келеді.

Бұл нұсқаулық сағаттық өндірістік кірісті көрсету үшін ESP nodemcu көмегімен 4-разрядты 7 сегментті WIFI дисплейін құруға дайын. Мен электронды өндіріс саласында жұмыс жасаймын, онда біз өндірістің еденге кіруін, шығысын және процесін бақылау және бақылау үшін өндірісті орындау жүйесін (MES) қолданамыз. Бұл жобада мен өндіріс көлемін жолға, ауысымға және сағатқа сәйкес көрсететін шағын дисплей қондырғысын жасаймын.

Техникалық тұрғыдан бұл жоба Youtube жазылушыларының санының дисплейіне ұқсайды, онда біз интернеттен API/HTTP жауаптарын қолданамыз, бірақ мұнда біз кіру мөлшерін алу үшін жергілікті MES жүйесімен өзара әрекеттесу үшін өзіміздің жеке API құрамыз.

1 -қадам: қолданылатын бөлшектер мен құралдар:

Қолданылатын бөлшектер мен құралдар
Қолданылатын бөлшектер мен құралдар

Қолданылатын аппараттық бөліктер:

  1. ESP түйіндері
  2. TM1637 4 таңбалы сағат Дисплей
  3. Түймешікті басу
  4. 10 к резистор
  5. бірнеше секіргіш сымдар

Қолданылатын бағдарламалық құралдар:

  1. Arduino IDE
  2. PHP/Apache веб -серверіне арналған Xampp

Arduino кітапханасы қолданылады:

1. Wifi менеджері tzapu & i менің жеке файлдарыма теңшелген (wifimanager)

2. ESP_EEPROM флэш -жадта реттелетін мәндерді сақтауға арналған

3. SevenSegmentTM1637 Көрсетуге арналған

2 -қадам: Wifi менеджерін теңшеу

Wifi менеджерін теңшеу
Wifi менеджерін теңшеу

Бұл жерде алдымен мен Wi -Fi менеджерін орнаттым, содан кейін мен Wi -Fi менеджері қалтасын көшіріп, Arduino кітапханасының қалтасында қайтадан бердім, содан кейін WiFiManager_custom деп аталды.

Folder Root каталогы Көбінесе ұнайды

C: / Пайдаланушылар / сіздің компьютеріңіздің аты / Құжаттар / Arduino / кітапханалары

Содан кейін мен wifimanager_custom қалтасын ашып,.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, бұл)); // MY реттелетін тұтқасы

server-> on (String (F («/custom_save»)), std:: bind (& WiFiManager:: handleCustomSave, бұл)); // MY реттелетін тұтқасы

олар пішін орналастырылған кезде біздің реттелетін функцияларды шақырады.

1.handleCustomForm ()-> жолды өзгертуге және жылжытуға енгізу мен сақтау батырмасына арналған біздің пішініміз бар бетті жасайды.

2.handleCustomSave ()-> бұл функция пішін мәндерін алады және 0 (сызық) және 50 (ауысым) флэш-жад орындарында сақтайды.

4 -қадам: Қосылымдар және негізгі бағдарлама

Қосылымдар мен негізгі бағдарлама
Қосылымдар мен негізгі бағдарлама

Қосылымдар өте қарапайым..

Қосылымдар мен сымдар:

nodemcu TM1637 Дисплей

3.3в ---- Vcc

Г ---- Гнд

D2 ---- CLK

D3 ----- DIO

түйіспелі қосқыш

- D8 түйреуішіне +5В -тан бекітілген түйме - жерден D8 түйреуішке бекітілген 10К резистор

біз әйелді баптауды аяқтадық. енді біз негізгі бағдарламаны құруға тиіспіз.

1. біздің Wi -Fi менеджері қосылу үшін соңғы пайдаланылған тіркелгі деректері бар Wi -Fi желісіне қосылады, егер ол сәтсіз болса, ол AutoConnectAP wifi серверін ашады, біз жаңа Wi -Fi деректерін конфигурациялай аламыз, желіге ауысамыз және осы WiFi серверіне қосылу арқылы ауысамыз.

2. содан кейін ол негізгі циклге енеді.

Біздің негізгі цикл екі бөліктен тұрады. конфигурациялау үшін AP сұраныс режиміне қоңырау шалу үшін желіні өзгерту, кез келген wifi тіркелгі деректерін қосу қажет болған кезде - бұл бір ішкі бағдарлама. бұл D8 түйреуішіне қосылған түйме басылғанда шақырылады.

void loop () {

config_loop ();

}

жарамсыз config_loop () {Serial.println («»);

Serial.println («Config батырмасының күйі күтілуде …»);

//display.print(«Күте тұрыңыз»);

егер (digitalRead (TRIGGER_PIN) == HIGH)

{

display.print («Conf»); // WiFi менеджері

// Жергілікті иниализация. Оның ісі аяқталғаннан кейін оны 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 күйі False. Back to Main loop «); //display.print("Негізгі цикл »); //display.clear ();

}

Екіншісі - белгілі бір серверден HTTP жауабын алуға және дисплейде кіріс мөлшерін көрсетуге арналған біздің негізгі бағдарлама.

Ол үшін біз ESP Flash қоймасынан желі мен ауысым туралы мәліметтерді алуымыз керек (0-> жол, 50-> ауысым)

EEPROM.begin (100); // eeprom storageEEPROM.get (0, жол); // 0 адресінен мән алыңыз

EEPROM.get (50, ауысым); // 50 мекенжайынан мән алу

содан кейін біз енгізу мен шығару мәнін алу үшін осы жолды алуымыз керек және Get әдісімен мәліметтерді http серверіне ауыстыруымыз керек.

Жол Base_url = «жойылды»; // менің базалық urlHTTPClient http; // HTTPClient класының объектісі

Жол URL = Base_url+«?»+«Жол =»+жол+«& 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 ());

Жол json_string = http.getString (). Ішкі жол (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* енгізу = түбір [«енгізу»];

const char* output = root [«output»];

Serial.print («Енгізу:»);

Serial.println (енгізу);

Serial.print («Шығу:»);

Serial.println (шығару);

display.print («.. ішінде..»);

display.clear (); // дисплейді тазарту

display.print (енгізу); // басып шығару САНАУ ДЕГЕН САНДАРДЫ

}

осымен біздің негізгі бағдарламамыз аяқталды.

5 -қадам: веб -сервер құру

Веб -сервер құру
Веб -сервер құру
Веб -сервер құру
Веб -сервер құру

Мен xampp -ты веб -сервис ретінде және PHP коды арқылы нақты деректерді алу үшін SQL дерекқорынан деректерді алу үшін қолданамын.

Бірақ мен оның барлық бастапқы кодтарымен бөлісе алмаймын. себебі бұл менің компаниямның құпиялылығы. бірақ мен бір веб -серверді қалай жасау керектігін, статикалық кіріс пен шығыс көлемін көрсетемін.

Бұл үшін сізге кез -келген веб -хост қажет, мен бұл жерде xampp -ты хост ретінде қолданамын.

xampp -ты мына жерден жүктей аласыз.

xampp орнатыңыз … егер сізге нақты нұсқаулық қажет болса, сіз осы сілтемені пайдалана аласыз.

Xampp орнатқаннан кейін сіз өзіңіздің түбірлік каталогыңызға өтуіңіз керек.

C: / xampp / htdocs

сіздің барлық php бағдарламаларыңыз осы түбірдің ішінде болуы керек.

Мен өз бетімді esp_api.php деген атпен құрдым

бұл менің php коды. мұнда мен тек кіріс пен шығудың статикалық мәндерін көрсетемін;

$ line = $ _ GET ['line']; $ shift = $ _ GET ['shift'];

echo («myString»); // жалпы мәтін

егер ($ line == 'a0401' және $ shift = 'dd') {$ нәтиже ['енгізу'] = 100; $ нәтиже ['шығару'] = 99; }

else {$ result ['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 мекенжайын енгізіңіз

Жол Base_url = «жойылды»; // сіздің негізгі URL

және ESP nodemcu жүйесіне жүктеңіз. Сіз ұялы телефоннан немесе ноутбуктен Wi -Fi қосқаннан кейін AutoConnectAP деп аталатын желіге ие боласыз. онымен байланысып, тіркелгі деректері мен жол конфигурацияларын енгізіңіз.

Содан кейін құрылғыны қалпына келтіріңіз және желі қосылғанын тексеріңіз, ол қосылғаннан кейін бәрі орындалады.

Сіз дисплейде кіріс көрсетілгенін көре аласыз.

Егер сіз кез келген желіні немесе Wi -Fi есептік жазбасын өзгерткіңіз келсе, бірнеше секунд басу түймесін басуға болады, дисплейде Confi көрсетіледі.

Сіз талап ету режиміне кірдіңіз. құрылғыны өзгертуге және қалпына келтіруге болады.

Оның негізгі мотосы сізге хобби мен қызықты жобаларды нақты өндіріс пен өндіріс аймағында қалай қолдануға болатынын көрсетеді.

Ұсынылған: