Съдържание:
- Стъпка 1: Използвани части и инструменти:
- Стъпка 2: Персонализиране на Wifi Manager
- Стъпка 3: Персонализирани функции за действие с формуляр
- Стъпка 4: Връзки и основна програма
- Стъпка 5: Създаване на уеб сървър
- Стъпка 6: Последна стъпка !
Видео: WIFI дисплей за управление на производството: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Аз съм малка поредица за IOT и едноплатни компютри.
Винаги искам да го използвам извън хоби и забавни проекти (реално производство и производство).
Този Instructable е на път да създаде 4-цифрен 7-сегментен WIFI дисплей с ESP nodemcu за показване на почасови производствени данни. Работя в производствената индустрия на електрониката, където използваме Системата за изпълнение на производството (MES), за да наблюдаваме и контролираме входа, изхода и процеса на производствения етаж. В този проект създавам малък дисплей, който ще показва количеството на производствения вход по ред, смяна и час.
От техническа гледна точка този проект е подобен на дисплея за броя на абонатите в Youtube, където използваме API/HTTP отговор от онлайн.
Стъпка 1: Използвани части и инструменти:
Използвани хардуерни части:
- ESP nodemcu
- TM1637 4 -цифрен часовник Дисплей
- Натиснете превключвателя
- 10k резистор
- няколко джъмперни проводника
Използвани софтуерни инструменти:
- Arduino IDE
- Xampp за уеб сървър PHP/Apache
Използвана библиотека Arduino:
1. Wifi мениджър от tzapu & i Персонализиран за моите персонализирани файлове (wifimanager)
2. ESP_EEPROM за съхраняване на моите персонализирани стойности във Flash памет
3. SevenSegmentTM1637 За дисплей
Стъпка 2: Персонализиране на Wifi Manager
В това първо инсталирах първо wifi мениджър и след това копирах папката на мениджъра на wifi и го прехвърлих отново в същото в папката на библиотеката Arduino, след което преименуван на WiFiManager_custom.
Папка Коренна директория Най -вече като
C: / Users / името на вашия компютър / Documents / Arduino / libraries
След това отворих папката wifimanager_custom и преименувах файла.cpp на заглавката също като wifimanager_custom, добавен също в заглавните и.cpp файловете.
И добавих моята персонализирана форма и бутон в заглавката.
в HTTP_PORTAL_OPTIONS ПРОГРАМА добавих моя бутон за меню.
и добавен нов формуляр за въвеждане на ред и смяна. създадох тази форма като проста текстова форма.
След това ще създадем функции за действие за тези форми във.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
nodemcu- бутон за натискане
- бутон, прикрепен към щифт D8 от +5V - 10K резистор, прикрепен към щифт D8 от земята
завършихме персонализирането на нашия wifimanager. сега трябва да създадем нашата основна програма.
1. нашият wifi мениджър ще се свърже с wifi мрежата с последно използвани идентификационни данни, за да се свърже, ако не успее, отваря wifi сървър на AutoConnectAP. Можем да конфигурираме нови wifi идентификационни данни, линия и смяна, като се свържем с този wifi сървър.
2. след това ще влезе в основния цикъл.
Нашият основен цикъл ще съдържа две части. една е подпрограма confi, когато трябва да променим линия, да сменим или да добавим каквито и да е идентификационни данни за wifi, за да извикаме AP режим за търсене, за да конфигурираме. това ще бъде извикано при натискане на бутон, свързан към щифта D8.
void loop () {
config_loop ();
}
void config_loop () {Serial.println ("");
Serial.println ("Изчакване на състоянието на бутона за конфигуриране …");
//display.print(" Чакай ");
ако (digitalRead (TRIGGER_PIN) == HIGH)
{
display.print ("Conf"); // WiFiManager
// Локална инициализация. След като бизнесът му приключи, няма нужда да го държите около 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(" статус на бутон False. Back to Main loop "); //display.print(" Основен цикъл "); //display.clear ();
}
Втората ще бъде нашата основна програма за получаване на HTTP отговор от конкретен сървър и показване на входното количество в дисплея.
За това първо трябва да вземем подробностите за реда и изместването от Flash паметта на ESP (адрес 0-> ред, 50-> смяна)
EEPROM.begin (100); // eeprom storageEEPROM.get (0, ред); // получаваме стойност от адрес 0
EEPROM.get (50, смяна); // Вземете стойност от адрес 50
след това трябва да предадем този ред и детайли на нашия http сървър по метода get, за да получим стойността на input и output.
Низ Base_url = "премахнат"; // моя основен urlHTTPClient http; // Обект от клас
Низ URL = Base_url+"?"+"Ред ="+ред+"& 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 ());
Низ 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* вход = корен ["вход"];
const char* изход = корен ["изход"];
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"); // общ текст
if ($ line == 'a0401' и $ shift = 'dd') {$ result ['input'] = 100; $ резултат ['изход'] = 99; }
else {$ result ['input'] = 200; $ резултат ['изход'] = 199; }
$ myObj-> input = ''. $ result ['input']. '';
$ myObj-> output = ''. $ result ['output']. '';
$ myJSON = json_encode ($ myObj);
ехо $ myJSON;
Сега нашият API за HTTP отговор е завършен.
Нашият http основен URL адрес ще бъде като
you_ip_address/esp_api.php
можете да проверите текста на отговора на API чрез
localhost/esp_api.php? line = a0401 & shift = dd
тук споменах ред като a0401 и смяна като dd.
Стъпка 6: Последна стъпка !
Въведете ip адреса на вашия компютър в базовия URL адрес
Низ Base_url = "премахнат"; // основният ви URL адрес
и качете във вашия ESP nodemcu. След като приключите, просто включете wifi от мобилния си телефон или лаптоп, ще получите мрежа, наречена AutoConnectAP. свържете се с него и въведете вашите идентификационни данни и конфигурации на линия.
След това нулирайте устройството си и проверете дали мрежата ви е свързана, след като се свърже, тогава всичко е направено.
Можете да видите, че входът се показва на дисплея.
ако искате да промените всяка линия или wifi идентификационни данни, можете да натиснете бутон за няколко секунди, на дисплея се показва confi.
сте влезли в режим demandAP. можете да промените и нулирате устройството.
Основният мото на неговите инструктажи, за да ви покаже как можем да използваме нашите хоби и забавни проекти в реалната производствена и производствена област и да покажем
Препоръчано:
TTGO (цветен) дисплей с Micropython (TTGO T-дисплей): 6 стъпки
TTGO (цветен) дисплей с Micropython (TTGO T-дисплей): TTGO T-дисплейът е платка, базирана на ESP32, която включва 1,14 инчов цветен дисплей. Таблото може да бъде закупено за награда под 7 $ (включително корабоплаването, награда, видяна на banggood). Това е невероятна награда за ESP32, включително дисплей
I2C / IIC LCD дисплей - Конвертиране на SPI LCD към I2C LCD дисплей: 5 стъпки
I2C / IIC LCD дисплей | Конвертирайте SPI LCD към I2C LCD дисплей: използването на spi lcd дисплей се нуждае от твърде много връзки, което е наистина трудно да се направи, затова намерих модул, който може да преобразува i2c lcd в spi lcd, така че нека започнем
Регулатор на напрежение на платка с дисплей / регулатор на напрежение Com дисплей Para Placa De Ensaio: 8 стъпки
Регулатор на напрежение на платка с дисплей / регулатор на напрежение Com дисплей Para Placa De Ensaio: Придобийте необходимите компоненти, които са в прикачения списък (има връзки, за да купите или да видите техните характеристики). lá os links para poderem comprar ou ver as caracteristicas d
Как да направите часовник в реално време с помощта на Arduino и TFT дисплей - Arduino Mega RTC с 3,5 -инчов TFT дисплей: 4 стъпки
Как да си направим часовник в реално време, използвайки Arduino и TFT дисплей | Arduino Mega RTC с 3,5-инчов TFT дисплей: Посетете моя канал в Youtube. Въведение:- В този пост ще направя „Часовник в реално време“, използвайки 3,5-инчов TFT сензорен LCD, Arduino Mega 2560 и DS3231 RTC модул … .Преди да започнете … проверете видеоклипа от моя канал в YouTube .. Забележка:- Ако използвате Arduin
8 Релейно управление с NodeMCU и IR приемник, използващ WiFi и IR дистанционно управление и приложение за Android: 5 стъпки (със снимки)
8 Релейно управление с NodeMCU и IR приемник, използващ WiFi и IR дистанционно и приложение за Android: Управление на 8 релейни превключвателя с помощта на nodemcu и IR приемник през wifi и дистанционно и приложение за android. Дистанционното работи независимо от wifi връзката. ТУК