İçindekiler:

Üretim Yönetimi için WIFI Ekranı: 6 Adım
Üretim Yönetimi için WIFI Ekranı: 6 Adım

Video: Üretim Yönetimi için WIFI Ekranı: 6 Adım

Video: Üretim Yönetimi için WIFI Ekranı: 6 Adım
Video: TEE PLAN | DİNAMİK ÜRETİM YÖNETİMİ 2024, Temmuz
Anonim
Üretim Yönetimi için WIFI Ekranı
Üretim Yönetimi için WIFI Ekranı

IOT ve Tek kartlı bilgisayarlar hakkında biraz Seriyim.

Her zaman Hobi & Eğlence Projelerinin (gerçek Üretim ve İmalat) ötesinde kullanmak isterim.

Bu Talimat, saatlik Üretim Girdisini Göstermek için ESP nodemcu ile 4 haneli 7 segmentli WIFI ekranı oluşturmak üzeredir. Üretim Katı Girdisini, Çıktısını ve Sürecini İzlemek ve Kontrol Etmek için Üretim Yürütme Sistemini (MES) kullandığımız Elektronik üretim endüstrisinde çalışıyorum. Bu projemde üretim girdi miktarını satır, vardiya ve saat bazında gösterecek olan Küçük teşhir ünitesi oluşturuyorum.

Teknik olarak bu Proje, çevrimiçi API/HTTP yanıtını kullandığımız bir Youtube Abone sayısı ekranına benzer. Ancak burada, Girdi miktarını Almak için yerel MES sistemimizle etkileşim kurmak için kendi api'mizi oluşturacağız.

Adım 1: Kullanılan Parçalar ve Araçlar:

Kullanılan Parçalar ve Araçlar
Kullanılan Parçalar ve Araçlar

Kullanılan Donanım Parçaları:

  1. ESP düğümü
  2. TM1637 4 haneli saat Ekranı
  3. itme anahtarı
  4. 10k direnç
  5. birkaç atlama teli

Kullanılan Yazılım Araçları:

  1. Arduino IDE'si
  2. PHP/Apache web sunucusu için Xampp

Arduino Kütüphanesinde Kullanılanlar:

1. Wifi yöneticisi tzapu & i Özel dosyalarım için özelleştirilmiş (wifimanager)

2. Özel değerlerimi Flash bellekte saklamak için ESP_EEPROM

3. Ekran için SevenSegmentTM1637

2. Adım: Wifi Yöneticisini Özelleştirme

Wifi Yöneticisini Özelleştirme
Wifi Yöneticisini Özelleştirme

Bu İlk önce önce wifi yöneticisini kurdum ve sonra Wifi yöneticisi Klasörünü Kopyaladım ve Arduino kütüphane klasöründeki Aynı'ya tekrar geçtim, ardından WiFiManager_custom olarak yeniden adlandırdım.

Klasör Kök dizini Çoğunlukla gibi

C:\Kullanıcılar\bilgisayarınızın adı\Documents\Arduino\libraries

Sonra wifimanager_custom klasörünü açtım ve başlık.cpp dosyasını wifimanager_custom ile aynı olarak yeniden adlandırdım, başlık &.cpp dosyalarına da aynısını ekledim.

Ve Özel Form ve Düğmemi üstbilgiye ekledim.

HTTP_PORTAL_OPTIONS PROGMEM'de Menü için buton formumu ekledim.

ve satır ve vardiya girmek için yeni Form eklendi. bu formu basit metin formu olarak oluşturdum.

Bundan sonra.cpp dosyasında bu formlar için eylem işlevleri oluşturacağız, bunun için başlık dosyasında işlev bildirimi yapmamız gerekiyor.

/* özel işlevlerim */

geçersiz tutamakCustomForm(); geçersiz tutamakCustomSave();

özel işlevlerimi başlık dosyasında ilan ettim. bu, başlıktaki işimiz bitti, işlevimizi ve eylemlerimizi oluşturmak için.cpp dosyasıyla gitmeliyiz.

3. Adım: Form Eylemi için Özel İşlevler

Form Eylemi için Özel İşlevler
Form Eylemi için Özel İşlevler
Form Eylemi için Özel İşlevler
Form Eylemi için Özel İşlevler
Form Eylemi için Özel İşlevler
Form Eylemi için Özel İşlevler

Şimdi wifimanager_custom.cpp dosyamızı açıyoruz.

ve formumuz gönderildiğinde işlevlerimizi çağırmak için http yanıt işleyicimizi eklemeliyiz.

server->on(String(F("/custom_config")), std::bind(&WiFiManager::handleCustomForm, this)); // BENİM özel tanıtıcım

server->on(String(F("/custom_save")), std::bind(&WiFiManager::handleCustomSave, this)); // BENİM özel tanıtıcım

bunlar, form gönderildiğinde özel işlevlerimizi çağırır.

1.handleCustomForm()->, satır & kaydırma girişi & kaydet düğmesi için özel formumuzu içeren bir sayfa oluşturacaktır.

2.handleCustomSave()-> bu fonksiyon, form değerlerini alacak ve Flash bellek konumları 0 (satır) ve 50(shift) içinde saklayacaktır.

Adım 4: Bağlantılar ve Ana Program

Bağlantılar ve Ana Program
Bağlantılar ve Ana Program

Bağlantılar çok basit..

Bağlantılar ve kablolama:

nodemcu TM1637 Ekran

3.3v ----Vcc

G ----Gnd

D2 ---- CLK

D3----- DIO

nodemcu- basmalı anahtar

- +5V'den D8 pimine bağlı buton - topraktan D8 pimine bağlı 10K direnç

wifimanager'ımızı özelleştirmeyi bitirdik. şimdi ana programımızı oluşturmalıyız.

1. wifi yöneticimiz, bağlanmak için son kullanılan kimlik bilgileriyle wifi ağına bağlanacaktır, başarısız olursa bir AutoConnectAP wifi sunucusu açar. Bu wifi sunucusuna bağlanarak yeni wifi kimlik bilgilerini, hat ve vardiyayı yapılandırabiliriz.

2. daha sonra ana döngüye girecektir.

Ana döngümüz iki bölümden oluşacaktır. Bunlardan biri, yapılandırmak üzere talep modu AP'yi çağırmak için hattı değiştirmemiz, kaydırmamız veya herhangi bir wifi kimlik bilgisi eklememiz gerektiğinde confi alt yordamıdır. bu, D8 pinine bağlı bir basma düğmesine basıldığında çağrılır.

boşluk döngüsü () {

config_loop();

}

void config_loop(){ Serial.println("");

Serial.println("Yapılandırma butonunun Durumu Bekleniyor…");

//display.print("Bekle");

if (digitalRead(TRIGGER_PIN) == YÜKSEK)

{

display.print("Konf"); //WiFiYöneticisi

//Yerel başlatma. İşi bittiğinde, onu WiFiManager wifiManager'ın etrafında tutmaya gerek yoktur;

// ayarları sıfırla - test için

//wifiManager.resetSettings();

//yapılandırma portalı kapanana kadar zaman aşımını ayarlar //her şeyi yeniden denemek veya uyku moduna geçirmek için kullanışlıdır //saniyeler içinde

//wifiManager.setTimeout(120);

//belirtilen adla bir erişim noktası başlatır

//burada "AutoConnectAP" //ve yapılandırmayı bekleyen bir engelleme döngüsüne girer

//BU OLMADAN AP SDK 1.5 İLE DÜZGÜN ÇALIŞMIYOR, en az 1.5.1'e güncelleyin //WiFi.mode(WIFI_STA);

if (!wifiManager.startConfigPortal("OnDemandAP")) { Serial.println("bağlanamadı ve zaman aşımına uğradı"); gecikme(3000); //sıfırlayıp yeniden deneyin veya derin uyku moduna geçirin ESP.reset(); gecikme (5000); } }

//Serial.println("Buton durumu False. Ana Döngüye Dön"); //display.print("Ana döngü"); //display.clear();

}

İkincisi, belirli bir sunucudan HTTP yanıtı almak ve Giriş miktarını Ekranda görüntülemek için ana programımız olacaktır.

Bunun için öncelikle ESP'nin Flash belleğinden line & shift detayımızı almalıyız (adres 0-> line, 50-> shift)

EEPROM.başla(100); // eeprom depolamaEEPROM.get(0, satır); // 0 adresinden Değer al

EEPROM.get(50, shift); // 50 adresinden Değer Al

daha sonra girdi ve çıktının değerini almak için bu satırı & shift ayrıntılarını get yöntemiyle http sunucumuza iletmeliyiz.

String Base_url="kaldırıldı"; // benim temelim urlHTTPClient http; // HTTPClient sınıfının nesnesi

Dize URL=Base_url+"?"+"line="+line+"&shift="+shift;

Seri.println(URL);

http.begin(URL);

int httpKodu =

Serial.println(http.getString()); // bu, tüm http yanıt dizesini yazdıracak;

Tüm metnin nasıl olduğunu istiyorsanız, işiniz burada biter, onu doğrudan tm1637 ekranında görüntüleyebiliriz.

display.print(http.getString());

Ancak tüm metni göstermek istemiyorum, çünkü girdi, json biçiminde çıktı ve veritabanı ve etcs hakkında diğer bazı genel metinler içeriyor.

bu yüzden önce Substring() işlevini kullanarak bu genel metni yanıt dizesinden kaldırdım.

genel metnin uzunluğunu saydım ve kırptım.

if (httpCode > 0) { const size_t bufferSize = 100; //DynamicJsonDocument jsonBuffer(bufferSize); DynamicJsonDocument kökü(bufferSize);

//JsonObject& root = doc.parseObject(http.getString());

String json_string=http.getString().substring(121); /* bu benim genel metnimin karşılığıdır, eğer yanıtlayıcınızda böyle bir şey yoksa bu kodu kaldırabilirsiniz; */

//Serial.println(json_string);

DeserializationError hatası = deserializeJson(root, json_string);

//JsonObject& root = jsonBuffer.parseObject(http.getString());

eğer (hata)

{ Serial.print(F("deserializeJson() başarısız oldu: "));

Seri.println(hata.c_str());

dönüş;

}

Başka{

const karakter* girdi = kök["girdi"];

const char* çıktı = kök["çıktı"];

Serial.print("Giriş:");

Seri.println(giriş);

Serial.print("Çıkış:");

Seri.println(çıktı);

display.print("..in..");

display.clear(); // ekranı temizle

display.print(input);// print BAZI BAZI BAZLARI SAYIM

}

işte bu kadar ana programımız bitti.

Adım 5: Web Sunucusu Oluşturma

Web Sunucusu Oluşturma
Web Sunucusu Oluşturma
Web Sunucusu Oluşturma
Web Sunucusu Oluşturma

Tam miktarı elde etmek için SQL veritabanımdan veri almak için web hizmetim ve PHP kodum olarak xampp kullanıyorum.

Ama tüm orijinal kodlarını paylaşamam. çünkü şirketimin gizliliği. ama ben bir web sunucusunun nasıl oluşturulacağını göstereceğim, yapay statik girdi ve çıktı miktarını göstereceğim.

Bunun için herhangi bir web barındırıcısına ihtiyacınız var, burada ana bilgisayarım olarak xampp kullanıyorum.

xampp'i buradan indirebilirsiniz.

xampp'yi kurun… net bir talimata ihtiyacınız varsa bu bağlantıyı kullanabilirsiniz.

xampp'yi kurduktan sonra kök dizininize gitmeniz gerekir.

C:\xampp\htdocs

tüm php programlarınız bu kökün içinde olmalıdır.

sayfamı esp_api.php adında oluşturdum

bu benim php kodum. burada sadece giriş ve çıkışın statik değerlerini görüntülüyorum;

$satır=$_GET['satır'];$shift=$_GET['shift'];

yankı ("myString"); //genel Metin

if($line=='a0401' ve $shift='dd') { $sonuç['girdi']=100; $sonuç['çıktı']=99; }

else { $sonuç['girdi']=200; $sonuç['çıktı']=199; }

$myObj->input =''.$result['input'].'';

$myObj->çıktı =''.$sonuç['çıktı'].'';

$myJSON = json_encode($myObj);

echo $myJSON;

Artık HTTP yanıt API'miz bitti.

http temel url'miz şöyle olacak

you_ip_address/esp_api.php

API yanıt metninizi şu şekilde kontrol edebilirsiniz:

localhost/esp_api.php?line=a0401&shift=dd

burada satırdan a0401 ve shift olarak dd olarak bahsettim.

Adım 6: Son Adım!!

Son adım!!!
Son adım!!!
Son adım!!!
Son adım!!!
Son adım!!!
Son adım!!!

Temel URL'ye bilgisayarınızın ip adresini girin

String Base_url="kaldırıldı"; // temel url'niz

ve ESP nodemcu'nuza yükleyin. Wi-Fi'nizi cep telefonunuzdan veya dizüstü bilgisayarınızdan açtığınızda, AutoConnectAP adlı ağa sahip olacaksınız. onunla bağlanın ve kimlik bilginizi ve hat yapılandırmalarınızı girin.

Ardından cihazınızı sıfırlayın ve bağlandıktan sonra ağınızın bağlı olup olmadığını kontrol edin, ardından her şey yapılır.

Girişin ekranda görüntülendiğini görebilirsiniz.

Herhangi bir hattı veya wifi kimlik bilgisini değiştirmek isterseniz, basmalı düğmeye birkaç saniye basabilirsiniz, ekranda confi gösterilir.

talep AP moduna girdiniz. cihazı değiştirebilir ve sıfırlayabilirsiniz.

Hobi ve eğlence projelerimizi gerçek üretim ve üretim alanında nasıl kullanabileceğimizi göstermek ve göstermek için onun talimatının ana motoru

Önerilen: