תוכן עניינים:
- שלב 1: חלקים וכלים בשימוש:
- שלב 2: התאמה אישית של מנהל ה- Wifi
- שלב 3: פונקציות מותאמות אישית לפעולת טופס
- שלב 4: חיבורים ותוכנית ראשית
- שלב 5: יצירת שרת אינטרנט
- שלב 6: שלב אחרון !
וִידֵאוֹ: תצוגת WIFI לניהול ייצור: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
אני קצת סדרה בנושא מחשבי IOT ומחשבי לוח יחיד.
אני תמיד רוצה להשתמש בו מעבר לפרויקטים של תחביבים וכיף (ייצור וייצור אמיתי).
הוראה זו עומדת ליצור תצוגת WIFI בת 4 ספרות בת 7 מגזרים עם nodemcu ESP להצגת קלט ייצור לפי שעה. אני עובד בתעשיית הייצור האלקטרוניקה, שם אנו משתמשים במערכת ביצוע ייצור (MES) כדי לפקח ולשלוט על תשומות, תפוקות ותהליכי רצפת ייצור. בפרויקט זה אני יוצר יחידת תצוגה קטנה שתציג את כמות קלט הייצור לפי שורה, משמרת ושעה.
מבחינה טכנית פרויקט זה דומה לתצוגת ספירת המנויים של YouTube, שבה אנו משתמשים בתגובת API/HTTP מהאינטרנט. אך כאן אנו הולכים ליצור ממשק API משלך לאינטראקציה עם מערכת MES המקומית שלנו בכדי לקבל כמות קלט.
שלב 1: חלקים וכלים בשימוש:
חלקי חומרה בשימוש:
- ESP nodemcu
- תצוגת שעון 4 ספרות TM1637
- מתג לחיצה
- נגד 10k
- כמה חוטי מגשר
כלי תוכנה בשימוש:
- Arduino IDE
- Xampp עבור שרת האינטרנט PHP/Apache
ספריית ארדואינו משמשת:
1. מנהל Wifi מאת tzapu & i מותאם אישית לתיקים המותאמים אישית שלי (wifimanager)
2. ESP_EEPROM לאחסון הערכים המותאמים אישית שלי בזיכרון Flash
3. SevenSegmentTM1637 לתצוגה
שלב 2: התאמה אישית של מנהל ה- 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. אתה יכול לשנות את המכשיר ולאפס אותו.
המוטו העיקרי של ההוראה שלו להראות לך כיצד אנו יכולים להשתמש בפרויקטים של תחביב וכיף שלנו באזור הייצור והייצור האמיתי ולהראות
מוּמלָץ:
תצוגת שעון תצוגת LED עם מטריקס LED בשליטת WiFi: 3 שלבים (עם תמונות)
תאורת שעון תצוגת מטריצת תצוגת LED מבוקרת באמצעות WiFi: רצועות LED הניתנות לתכנות, למשל מבוסס על WS2812, מרתקים. יישומים הם רבים ואתה יכול להשיג תוצאות מרשימות במהירות. ואיכשהו בניית שעונים היא תחום אחר שאני חושב עליו הרבה. מתחיל עם קצת ניסיון בתחום
תצוגת TTGO (צבע) עם מיקרופיתון (תצוגת TGO T): 6 שלבים
תצוגת TTGO (צבע) עם מיקרופיתון (תצוגת TTGO T): תצוגת TTGO T היא לוח המבוסס על ESP32 הכולל תצוגת צבע בגודל 1.14 אינץ '. ניתן לרכוש את הלוח תמורת פרס של פחות מ -7 $ (כולל משלוח, פרס שניתן לראות ב- Banggood). זהו פרס מדהים עבור ESP32 כולל תצוגה
תקעי Arduino Mega RJ45 לניהול כבלים: 5 שלבים
תקעי Arduino Mega RJ45 לניהול כבלים: ל- Arduino Mega טונות של סיכות - זו סיבה גדולה לרכוש אחד, נכון? אנחנו רוצים להשתמש בכל הסיכות האלה! חיווט יכול להפוך במהירות לבלגן של ספגטי ללא ניהול כבלים. אנו יכולים לאחד חוטים באמצעות תקעי אתרנט. הנתונים מוצמדים על
שיעור לניהול התצורה ב- ESP32 EEPROM: 5 שלבים
מחלקה לניהול התצורה ב- ESP32 EEPROM: היי, אני רוצה לשתף אתכם בכל המחלקה שפיתחתי וזה מפשט את המשימה של הוספת מידע תצורה במכשירי ESP32. הכיתה את המטרות הבאות: להקל על יצירת תצורה מערכת במכשירי ESP32
כיצד להכין שעון בזמן אמת באמצעות תצוגת Arduino ו- TFT - Arduino Mega RTC עם תצוגת TFT 3.5 אינץ ': 4 שלבים
כיצד להכין שעון בזמן אמת באמצעות תצוגת Arduino ו- TFT | Arduino Mega RTC עם תצוגת TFT 3.5 אינץ ': בקר בערוץ היוטיוב שלי. הקדמה:- בפוסט זה אני הולך לעשות "שעון בזמן אמת" באמצעות 3.5 אינץ' TFT מגע LCD, Arduino Mega מודול RTC 2560 ו- DS3231 …. לפני תחילת … בדוק את הסרטון מערוץ היוטיוב שלי..הערה:- אם אתה משתמש ב- Arduin