فهرست مطالب:
- تدارکات
- مرحله 1: Digit Drive و Segment Drive را برای نمایش چندگانه متصل کنید
- مرحله 2: اتصالات را آزمایش کنید
- مرحله 3: کد برای نمایش زمان و PWM برای کنترل روشنایی
- مرحله 4: اتصال به اینترنت ایجاد کنید
- مرحله 5: کد BASIC را برای تجزیه و تحلیل زمان از وب اضافه کنید
- مرحله 6: یک سنسور نور و کد را برای کم کردن صفحه نمایش اضافه کنید
- مرحله 7: ساعت را دکمه کرده و شروع به استفاده از آن کنید
تصویری: ساعت دیجیتال متصل به وب: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
یک ساعت دیجیتالی 10 دلاری در آمازون پیدا کرد. اکنون آن را سفارشی کنید تا از اینترنت وقت بگیرید.
تدارکات
تمبر ARM قابل برنامه ریزی در BASIC در اینجا موجود است
مرحله 1: Digit Drive و 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 برای کنترل روشنایی
بعد من یک ترانزیستور 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 است ، که برنامه کامل را می توانید در پیوند مرحله آخر مشاهده کنید.
اگر 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 متصل به وب.
توصیه شده:
نحوه ساخت ساعت آنالوگ و ساعت دیجیتال با نوار LED با استفاده از آردوینو: 3 مرحله
نحوه ساخت ساعت آنالوگ و ساعت دیجیتال با نوار LED با استفاده از آردوینو: امروز ما یک ساعت آنالوگ تولید می کنیم & amp؛ ساعت دیجیتال با Led Strip و ماژول MAX7219 Dot با آردوینو. زمان را با منطقه زمانی محلی تصحیح می کند. ساعت آنالوگ می تواند از نوار LED طولانی تری استفاده کند ، بنابراین می توان آن را به دیوار آویزان کرد تا به یک هنر تبدیل شود
راه حل های متصل شده خود را با هولوگرام Nova و Ubidots متصل و بهسازی کنید: 9 مرحله
راه حل های متصل شده خود را با Hologram Nova و Ubidots متصل و مقاوم سازی کنید: از Hologram Nova خود برای مقاوم سازی زیرساخت ها استفاده کنید. Hologram Nova را با استفاده از Raspberry Pi برای ارسال داده (دما) به Ubidots تنظیم کنید. در راهنمای زیر ، Ubidots نحوه تنظیم هولوگرام Nova با استفاده از Raspberry Pi و نمایش یک te
ساعت شبکه ESP8266 بدون هیچ گونه RTC - Nodemcu NTP ساعت بدون RTC - پروژه ساعت اینترنتی: 4 مرحله
ساعت شبکه ESP8266 بدون هیچ گونه RTC | Nodemcu NTP ساعت بدون RTC | پروژه ساعت اینترنتی: در پروژه ایجاد پروژه ساعت بدون RTC ، زمان استفاده از اینترنت با استفاده از wifi و نمایش آن بر روی صفحه نمایش st7735
قاب عکس دیجیتال ، WiFi متصل - رزبری پای: 4 مرحله (همراه با تصاویر)
قاب عکس دیجیتال ، WiFi متصل - Raspberry Pi: این یک مسیر بسیار آسان و کم هزینه به یک قاب عکس دیجیتال است - با مزیت افزودن /حذف عکس ها از طریق WiFi از طریق "کلیک و کشیدن" با استفاده از یک برنامه انتقال فایل (رایگان) به می توان آن را با نیروی کوچک 4.50 Pi Pi Zero تغذیه کرد. همچنین می توانید انتقال دهید
ساعت متحرک SMART LED متصل به وب با کنترل پنل مبتنی بر وب ، زمان سرور همزمان: 11 مرحله (همراه با تصاویر)
ساعت متحرک SMART LED متصل به وب با کنترل پنل مبتنی بر وب ، Time Server Synchronized: داستان این ساعت به طولانی برمی گردد-بیش از 30 سال. پدر من وقتی 10 ساله بودم ، خیلی قبل از انقلاب LED ، پیشگام این ایده بود - زمانی که LED درخشندگی 1/1000 درخشندگی کورکننده فعلی خود را داشت. یک حقیقت