Съдържание:

WIFI дисплей за управление на производството: 6 стъпки
WIFI дисплей за управление на производството: 6 стъпки

Видео: WIFI дисплей за управление на производството: 6 стъпки

Видео: WIFI дисплей за управление на производството: 6 стъпки
Видео: WiFi Интерфейс Для 3Д Принтера на ESP8266 2024, Юли
Anonim
WIFI дисплей за управление на производството
WIFI дисплей за управление на производството

Аз съм малка поредица за IOT и едноплатни компютри.

Винаги искам да го използвам извън хоби и забавни проекти (реално производство и производство).

Този Instructable е на път да създаде 4-цифрен 7-сегментен WIFI дисплей с ESP nodemcu за показване на почасови производствени данни. Работя в производствената индустрия на електрониката, където използваме Системата за изпълнение на производството (MES), за да наблюдаваме и контролираме входа, изхода и процеса на производствения етаж. В този проект създавам малък дисплей, който ще показва количеството на производствения вход по ред, смяна и час.

От техническа гледна точка този проект е подобен на дисплея за броя на абонатите в Youtube, където използваме API/HTTP отговор от онлайн.

Стъпка 1: Използвани части и инструменти:

Използвани части и инструменти
Използвани части и инструменти

Използвани хардуерни части:

  1. ESP nodemcu
  2. TM1637 4 -цифрен часовник Дисплей
  3. Натиснете превключвателя
  4. 10k резистор
  5. няколко джъмперни проводника

Използвани софтуерни инструменти:

  1. Arduino IDE
  2. Xampp за уеб сървър PHP/Apache

Използвана библиотека Arduino:

1. Wifi мениджър от tzapu & i Персонализиран за моите персонализирани файлове (wifimanager)

2. ESP_EEPROM за съхраняване на моите персонализирани стойности във Flash памет

3. SevenSegmentTM1637 За дисплей

Стъпка 2: Персонализиране на Wifi Manager

Персонализиране на Wifi Manager
Персонализиране на 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. можете да промените и нулирате устройството.

Основният мото на неговите инструктажи, за да ви покаже как можем да използваме нашите хоби и забавни проекти в реалната производствена и производствена област и да покажем

Препоръчано: