جدول المحتويات:
- اللوازم
- الخطوة 1: قم بتوصيل محرك الأقراص الرقمي ومحرك الأقراص الجزئي للعرض متعدد الإرسال
- الخطوة 2: اختبر التوصيلات
- الخطوة 3: رمز لعرض الوقت و PWM للتحكم في السطوع
- الخطوة 4: قم بإجراء اتصال بالإنترنت
- الخطوة 5: أضف التعليمات البرمجية الأساسية لتحليل الوقت من الويب
- الخطوة 6: أضف مستشعر إضاءة ورمزًا لتعتيم الشاشة
- الخطوة 7: اضغط على زر الساعة وابدأ في استخدامه
فيديو: الساعة الرقمية المتصلة بالويب: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
عثرت على ساعة رقمية بقيمة 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 للتحكم في السطوع
بعد ذلك أضفت ترانزستور 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 صباحًا ينتقل إلى الويب لقراءة الوقت الحالي. هذا يعالج أيضًا وقت توفير ضوء النهار.
كان الدافع وراء هذا المشروع هو انقطاع التيار الكهربائي الذي نشهده هنا في الجبال والحاجة إلى إعادة ضبط الساعات أو استبدال البطاريات لإبقائها على قيد الحياة.
كانت هذه نظرة عامة سريعة على المشروع.
التفاصيل الكاملة لهذه الساعة المتصلة بالويب التي تصنعها بنفسك.
موصى به:
الساعة الرقمية لوقت الشبكة باستخدام ESP8266: 4 خطوات (بالصور)
الساعة الرقمية لوقت الشبكة باستخدام ESP8266: نتعلم كيفية إنشاء ساعة رقمية صغيرة لطيفة تتواصل مع خوادم NTP وتعرض وقت الشبكة أو الإنترنت. نستخدم WeMos D1 mini للاتصال بشبكة WiFi ، والحصول على وقت NTP وعرضه على وحدة OLED. الفيديو أعلاه
الساعة الرقمية: 9 خطوات (مع صور)
Numismatic Clock: REAL هي العملة البرازيلية منذ عام 1994 وللاحتفال بعيدها الخامس والعشرين ، في العام الماضي (2019) ، صنع كازا دا مويدا (النعناع البرازيلي) عملة تذكارية 1 حقيقية مع طائر طنان في الوجه (وليس التمثال المعتاد للجمهورية) الهممين
الساعة الرقمية: 6 خطوات
الساعة الرقمية: تم تصميم هذا المشروع للغرض الذي تتمثل هوايته في صنع أشياء مختلفة بواسطة مشاريع DIY. هذه واحدة من ساعة رقمية لمشروع DIY. تتميز الساعة الرقمية بميزات مختلفة مثل أنها تعرض الوقت والتاريخ والمنبه ودرجة الحرارة والانتقال المختلف في LED
الساعة الرقمية التناظرية: 4 خطوات (بالصور)
الساعة الرقمية التناظرية: كان سبب صنع هذه الساعة هو أن ساعتي الأصلية من ايكيا لم تعد تعمل وأحببت حقًا هيكل هذه الساعة. لقد وجدت أنه من الضياع التخلص من الساعة وقررت إعادة استخدامها لساعة تناظرية / رقمية ، كان من الممكن أن أشعر بالجنون
ساعة الرسوم المتحركة SMART LED المتصلة بالويب مع لوحة التحكم المستندة إلى الويب ، مزامنة خادم الوقت: 11 خطوة (بالصور)
ساعة الرسوم المتحركة SMART LED المتصلة بالويب مع لوحة التحكم المستندة إلى الويب ، مزامنة خادم الوقت: تعود قصة هذه الساعة إلى الوراء - أكثر من 30 عامًا. كان والدي رائدًا في هذه الفكرة عندما كان عمري 10 سنوات فقط ، قبل وقت طويل من ثورة LED - مرة أخرى عندما كانت LED حيث 1/1000 من سطوع تألقها الحالي. صحيح