תוכן עניינים:

תצוגת WIFI לניהול ייצור: 6 שלבים
תצוגת WIFI לניהול ייצור: 6 שלבים

וִידֵאוֹ: תצוגת WIFI לניהול ייצור: 6 שלבים

וִידֵאוֹ: תצוגת WIFI לניהול ייצור: 6 שלבים
וִידֵאוֹ: ESET remote administrator - webex training V6 1 2024, נוֹבֶמבֶּר
Anonim
תצוגת WIFI לניהול ייצור
תצוגת WIFI לניהול ייצור

אני קצת סדרה בנושא מחשבי IOT ומחשבי לוח יחיד.

אני תמיד רוצה להשתמש בו מעבר לפרויקטים של תחביבים וכיף (ייצור וייצור אמיתי).

הוראה זו עומדת ליצור תצוגת WIFI בת 4 ספרות בת 7 מגזרים עם nodemcu ESP להצגת קלט ייצור לפי שעה. אני עובד בתעשיית הייצור האלקטרוניקה, שם אנו משתמשים במערכת ביצוע ייצור (MES) כדי לפקח ולשלוט על תשומות, תפוקות ותהליכי רצפת ייצור. בפרויקט זה אני יוצר יחידת תצוגה קטנה שתציג את כמות קלט הייצור לפי שורה, משמרת ושעה.

מבחינה טכנית פרויקט זה דומה לתצוגת ספירת המנויים של YouTube, שבה אנו משתמשים בתגובת API/HTTP מהאינטרנט. אך כאן אנו הולכים ליצור ממשק API משלך לאינטראקציה עם מערכת MES המקומית שלנו בכדי לקבל כמות קלט.

שלב 1: חלקים וכלים בשימוש:

חלקים וכלים בשימוש
חלקים וכלים בשימוש

חלקי חומרה בשימוש:

  1. ESP nodemcu
  2. תצוגת שעון 4 ספרות TM1637
  3. מתג לחיצה
  4. נגד 10k
  5. כמה חוטי מגשר

כלי תוכנה בשימוש:

  1. Arduino IDE
  2. Xampp עבור שרת האינטרנט PHP/Apache

ספריית ארדואינו משמשת:

1. מנהל Wifi מאת tzapu & i מותאם אישית לתיקים המותאמים אישית שלי (wifimanager)

2. ESP_EEPROM לאחסון הערכים המותאמים אישית שלי בזיכרון Flash

3. SevenSegmentTM1637 לתצוגה

שלב 2: התאמה אישית של מנהל ה- Wifi

התאמה אישית של מנהל ה- Wifi
התאמה אישית של מנהל ה- Wifi

בפעם הראשונה התקנתי מנהל מנהל wifi ולאחר מכן העתקתי את תיקיית מנהל ה- Wifi והעברתי אותו באותו תיקיית הספרייה של Arduino, ולאחר מכן שונה שמו ל- WiFiManager_custom.

תיקיית שורש תיקיות בעיקר אוהבת

C: / Users / שם המחשב שלך / Documents / Arduino / libraries

אחר כך פתחתי את תיקיית wifimanager_custom ושניתי את שם קובץ ה-.cpp של הכותרת זהה ל- wifimanager_custom, והוספתי אותו גם בקבצי הכותרת &.cpp.

והוספתי את הטופס והכפתור המותאם אישית שלי בכותרת.

ב- HTTP_PORTAL_OPTIONS PROGMEM הוספתי את טופס הכפתורים שלי לתפריט.

והוסיף טופס חדש לכניסה לשורה ומשמרת. יצרתי טופס זה כטופס טקסט פשוט.

לאחר מכן אנו הולכים ליצור פונקציות פעולה עבור טפסים אלה בקובץ.cpp, לשם כך עלינו לבצע הצהרת פונקציות בקובץ הכותרת.

/ * הפונקציות המותאמות אישית שלי */

handle handleCustomForm (); handle 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 (shift).

שלב 4: חיבורים ותוכנית ראשית

חיבורים ותוכנית ראשית
חיבורים ותוכנית ראשית

החיבורים פשוטים מאוד..

חיבורים וחיווט:

תצוגה nodemcu TM1637

3.3v ---- Vcc

G ---- Gnd

D2 ---- CLK

D3 ----- DIO

nodemcu- מתג דחיפה

- כפתור לחיצה מוצמד לסיכה D8 מ- +5V - הנגד 10K המחובר לסיכה D8 מהקרקע

סיימנו להתאים אישית את מנהל ה- wifimanager שלנו. עכשיו עלינו ליצור את התוכנית העיקרית שלנו.

1. מנהל ה- wifi שלנו יתחבר לרשת ה- wifi עם אישורים שהיו בשימוש אחרון כדי להתחבר, אם הוא נכשל הוא יפתח שרת wifi של AutoConnectAP. אנו יכולים להגדיר נתוני Wi -Fi חדשים, קו ומשמרת על ידי חיבור לשרת wifi זה.

2. ואז הוא יכנס ללולאה הראשית.

הלולאה הראשית שלנו תכלול שני חלקים. אחת מהן היא תת -קו קונפי כאשר עלינו לשנות קו, לשנות או להוסיף אישורי wifi כדי להתקשר למצב דרישה AP כדי להגדיר. זה יקרא כאשר לוחצים על לחצן לחיצה המחובר לסיכת D8.

לולאת חלל () {

config_loop ();

}

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

Serial.println ("מחכה לסטטוס של לחצן התצורה …");

//display.print("Wait ");

אם (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(" מצב הכפתור שקר. חזרה ללולאה הראשית "); //display.print("לולאה ראשית "); //display.clear ();

}

השנייה תהיה התוכנית העיקרית שלנו לקבל תגובת HTTP משרת מסוים ולהציג את כמות הקלט בתצוגה.

לשם כך ראשית עלינו לקבל את פרטי הקו והמשמרת שלנו מאחסון ה- Flash של ESP (כתובת 0-> שורה, 50-> משמרת)

EEPROM.begin (100); // eeprom storageEEPROM.get (0, שורה); // לקבל ערך מהכתובת 0

EEPROM.get (50, משמרת); // קבל ערך מכתובת 50

לאחר מכן עלינו להעביר את השורה הזו ולהעביר את פרטי השרת לשרת ה- http שלנו באמצעות שיטת get כדי לקבל את הערך של קלט ופלט.

String Base_url = "הוסר"; // url הבסיס HTTPClient http; // אובייקט מסוג

כתובת URL של מחרוזת = Base_url+"?"+"Line ="+line+"& shift ="+shift;

Serial.println (URL);

http.begin (URL);

int httpCode = http. GET ();

Serial.println (http.getString ()); // זה ידפיס את כל מחרוזת התגובה של

אם אתה רוצה כיצד כל הטקסט אז העבודה שלך מסתיימת כאן בעצמו נוכל להציג אותו ישירות בתצוגה tm1637.

display.print (http.getString ());

אבל אני לא רוצה להציג את כל הטקסט מכיוון שהוא מכיל קלט, פלט בצורת json ועוד טקסט כללי אחר על מסד הנתונים שלו וכו '.

אז קודם כל הסרתי את הטקסט הכללי ממחרוזת התגובות באמצעות הפונקציה Substring ().

ספרתי את אורך הטקסט הכללי וחתכתי אותו.

אם (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* input = root ["input"];

const char* output = root ["פלט"];

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'];

הד ("myString"); // טקסט כללי

if ($ line == 'a0401' ו- $ shift = 'dd') {$ result ['input'] = 100; $ result ['output'] = 99; }

אחרת {$ result ['input'] = 200; $ result ['output'] = 199; }

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

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

$ myJSON = json_encode ($ myObj);

הד $ myJSON;

כעת ה- API לתגובת HTTP שלנו הסתיים.

כתובת האתר הבסיסית של http תהיה כמו

you_ip_address/esp_api.php

תוכל לבדוק את טקסט תגובת ה- API שלך על ידי

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

כאן הזכרתי את הקו כ- A0401 והעברתי כ- DD.

שלב 6: שלב אחרון !

צעד אחרון!!!
צעד אחרון!!!
צעד אחרון!!!
צעד אחרון!!!
צעד אחרון!!!
צעד אחרון!!!

הזן את כתובת ה- ip של המחשב שלך בכתובת URL הבסיסית

String Base_url = "הוסר"; // כתובת האתר הבסיסית שלך

והעלה ל- nodemcu ESP שלך. לאחר שתסיים להפעיל את ה- wifi מהנייד או מהמחשב הנייד שלך, תקבל רשת בשם AutoConnectAP. התחבר אליו והזן את תעודות האישור והקווים שלך.

לאחר מכן אפס את המכשיר ובדוק שהרשת שלך מחוברת ברגע שהיא מתחברת ואז הכל נעשה.

אתה יכול לראות שהקלט מוצג בתצוגה.

אם אתה רוצה לשנות כל קו או אישורי wifi אתה יכול ללחוץ על מתג לחיצה למשך מספר שניות, התצוגה מראה קונפי.

נכנסת למצב demandAP. אתה יכול לשנות את המכשיר ולאפס אותו.

המוטו העיקרי של ההוראה שלו להראות לך כיצד אנו יכולים להשתמש בפרויקטים של תחביב וכיף שלנו באזור הייצור והייצור האמיתי ולהראות

מוּמלָץ: