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

שעון דיגיטלי מחובר לאינטרנט: 7 שלבים
שעון דיגיטלי מחובר לאינטרנט: 7 שלבים

וִידֵאוֹ: שעון דיגיטלי מחובר לאינטרנט: 7 שלבים

וִידֵאוֹ: שעון דיגיטלי מחובר לאינטרנט: 7 שלבים
וִידֵאוֹ: כך תעיפו פולשים מהרשת האלחוטית WiFi שלכם ! 2024, יולי
Anonim
שעון דיגיטלי מחובר לאינטרנט
שעון דיגיטלי מחובר לאינטרנט

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

אספקה

ניתן לתכנת חותמת ARM ב- BASIC כאן

שלב 1: חבר כונן ספרות וכונן פלח לתצוגה מרובת כיוונים

חבר כונן ספרות וכונן סגמנט לתצוגה מרובת כפפות
חבר כונן ספרות וכונן סגמנט לתצוגה מרובת כפפות

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

שלב 2: בדוק את החיבורים

בדוק את החיבורים
בדוק את החיבורים

כניסוי כתבתי תוכנית BASIC להנעת כל הקווים, לבדוק את החיווט ולמדוד את הזרם, שבמקרה זה היה 82 mA

הבא היה לכתוב את הקוד לסריקת השורות.

'כונן תצוגה של שעון אינטרנט

IO (7) = 0 'כונן PMOS - יהיה PWM מתישהו

עבור y = 45 עד 48

IO (y) = כונן 0 ספרות

עבור x = 8 עד 15

IO (x) = כונן קטע 0 '

חכה (500)

IO (x) = 1

x הבא

DIR (y) = 0 'השבת כונן בקטע

y הבא

שלב 3: קוד לזמן הצגה ו- PWM לשליטה על הבהירות

קוד להצגת זמן ו- PWM לשליטה על הבהירות
קוד להצגת זמן ו- PWM לשליטה על הבהירות
קוד להצגת זמן ו- PWM לשליטה על הבהירות
קוד להצגת זמן ו- PWM לשליטה על הבהירות

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

כונן תצוגת שעון אינטרנט #כולל "LPC11U3x.bas"

'גלובלים

hr = 0 'הגדרת שעה

min = 0 'הגדרת דקה

#הגדר SEG_0 & HBB00

#הגדר SEG_1 ו- H1800

#define SEG_2 & HD300

#הגדר SEG_3 ו- HD900

#הגדר SEG_4 & H7800

#הגדר SEG_5 & HE900

#הגדר SEG_6 & HEB00

#הגדר SEG_7 & H9800

#הגדר SEG_8 & HFB00

#הגדר SEG_9 & HF800

#הגדר SEG_o & H4B00

#הגדר SEG_f ו- HE200

const DIGarray = {SEG_0, SEG_1, SEG_2, SEG_3, SEG_4, SEG_5, SEG_6, SEG_7, SEG_8, SEG_9, SEG_o, SEG_f}

#הגדר DIG_WAIT 1

#הגדר US_TIME

זמן תצוגה משנה (שגיאה, שעות, דקות)

עמום hr10, hr1, min10, min1, i

#ifdef US_TIME

אם שעות> 12 אז שעה -= 12

אם hr = 0 אז hr = 12

#endif

hr10 = hr / 10

hr1 = hr MOD 10

min10 = min / 10

min1 = min MOD 10

עבור i = 0 עד 1

אם hr10 אז

IO (45) = 0

endif

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (hr10)

GPIO_CLR (0) = DIGarray (hr10)

המתן (DIG_WAIT)

קלט (45)

IO (46) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (hr1) + IF (i, & H400, 0)

GPIO_CLR (0) = DIGarray (hr1) + IF (i, & H400, 0)

המתן (DIG_WAIT)

קלט (46)

IO (47) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)

GPIO_CLR (0) = DIGarray (min10)

המתן (DIG_WAIT)

קלט (47)

IO (48) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min1)

GPIO_CLR (0) = DIGarray (min1)

המתן (DIG_WAIT)

קלט (48)

אני הבא

endub

'משתמש TIMER1 (32 סיביות) להפריע בכל דקה

SUB TIME 1IRQ

T1_IR = 1 'נקה הפסקה

דקה += 1

אם min> 59 אז

דקות = 0

שעה += 1

אם שעות> 23 אז

שעה = 0

endif

endif

ENDSUB

SUB ON_TIMER (max_cnt, dothis)

TIMER1_ISR = פונקציה זו של + 1 'של VIC - צריך את +1 לפעולת Thumb

SYSCON_SYSAHBCLKCTRL או = (1 << 10) 'אפשר TIMER1

T1_PR = 0 'ללא קנה מידה מראש - יתאים את הערך לזמן מדויק יותר

VICIntEnable OR = (1 << TIMER1_IRQn) 'אפשר הפסק

T1_MR0 = max_cnt-1 'הגדרת מספר התאמה של אלפיות השנייה

T1_MCR = 3 'הפרעה ואיפוס מופעל

MR0 T1_IR = 1 'הפרעה ברורה

T1_TC = 0 'מונה טיימר ברור

T1_TCR = 1 'TIMER1 אפשר

ENDSUB

#הגדר MINUT_PCLK 2880000000 '60 שניות ב 48 MHz

רָאשִׁי:

שעות = 9

דקה = 33

ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)

IO (7) = 0 'PWM יום אחד - צריך לעבור ל- P0_22 ??

בעוד 1

זמן תצוגה (0, שעות, דקות)

לוּלָאָה

שלב 4: צור חיבור לאינטרנט

צור חיבור לאינטרנט
צור חיבור לאינטרנט

השתמש ב- ESP8266 לחיבור WiFi. לאחר שחיטט קצת באינטרנט הפתרון הטוב ביותר היה nodemcu גירסה 0.9.6 ו- esp8266_flasher ישן יותר עבד הכי טוב.

www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip

ואז דף אינטרנט פשוט לשרת זמן מהאינטרנט-

שרת זמן קורידיום

<? php

$ timezone = htmlspecialchars ($ _ GET ["zone"]); אם ($ timezone == "")

$ timezone = 'America/Los_Angeles';

$ tz_object = DateTimeZone חדש (אזור זמן $);

$ datetime = DateTime () חדש;

$ datetime-> setTimezone ($ tz_object);

הד "זמן הוא-", פורמט $ datetime-> ('H: i: s');

הד "";

הד "תאריך הוא-", פורמט $ datetime-> ('m/d/Y');

?>

דף אינטרנט זה הוא כך שתוכל לבקש

coridium.us/time.php - ואתה מקבל היטב את אזור הזמן של האוקיינוס השקט

אוֹ

coridium.us/time.php?zone=Europe/London

אין בדיקת שגיאות וסביר להניח שלעולם לא תהיה

ולואה לקרוא את זה -

wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect () …

sk = net.createConnection (net. TCP, 0)

sk: on ("קבל", פונקציה (sck, c) הדפס (c) סוף)

sk: connect (80, "coridium.us")

sk: send ("GET /time.php HTTP/1.1 / r / n Host: coridium.us / r / n חיבור: שמור על חיים / r / n קבל: */ *\ r / n / r / n")

ואתה מקבל זמן אחורה כמו

השעה היא -09: 38: 49 התאריך הוא -2018-31-12

שלב 5: הוסף קוד בסיסי כדי לנתח את הזמן מהאינטרנט

הוסף קוד בסיסי כדי לנתח את הזמן מהאינטרנט
הוסף קוד בסיסי כדי לנתח את הזמן מהאינטרנט

זוהי תת -קבוצה של התוכנית BASIC המלאה, שניתן לצפות בתכנית המלאה בקישור בשלב האחרון.

אם strstr (build_gets, "time is-") = 0 אז

hr = build_gets (8) - "0"

אם build_gets (9) = ":" אז

min = (build_gets (10) - "0")*10

דקות += build_gets (11) - "0"

אַחֵר

hr = hr * 10 + build_gets (9) - "0"

min = (build_gets (11) - "0")*10

דקות += build_gets (12) - "0"

endif

endif

שלב 6: הוסף חיישן אור וקוד כדי לעמעם את המסך

הוסף חיישן אור וקוד כדי לעמעם את המסך
הוסף חיישן אור וקוד כדי לעמעם את המסך
הוסף חיישן אור וקוד כדי לעמעם את המסך
הוסף חיישן אור וקוד כדי לעמעם את המסך
הוסף חיישן אור וקוד כדי לעמעם את המסך
הוסף חיישן אור וקוד כדי לעמעם את המסך

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

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

שלב 7: כפתור את השעון והתחל להשתמש בו

לחצו על השעון והתחילו להשתמש בו
לחצו על השעון והתחילו להשתמש בו

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

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

זו הייתה סקירה מהירה של הפרויקט.

פרטים מלאים על השעון המחובר לרשת DIY זה.

מוּמלָץ: