جدول المحتويات:

الساعة الرقمية المتصلة بالويب: 7 خطوات
الساعة الرقمية المتصلة بالويب: 7 خطوات

فيديو: الساعة الرقمية المتصلة بالويب: 7 خطوات

فيديو: الساعة الرقمية المتصلة بالويب: 7 خطوات
فيديو: كيفية ربط الساعة الذكية smart watch 7 ⌚مع الهاتف لإستقبال الإشعارات والرسائل والمكالمات... 2024, شهر نوفمبر
Anonim
ساعة رقمية متصلة بالويب
ساعة رقمية متصلة بالويب

عثرت على ساعة رقمية بقيمة 10 دولارات في أمازون. الآن لتخصيصه للحصول على الوقت من الإنترنت.

اللوازم

ARM Stamp قابلة للبرمجة في BASIC متوفرة هنا

الخطوة 1: قم بتوصيل محرك الأقراص الرقمي ومحرك الأقراص الجزئي للعرض متعدد الإرسال

قم بتوصيل محرك الأقراص الرقمي ومحرك الأقراص الجزئي للعرض متعدد الإرسال
قم بتوصيل محرك الأقراص الرقمي ومحرك الأقراص الجزئي للعرض متعدد الإرسال

لقد بدأت بساعة رقمية كبيرة رخيصة الثمن على الرف. أولاً قمت بإزالة شريحة الساعة الموجودة. ثم أجرى بعض البحث حول التوصيلات المكونة من 7 مقاطع وتحديد موقعها ، والتي يمكن تشغيلها مباشرة بواسطة المعالج الدقيق. ثم تم العثور على المحركات المكونة من 4 أرقام والتي كانت عبارة عن ترانزستورات يمكن للمعالج الدقيق تشغيلها. ثم سلكي هؤلاء.

الخطوة 2: اختبر التوصيلات

اختبر التوصيلات
اختبر التوصيلات

كتجربة قمت بكتابة برنامج BASIC لقيادة جميع الخطوط ، لفحص الأسلاك وقياس التيار الذي كان في هذه الحالة 82 مللي أمبير

بعد ذلك ، كان عليك كتابة الرمز لمسح الخطوط.

محرك عرض ساعة الويب

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 'تعطيل محرك الأقراص على القطعة

ذ المقبل

الخطوة 3: رمز لعرض الوقت و PWM للتحكم في السطوع

كود لعرض الوقت و PWM للتحكم في السطوع
كود لعرض الوقت و PWM للتحكم في السطوع
كود لعرض الوقت و PWM للتحكم في السطوع
كود لعرض الوقت و PWM للتحكم في السطوع

بعد ذلك أضفت ترانزستور PMOS في مزود الطاقة لجميع السائقين الرقميين. مع ذلك يتحكم تعديل عرض النبضة في سطوع الشاشة. هذا هو الرمز الأساسي لعرض الوقت.

"محرك عرض ساعة الويب # يتضمن" LPC11U3x.bas"

الكرة الأرضية

hr = 0 'تحديد الساعة

min = 0 'تحديد دقيقة

#define SEG_0 & HBB00

#define SEG_1 & H1800

#define SEG_2 & HD300

#define SEG_3 & HD900

#define SEG_4 & H7800

#define SEG_5 & HE900

#define SEG_6 & HEB00

#define SEG_7 & H9800

#define SEG_8 & HFB00

#define SEG_9 & HF800

#define SEG_o & H4B00

#define 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}

#define DIG_WAIT 1

#define US_TIME

sub display_time (يخطئ ، ساعة ، دقيقة)

خافت hr10 ، hr1 ، min10 ، min1 ، i

#ifdef US_TIME

إذا كانت hr> 12 ثم hr - = 12

إذا كانت hr = 0 ، فإن hr = 12

#إنهاء إذا

hr10 = ساعة / 10

hr1 = hr MOD 10

دقيقة 10 = دقيقة / 10

min1 = min MOD 10

بالنسبة إلى i = 0 إلى 1

إذا hr10 ثم

IO (45) = 0

إنهاء إذا

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

GPIO_CLR (0) = DIGarray (ساعة 10)

انتظر (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 (الحد الأدنى 10)

GPIO_CLR (0) = DIGarray (دقيقة 10)

انتظر (DIG_WAIT)

المدخلات (47)

IO (48) = 0

GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (الحد الأدنى 1)

GPIO_CLR (0) = DIGarray (دقيقة 1)

انتظر (DIG_WAIT)

المدخلات (48)

بعدها انا

نهاية

المستخدم TIMER1 (32 بت) لمقاطعة كل دقيقة

المقاطعة الفرعية TIMER1IRQ

T1_IR = 1 'مسح المقاطعة

دقيقة + = 1

إذا كان الحد الأدنى> 59 ثم

دقيقة = 0

ساعة + = 1

إذا كانت hr> 23 ثم

ساعة = 0

إنهاء إذا

إنهاء إذا

ENDSUB

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 تمكين

ENDSUB

#define MINUT_PCLK 2880000000 '60 ثانية عند 48 ميجا هرتز

الأساسية:

ساعة = 9

دقيقة = 33

ON_TIMER (MINUT_PCLK ، ADDRESSOF TIMER1IRQ)

IO (7) = 0 'PWM يومًا ما - تحتاج إلى الانتقال إلى P0_22 ؟؟

بينما 1

display_time (0، hr، min)

حلقة

الخطوة 4: قم بإجراء اتصال بالإنترنت

قم بإجراء اتصال بالإنترنت
قم بإجراء اتصال بالإنترنت

استخدم ESP8266 لاتصال WiFi. بعد البحث في الويب لفترة من الوقت ، كان الحل الأفضل هو nodemcu الإصدار 0.9.6 وكان esp8266_flasher الأقدم يعمل بشكل أفضل.

www.electrodragon.com/w/ الملف: Nodemcu_20150704_firmware.zip

ثم صفحة ويب PHP بسيطة لخدمة الوقت من الإنترنت--

خادم وقت Coridium

<؟ php

$ timezone = htmlspecialchars ($ _ GET ["zone"])؛ إذا ($ timezone == "")

$ timezone = "America / Los_Angeles" ؛

$ tz_object = new DateTimeZone ($ timezone) ؛

$ datetime = new DateTime ()؛

datetime-> setTimezone ($ tz_object) ؛

صدى "time is-"، $ datetime-> format ('H: i: s')؛

صدى صوت ""؛

صدى "date is-"، $ datetime-> format ('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 ("Receiving"، function (sck، c) print (c) end)

sk: connect (80، "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: أضف التعليمات البرمجية الأساسية لتحليل الوقت من الويب

أضف التعليمات البرمجية الأساسية لتحليل الوقت من الويب
أضف التعليمات البرمجية الأساسية لتحليل الوقت من الويب

هذه مجموعة فرعية من برنامج BASIC الكامل ، ويمكن مشاهدة هذا البرنامج الكامل على الرابط في الخطوة الأخيرة.

إذا كان strstr (build_gets ، "الوقت هو-") = 0 إذن

hr = build_gets (8) - "0"

إذا build_gets (9) = ":" إذن

الحد الأدنى = (build_gets (10) - "0") * 10

min + = build_gets (11) - "0"

آخر

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

الحد الأدنى = (build_gets (11) - "0") * 10

min + = build_gets (12) - "0"

إنهاء إذا

إنهاء إذا

الخطوة 6: أضف مستشعر إضاءة ورمزًا لتعتيم الشاشة

أضف مستشعر ضوئي ورمز لتعتيم الشاشة
أضف مستشعر ضوئي ورمز لتعتيم الشاشة
أضف مستشعر ضوئي ورمز لتعتيم الشاشة
أضف مستشعر ضوئي ورمز لتعتيم الشاشة
أضف مستشعر ضوئي ورمز لتعتيم الشاشة
أضف مستشعر ضوئي ورمز لتعتيم الشاشة

تمت إضافة ترانزستور ضوئي لاستشعار الإضاءة المحيطة في الغرفة. بدونها ، تكون الشاشة ساطعة بدرجة كافية لإيقاظ الموتى (أنا) في الليل.

تتم قراءة الجهد التناظري لإخراج ترانزستور الصورة ويقوم تعديل عرض النبضة بتعيين السطوع الكلي للشاشة.

الخطوة 7: اضغط على زر الساعة وابدأ في استخدامه

اضغط على زر الساعة وابدأ في استخدامه
اضغط على زر الساعة وابدأ في استخدامه

يعرض الإصدار الأخير الوقت ، وفي حوالي الساعة 3 صباحًا ينتقل إلى الويب لقراءة الوقت الحالي. هذا يعالج أيضًا وقت توفير ضوء النهار.

كان الدافع وراء هذا المشروع هو انقطاع التيار الكهربائي الذي نشهده هنا في الجبال والحاجة إلى إعادة ضبط الساعات أو استبدال البطاريات لإبقائها على قيد الحياة.

كانت هذه نظرة عامة سريعة على المشروع.

التفاصيل الكاملة لهذه الساعة المتصلة بالويب التي تصنعها بنفسك.

موصى به: