فهرست مطالب:

ساعت دیجیتال متصل به وب: 7 مرحله
ساعت دیجیتال متصل به وب: 7 مرحله

تصویری: ساعت دیجیتال متصل به وب: 7 مرحله

تصویری: ساعت دیجیتال متصل به وب: 7 مرحله
تصویری: How to connect to Wearfit Pro - نحوه کار با Wearfit Pro 2024, جولای
Anonim
ساعت دیجیتال متصل به وب
ساعت دیجیتال متصل به وب

یک ساعت دیجیتالی 10 دلاری در آمازون پیدا کرد. اکنون آن را سفارشی کنید تا از اینترنت وقت بگیرید.

تدارکات

تمبر ARM قابل برنامه ریزی در BASIC در اینجا موجود است

مرحله 1: Digit Drive و Segment Drive را برای نمایش چندگانه متصل کنید

Drive Digit و Segment Drive را برای نمایش چند منظوره متصل کنید
Drive Digit و Segment Drive را برای نمایش چند منظوره متصل کنید

من با یک ساعت دیجیتال ارزان قیمت از قفسه شروع کردم. ابتدا تراشه ساعت موجود را حذف کردم. سپس تعدادی کاوش در اطراف انجام داد و اتصالات 7 قسمتی را که می توانند مستقیماً توسط ریزپردازنده هدایت شوند ، انجام داد. سپس درایورهای 4 رقمی ترانزیستورهایی را یافت که ریزپردازنده می تواند آنها را هدایت کند. و سپس آنها را سیم کشی کنید.

مرحله 2: اتصالات را آزمایش کنید

اتصالات را تست کنید
اتصالات را تست کنید

به عنوان یک آزمایش ، من یک برنامه BASIC برای رانندگی تمام خطوط ، بررسی سیم کشی و اندازه گیری جریان ، که در این مورد 82 میلی آمپر بود ، نوشتم.

بعد نوشتن کد برای اسکن خطوط بود.

درایو نمایشگر ساعت وب

IO (7) = 0 'PMOS drive - روزی 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 'ساعت تعریف کنید

دقیقه = 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_Tefinine

sub display_time (خطا ، ساعت ، دقیقه)

dim hr10 ، hr1 ، min10 ، min1 ، i

#fdef US_TIME

اگر hr> 12 سپس hr -= 12

اگر hr = 0 سپس hr = 12

#اندیف

hr10 = hr / 10

hr1 = ساعت 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)

بعدی منم

انتهای لوله

کاربر TIMER1 (32 بیت) برای قطع هر دقیقه

INTERRUPT SUB TIMER1IRQ

T1_IR = 1 'پاک کردن وقفه

حداقل += 1

اگر حداقل> 59 باشد پس

حداقل = 0

ساعت += 1

اگر ساعت> 23 باشد پس

ساعت = 0

endif

endif

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 'تعداد مطابقت ms را تنظیم کرد

T1_MCR = 3 'وقفه و تنظیم مجدد

MR0 T1_IR = 1 'وقفه روشن

T1_TC = 0 'شمارنده تایمر روشن

T1_TCR = 1 'TIMER1 فعال کنید

ENDSUB

#MINUT_PCLK 2880000000 '60 ثانیه در 48 مگاهرتز را تعریف کنید

اصلی:

ساعت = 9

دقیقه = 33

ON_TIMER (MINUT_PCLK ، ADDRESSOF TIMER1IRQ)

IO (7) = 0 'PWM چند روز - نیاز به انتقال به P0_22 ؟؟

در حالی که 1

زمان نمایش (0 ، ساعت ، دقیقه)

حلقه

مرحله 4: اتصال به اینترنت ایجاد کنید

اتصال به اینترنت ایجاد کنید
اتصال به اینترنت ایجاد کنید

برای اتصال WiFi از ESP8266 استفاده کنید. پس از مدتی گشتن در وب بهترین راه حل نسخه nodemcu 0.9.6 بود و esp8266_flasher قدیمی بهترین کار را کرد.

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

سپس یک صفحه وب ساده PHP برای ارائه زمان از اینترنت--

سرور زمان Coridium

<؟ php

$ timezone = htmlspecialchars ($ _ GET ["zone"])؛ if ($ timezone == "")

$ timezone = 'America/Los_Angeles'؛

$ tz_object = جدید DateTimeZone ($ timezone) ؛

$ datetime = جدید DateTime ()؛

$ datetime-> setTimezone ($ tz_object) ؛

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

پژواک "" ؛

echo "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: روشن ("دریافت" ، عملکرد (sck ، ج) چاپ (ج) پایان)

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

sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / n اتصال: زنده نگه داشتن / r / n پذیرش: */ *\ r / n / r / n")

و شما به عنوان زمان به عقب برمی گردید

زمان -09: 38: 49 تاریخ -2018-31-12 است

مرحله 5: کد BASIC را برای تجزیه و تحلیل زمان از وب اضافه کنید

کد BASIC را برای تجزیه و تحلیل زمان از وب اضافه کنید
کد BASIC را برای تجزیه و تحلیل زمان از وب اضافه کنید

این زیر مجموعه ای از برنامه کامل BASIC است ، که برنامه کامل را می توانید در پیوند مرحله آخر مشاهده کنید.

اگر strstr (build_gets ، "time is-") = 0 باشد

hr = build_gets (8) - "0"

اگر build_gets (9) = ":" پس

دقیقه = (build_gets (10) - "0")*10

دقیقه += build_gets (11) - "0"

دیگری

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

دقیقه = (build_gets (11) - "0")*10

دقیقه += build_gets (12) - "0"

endif

endif

مرحله 6: یک سنسور نور و کد را برای کم کردن صفحه نمایش اضافه کنید

یک سنسور نور و کد را برای کم کردن صفحه نمایش اضافه کنید
یک سنسور نور و کد را برای کم کردن صفحه نمایش اضافه کنید
یک سنسور نور و کد برای کم کردن صفحه نمایش اضافه کنید
یک سنسور نور و کد برای کم کردن صفحه نمایش اضافه کنید
یک سنسور نور و کد برای کم کردن صفحه نمایش اضافه کنید
یک سنسور نور و کد برای کم کردن صفحه نمایش اضافه کنید

یک ترانزیستور عکس برای احساس نور محیط در اتاق اضافه شد. بدون آن ، صفحه نمایش به اندازه کافی روشن است تا مردگان (من) را در شب بیدار کند.

ولتاژ آنالوگ خروجی ترانزیستور عکس خوانده می شود و مدولاسیون عرض پالس روشنایی کلی صفحه را تنظیم می کند.

مرحله 7: ساعت را دکمه کرده و شروع به استفاده از آن کنید

ساعت را دکمه کرده و استفاده از آن را شروع کنید
ساعت را دکمه کرده و استفاده از آن را شروع کنید

نسخه نهایی زمان را نمایش می دهد و حدود ساعت 3 صبح برای خواندن زمان فعلی به وب می رود. این همچنین باعث صرفه جویی در نور روز می شود.

انگیزه این پروژه قطع برق در کوهستان و نیاز به تنظیم مجدد ساعت یا تعویض باتری برای زنده نگه داشتن آنها بود.

این یک مرور سریع از پروژه بوده است.

جزئیات کامل این ساعت DIY متصل به وب.

توصیه شده: