विषयसूची:

वेब कनेक्टेड डिजिटल क्लॉक: 7 कदम
वेब कनेक्टेड डिजिटल क्लॉक: 7 कदम

वीडियो: वेब कनेक्टेड डिजिटल क्लॉक: 7 कदम

वीडियो: वेब कनेक्टेड डिजिटल क्लॉक: 7 कदम
वीडियो: How to become a web designer? | 7 easy steps! | Earn in $1000-$5000 | Him Singh 2024, नवंबर
Anonim
वेब कनेक्टेड डिजिटल घड़ी
वेब कनेक्टेड डिजिटल घड़ी

Amazon पर $10 की डिजिटल घड़ी मिली। अब इंटरनेट से समय निकालने के लिए इसे अनुकूलित करने के लिए।

आपूर्ति

बेसिक में प्रोग्राम करने योग्य एआरएम स्टाम्प यहां उपलब्ध है

चरण 1: मल्टीप्लेक्स डिस्प्ले के लिए डिजिट ड्राइव और सेगमेंट ड्राइव को कनेक्ट करें

मल्टीप्लेक्स डिस्प्ले के लिए डिजिट ड्राइव और सेगमेंट ड्राइव को कनेक्ट करें
मल्टीप्लेक्स डिस्प्ले के लिए डिजिट ड्राइव और सेगमेंट ड्राइव को कनेक्ट करें

मैंने बड़ी संख्या वाली डिजिटल घड़ी के साथ सस्ते से शुरुआत की। पहले मैंने मौजूदा क्लॉक चिप को हटा दिया। फिर कुछ जांच की और 7 सेगमेंट कनेक्शनों का पता लगाया, जिन्हें सीधे माइक्रोप्रोसेसर द्वारा संचालित किया जा सकता है। फिर 4 अंकों के ड्राइवर मिले जो ट्रांजिस्टर थे जिन्हें माइक्रोप्रोसेसर चला सकता है। और फिर उनको तार-तार कर दिया।

चरण 2: कनेक्शन का परीक्षण करें

कनेक्शन का परीक्षण करें
कनेक्शन का परीक्षण करें

एक प्रयोग के रूप में मैंने सभी लाइनों को चलाने, तारों की जांच करने और करंट मापने के लिए एक बेसिक प्रोग्राम लिखा, जो इस मामले में 82 mA था।

अगला लाइनों को स्कैन करने के लिए कोड लिखना था।

'वेब घड़ी प्रदर्शन ड्राइव

IO(7)=0 ' PMOS ड्राइव -- किसी दिन PWM होगी

y=45 से 48. के लिए

आईओ (वाई) = 0 ' अंक ड्राइव

x=8 से 15. के लिए

आईओ (एक्स) = 0 ' सेगमेंट ड्राइव

प्रतीक्षा करें (500)

आईओ (एक्स) = 1

अगला x

DIR(y)=0 ' खंड पर अक्षम ड्राइव

अगले आप

चरण 3: समय प्रदर्शित करने के लिए कोड और चमक को नियंत्रित करने के लिए पीडब्लूएम

समय प्रदर्शित करने के लिए कोड और चमक को नियंत्रित करने के लिए पीडब्लूएम
समय प्रदर्शित करने के लिए कोड और चमक को नियंत्रित करने के लिए पीडब्लूएम
समय प्रदर्शित करने के लिए कोड और चमक को नियंत्रित करने के लिए पीडब्लूएम
समय प्रदर्शित करने के लिए कोड और चमक को नियंत्रित करने के लिए पीडब्लूएम

इसके बाद मैंने सभी अंकों के ड्राइवरों को बिजली आपूर्ति में एक पीएमओएस ट्रांजिस्टर जोड़ा। इसके साथ पल्स चौड़ाई मॉडुलन द्वारा संचालित प्रदर्शन की चमक को नियंत्रित करेगा। यहाँ समय प्रदर्शित करने के लिए बुनियादी कोड है।

' वेब क्लॉक डिस्प्ले ड्राइव #include "LPC11U3x.bas"

ग्लोबल्स

घंटा = 0 ' घंटे को परिभाषित करें

मिनट = 0 'मिनट परिभाषित करें

#SEG_0 औरHBB00 परिभाषित करें

#परिभाषित SEG_1 &H1800

#परिभाषित 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

यदि घंटा = 0 तो घंटा = 12

#अगर अंत

घंटा १० = घंटा / १०

घंटा 1 = घंटा एमओडी 10

न्यूनतम १० = मिनट / १०

न्यूनतम 1 = मिनट एमओडी 10

मैं = 0 से 1. के लिए

अगर hr10 तो

आईओ(45) = 0

अगर अंत

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

GPIO_CLR(0) = DIGarray(hr10)

प्रतीक्षा करें (DIG_WAIT)

इनपुट (45)

आईओ(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)

आईओ(47) = 0

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

GPIO_CLR(0) = DIGarray(min10)

प्रतीक्षा करें (DIG_WAIT)

इनपुट (47)

आईओ(48) = 0

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

GPIO_CLR(0) = DIGarray(min1)

प्रतीक्षा करें (DIG_WAIT)

इनपुट (48)

अगला मैं

अंत उप

' उपयोगकर्ता TIMER1 (32 बिट) प्रत्येक मिनट को बाधित करने के लिए

इंटरप्ट सब टाइमर1IRQ

T1_IR = 1 'इंटरप्ट साफ़ करें

न्यूनतम += 1

अगर न्यूनतम> 59 तो

न्यूनतम = 0

घंटा + = 1

अगर घंटा> 23 तो

घंटा = 0

अगर अंत

अगर अंत

अंत उप

SUB ON_TIMER (max_cnt, dothis)

TIMER1_ISR = dothis + 1 'VIC का सेट फंक्शन -- थंब ऑपरेशन के लिए +1 की जरूरत है

SYSCON_SYSAHBCLKCTRL OR= (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 सक्षम करें

अंत उप

# 48 मेगाहर्ट्ज पर MINUT_PCLK 2880000000 ' 60 सेकंड परिभाषित करें

मुख्य:

घंटा = 9

मिनट = 33

ON_TIMER (MINUT_PCLK, पता TIMER1IRQ)

IO(7) = 0 ' PWM किसी दिन -- P0_22 पर जाने की आवश्यकता है ??

जबकि 1

डिस्प्ले_टाइम (0, घंटा, मिनट)

कुंडली

चरण 4: इंटरनेट कनेक्शन बनाएं

इंटरनेट कनेक्शन बनाएं
इंटरनेट कनेक्शन बनाएं

वाईफाई कनेक्शन के लिए ESP8266 का उपयोग करें। थोड़ी देर के लिए वेब के चारों ओर घूमने के बाद सबसे अच्छा समाधान nodemcu संस्करण 0.9.6 था और एक पुराने esp8266_flasher ने सबसे अच्छा काम किया।

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

फिर इंटरनेट से समय देने के लिए एक साधारण PHP वेबपेज--

कोरिडियम टाइम सर्वर

<?php

$timezone = htmlspecialchars($_GET["zone"]); अगर ($टाइमज़ोन == "")

$टाइमज़ोन = 'अमेरिका/लॉस_एंजेल्स';

$tz_object = नया डेटटाइमज़ोन($टाइमज़ोन);

$ डेटाटाइम = नया डेटटाइम ();

$ डेटाटाइम-> सेटटाइमज़ोन ($ tz_object);

गूंज "समय है-", $ डेटाटाइम-> प्रारूप ('एच: आई: एस');

गूंज "";

गूंज "तारीख है-", $ डेटाटाइम-> प्रारूप ('एम/डी/वाई');

?>

वह वेबपेज इसलिए है ताकि आप अनुरोध कर सकें

coridium.us/time.php -- और आपको यूएस पैसिफिक टाइम ज़ोन मिल जाता है

या

coridium.us/time.php?zone=यूरोप/लंदन

कोई त्रुटि जाँच नहीं और सबसे अधिक संभावना कभी नहीं होगी

और लुआ को पढ़ने के लिए -

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

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

sk: on ("प्राप्त करें", फ़ंक्शन (sck, c) प्रिंट (c) अंत)

sk: कनेक्ट (८०, "coridium.us")

sk:send("GET /time.php HTTP/1.1\r\nहोस्ट: coridium.us\r\nकनेक्शन: कीप-अलाइव\r\nस्वीकार करें: */*\r\n\r\n")

और आप के रूप में समय वापस मिलता है

समय है-09:38:49तिथि है-2018-31-12

चरण 5: वेब से समय को पार्स करने के लिए बेसिक कोड जोड़ें

वेब से समय को पार्स करने के लिए बेसिक कोड जोड़ें
वेब से समय को पार्स करने के लिए बेसिक कोड जोड़ें

यह पूर्ण बेसिक प्रोग्राम का एक सबसेट है, जिसे पूरा प्रोग्राम अंतिम चरण में लिंक पर देखा जा सकता है।

अगर strstr(build_gets, "समय है-") = 0 तो

घंटा = बिल्ड_गेट्स (8) - "0"

अगर build_gets(9) = ":" तो

मिनट = (बिल्ड_गेट्स(१०) - "0")*10

न्यूनतम += बिल्ड_गेट्स(११) - "0"

अन्यथा

घंटा = घंटा * 10 + बिल्ड_गेट्स (9) - "0"

मिनट = (build_gets(11) - "0")*10

न्यूनतम += बिल्ड_गेट्स(१२) - "0"

अगर अंत

अगर अंत

चरण 6: डिस्प्ले को मंद करने के लिए एक लाइट सेंसर और कोड जोड़ें

डिस्प्ले को मंद करने के लिए लाइट सेंसर और कोड जोड़ें
डिस्प्ले को मंद करने के लिए लाइट सेंसर और कोड जोड़ें
डिस्प्ले को मंद करने के लिए लाइट सेंसर और कोड जोड़ें
डिस्प्ले को मंद करने के लिए लाइट सेंसर और कोड जोड़ें
डिस्प्ले को मंद करने के लिए लाइट सेंसर और कोड जोड़ें
डिस्प्ले को मंद करने के लिए लाइट सेंसर और कोड जोड़ें

कमरे में परिवेश प्रकाश को महसूस करने के लिए एक फोटो ट्रांजिस्टर जोड़ा गया था। इसके बिना डिस्प्ले इतनी ब्राइट है कि रात में मरे हुओं को जगा सकता है।

फोटो ट्रांजिस्टर के आउटपुट का एनालॉग वोल्टेज पढ़ा जाता है और पल्स चौड़ाई मॉड्यूलेशन डिस्प्ले की समग्र चमक को सेट करता है।

चरण 7: घड़ी को ऊपर उठाएं और इसका उपयोग करना शुरू करें।

घड़ी का बटन दबाएं और उसका उपयोग करना शुरू करें।
घड़ी का बटन दबाएं और उसका उपयोग करना शुरू करें।

अंतिम संस्करण समय प्रदर्शित करता है, और लगभग 3 बजे यह वर्तमान समय को पढ़ने के लिए वेब पर जाता है। यह डे लाइट सेविंग टाइम को भी हैंडल करता है।

इस परियोजना के लिए प्रेरणा थी बिजली की विफलता जो हम यहां पहाड़ों में अनुभव करते हैं और घड़ियों को रीसेट करने या बैटरी को जीवित रखने के लिए उन्हें बदलने की आवश्यकता है।

यह परियोजना का एक त्वरित अवलोकन रहा है।

इस DIY वेब कनेक्टेड घड़ी का पूरा विवरण।

सिफारिश की: