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

תצוגת תאריך, שעה וטמפרטורה באמצעות XinaBox: 8 שלבים
תצוגת תאריך, שעה וטמפרטורה באמצעות XinaBox: 8 שלבים

וִידֵאוֹ: תצוגת תאריך, שעה וטמפרטורה באמצעות XinaBox: 8 שלבים

וִידֵאוֹ: תצוגת תאריך, שעה וטמפרטורה באמצעות XinaBox: 8 שלבים
וִידֵאוֹ: כיוון השעון במכשיר רדיו בלוטוס NOA V300 2024, נוֹבֶמבֶּר
Anonim
תצוגת תאריך, שעה וטמפרטורה באמצעות XinaBox
תצוגת תאריך, שעה וטמפרטורה באמצעות XinaBox

תצוגת OLED מגניבה המציגה את התאריך, השעה והטמפרטורה בצלזיוס ובפרנהייט באמצעות Xinabox xChips המבוססת על ESP8266.

שלב 1: דברים המשמשים בפרויקט זה

רכיבי חומרה

  • XinaBox IP01 x 1 xChip מתכנת USB מבוסס על FT232R מבית FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core מבוסס על מודול Wi-Fi ESP8266
  • XinaBox SW01 x 1 xChip חיישן טמפרטורה, לחות ולחץ אטמוספרי מבוסס על BME280 של בוש.
  • XinaBox OD01 x 1 xChip 128x64 פיקסל OLED תצוגה
  • ספק כוח XinaBox PU01 x 1 xChip USB (סוג A)
  • מחברי אוטובוס XinaBox XC10 x 1 xChip
  • ספק כוח USB 5V x 1

אפליקציות תוכנה ושירותים מקוונים

Arduino IDE

שלב 2: סיפור

מבוא

בניתי את הפרויקט הזה כדי להציג את התאריך, השעה והטמפרטורה של UCT באמצעות XinaBox xChips המשתמש בפרוטוקול האוטובוס I2C. הזמן אחזר משרת NTP של גוגל. טמפרטורת הסביבה נמדדה באמצעות SW01 xChip והוצגה בתצוגת OLD xChip OLED בצלזיוס ובפרנהייט. התמונה למטה מציגה את תצוגת OLED.

תמונה
תמונה

OLED מציג תאריך, שעה וטמפרטורה

שלב 3: הורדת קבצים הכרחיים

תצטרך את הספריות והתוכנות הבאות לפרויקט זה.

  • Arduino IDE - תוכנת פיתוח בה תקודד
  • xSW01 - ספריית חיישן טמפרטורה
  • xCore - ספריית ליבה עבור XinaBox xChips
  • xOD01 - ספריית תצוגת OLED.
  • אזור זמן - ספרייה לבחירת אזור הזמן שלך
  • זמן - לשימוש בפונקציות זמן
  • NTPClient - מאפשר לך לקבל זמן מהשרת
  • יהיה עליך גם להוריד את לוח ESP8266 ולפעול לפי ההנחיות הנלוות אליו על מנת להתקין את הלוח

לאחר ההורדה תתקין את IDE ואת הספריות. זה די פשוט קדימה אם תעקוב אחר ההוראות.

שלב 4: הרכבה

XChip העיקרי שלך שיבצע ויעבד את התוכנית הוא CW01. הוא מבוסס על מודול ה- WiFi ESP8266 ומשתמש בפרוטוקול האוטובוס I2C. על מנת לתכנת ל- CW01, תזדקק לתכנות xChip. ה- IP01 מאפשר לנו לתכנת את CW01 דרך יציאת ה- USB במחשב שלנו פשוט על ידי לחיצה יחד על שני xChips באמצעות מחברי האוטובוס XC10 והכנסתו ליציאת ה- USB. ללא חיווט וללא צורך בהלחמה. דבר אחד שיש לשים לב אליו הוא הכיוון של שמות הזיהוי של xChip. כולם צריכים להיות מכוונים לאותו כיוון. כעת אמורה להיות לך ההגדרה הבאה.

תמונה
תמונה

לחץ יחד על CW01 ו- IP01 והכנס אותו ליציאת ה- USB במחשב שלך

אם אתה מכיר את xChips תוכל לחבר כל xChip יחד באמצעות מחברי אוטובוס XC10 שבהם ברצונך להשתמש עבור הפרויקט ולאחר מכן להכניס אותו ליציאת ה- USB. אנו נשתמש בחיישן טמפרטורה SW01 ובתצוגת OLD OD01.

תמונה
תמונה

תוכל לחבר את כל השבבים שלך יחד ולהכניס אותם ליציאת ה- USB שלך

שלב 5: תכנית

הורד או העתק והדבק את הקוד למטה ב- Arduino IDE שלך. אם אינך מבצע שינויים בקוד פשוט הזן את פרטי ה- WiFi שלך בשדות המתאימים להם כפי שמוצג להלן. הזן גם שרת זמן אמין של NTP. השתמשתי בשרת זמן של Google לפרויקט זה.

תמונה
תמונה

פרטי WiFi ושרת זמן NTP

עכשיו הידור והעלה. וודא שבחרת את יציאת ה- COM והלוח הנכונים בתפריט הכלים ב- Arduino IDE. לאחר העלאתם, השעה, התאריך והטמפרטורה אמורים להופיע להלן.

תמונה
תמונה

לאחר ההעלאה אתה אמור לראות את הדברים הבאים

שלב 6: הפוך אותו לנייד

כעת תוכל להסיר את היחידה מיציאת ה- USB שלך ולהפריד כל xChip על ידי משיכתה. מכיוון שהתכנות הושלמה, אין צורך עוד ב- IP01. כעת תוכל לחבר את הפרויקט שלך בכל דרך שתרצה, כל עוד שמות הזיהוי מכוונים לאותו כיוון. כדי להפעיל את היחידה שלנו נשתמש ב- PU01. זה מאפשר לנו להפעיל אותו מבנק כוח רגיל או מכל ספק כוח 5V USB. חיברתי את שלי כפי שמוצג להלן.

תמונה
תמונה

הרכבה סופית. ניתן לחבר את xChips בכל דרך שתחפוץ.

שלב 7: סיכום

השלמת הפרויקט תימשך 20 דקות. אם אתה רוצה את הזמן במיקום שלך, שקול להסתכל על הקוד לדוגמה בספריית אזור הזמן או לעשות חשבון עם זמן ה- UTC. לא נעשה שימוש בחוטים ואין צורך בהלחמה.

שלב 8: קוד

Date_Time_Temp.ino Arduino כל שעליך לעשות הוא להזין את פרטי ה- WiFi שלך בשדות שלהם ולהעלות ללוח שלך.

#include // כלול ספריית ליבה עבור XinaBox xCHIPS

#כלול // כלול ספריית תצוגה של OLED #כלול // כלול את ספריית חיישן הטמפרטורה #כלול // כלול פונקציונליות ESP8266WiFi #כלול // כלול ספריות זמן #כלול #הכללה #הכללה #הכללה #הכללה xSW01 SW01; // הגדר מאפייני NTP #הגדר ntpOffset 60 * 60 // תוך שניות #הגדר ntpInterval 60 * 1000 // במילי שניות // הכנס שרת זמן אמין ntp בין הציטוטים הכפולים // כאן השתמשתי בשרת זמן ntp של google # הגדר ntpAddress "time1.google.com" // הגדר את לקוח NTP UDP WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // טמפרטורה צפה משתנה של טמפרטורה; // טמפ 'צפה של צלזיוס; // פרנהייט // פרטי ה- wifi שלך const char* wifi_ssid = "XinaBox"; // wifi ssid const char* wifi_pass = "RapidIoT"; // סיסמת ה- wifi שלך // משתנה תאריך ושעה תאריך מחרוזת; זמן מחרוזת; // משתנים המכילים ימים וחודשים const char * days = {"ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"}; const char * months = {"יאן", "פברואר", "מר", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר" "," דצמבר "}; const char * ampm = {"AM", "PM"}; הגדרת חלל () {tempC = tempF = 0; // לאתחל את הטמפרטורה לאפס timeClient.begin (); // הפעל את לקוח NTP UDP // התחל תקשורת טורית Serial.begin (115200); // התחל תקשורת i2c והגדר סיכות Wire.begin (2, 14); // התחל חיישן טמפרטורה SW01.begin (); // הפעל את תצוגת OLED OLED.begin (); // תצוגת OLED ברורה OD01.clear (); // ליצור חיבור wifi wifi_connect (); עיכוב (1000); } לולאת void () {// הפעלה אם נוצר חיבור wifi אם (WiFi.status () == WL_CONNECTED) {SW01.poll (); // קרא טמפרטורה tempC = SW01.getTempC (); // אחסן טמפ 'ב- celcius tempF = SW01.getTempF (); // חנות טמפ 'פרנהייט תאריך = ""; // משתנה תאריך ברור clktime = ""; // משתנה זמן ברור // עדכן את הלקוח ntp וקבל את חותמת הזמן unix utc timeClient.update (); epochTime ארוך ללא חתום = timeClient.getEpochTime (); // להמיר חותמת זמן שהתקבלה לאובייקט time_t time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", אחרון, ראשון, מרץ, 1, 0}; אזור זמן UTC (utcRule, utcRule); // פורמט משתני זמן תאריך += ימים [יום חול (utc) - 1]; תאריך += ","; תאריך += חודשים [חודש (utc) - 1]; תאריך += ""; תאריך += יום (utc); תאריך += ","; תאריך += שנה (utc); // לעצב את הזמן לפורמט של 12 שעות עם AM/PM וללא שניות clktime += hourFormat12 (utc); clktime += ":"; אם (דקה (utc)

מוּמלָץ: