Мазмуну:
- Жабдуулар
- 1 -кадам: Multiplexed Display үчүн Digit Drive менен Segment Drive туташтырыңыз
- 2 -кадам: Туташууларды текшериңиз
- 3 -кадам: Убакытты көрсөтүү үчүн код жана Жарыктыгы көзөмөлдөө үчүн PWM
- 4 -кадам: Интернетке туташуу
- 5 -кадам: Интернеттен убакытты талдоо үчүн BASIC кодун кошуңуз
- 6 -кадам: Жарык сенсорун жана кодду дисплейди караңгылатууга кошуңуз
- 7 -кадам: Саатты өйдө басуу жана аны колдонууну баштоо
Video: Интернетке туташкан санариптик саат: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Амазонкадан 10 долларлык санариптик саат табылды. Эми аны интернеттен убакыт алуу үчүн ыңгайлаштыруу.
Жабдуулар
Бул жерде жеткиликтүү BASIC программасында ARM Stamp
1 -кадам: Multiplexed Display үчүн Digit Drive менен Segment Drive туташтырыңыз
Мен текчеден арзан сандагы чоң санариптик сааттан баштадым. Алгач мен учурдагы чипти алып салдым. Андан кийин бир аз текшерүү жүргүзүлүп, 7 сегменттик байланыштар табылды, алар түздөн -түз микропроцессор тарабынан башкарылат. Андан кийин микропроцессор айдай турган транзистор болгон 4 орундуу драйверлер табылды. Анан буларды зым менен байланыштырды.
2 -кадам: Туташууларды текшериңиз
Эксперимент катары мен бардык линияларды айдап, зымдарды текшерүү жана бул учурда 82 мА болгон токту өлчөө үчүн BASIC программасын жаздым.
Кийинки саптарды сканерлөө үчүн кодду жазуу болчу.
'веб саат дисплейи
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 транзисторун коштум. Мунун жардамы менен импульстун туурасы модуляциясы дисплейдин жарыктыгын көзөмөлдөйт. Бул жерде убакытты көрсөтүү үчүн НЕГИЗГИ код.
веб -саат дисплейи #include "LPC11U3x.bas"
'глобалдар
hr = 0 'саатты аныктоо
min = 0 'мүнөтүн аныктоо
#degine SEG_0 & HBB00
#degine SEG_1 & H1800
#Define SEG_2 & HD300
#SEG_3 & HD900 аныктоо
#degine SEG_4 & H7800
#SEG_5 & HE900 аныктоо
#SEG_6 & HEB00 аныктоо
#degine SEG_7 & H9800
#аныктоо SEG_8 & HFB00
#аныктоо SEG_9 & HF800
#degine 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
sub display_time (ката, саат, мүнөт)
күңүрт саат 10, саат 1, мин10, мин1, мен
#ifdef US_TIME
эгер ср> 12 анда ср -= 12
hr = 0 анда hr = 12
#endif
hr10 = hr / 10
hr1 = hr MOD 10
min10 = min / 10
min1 = min MOD 10
i = 0ден 1ге чейин
анда саат 10до
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)
кийинки i
учтар
'колдонуучу TIMER1 (32 бит) ар бир мүнөттү үзгүлтүккө учуратуу үчүн
INTERRUPT SUB TIMER1IRQ
T1_IR = 1 'Үзгүлтүктү тазалоо
мүн += 1
эгер мин> 59 болсо
мүн = 0
hr += 1
эгер саат> 23 болсо
hr = 0
endif
endif
ENDSUB
ON_TIMER SUB (max_cnt, dothis)
TIMER1_ISR = dothis + 1 'VICтин функциясы - Thumb операциясы үчүн +1 керек
SYSCON_SYSAHBCLKCTRL ЖЕ = (1 << 10) 'TIMER1 иштетүү
T1_PR = 0 'prescale жок - маанини тагыраак убакытка тууралайт
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 '48 секундда 60 секунд
негизги:
ср = 9
мүн = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM бир күнү - P0_22ге өтүү керекпи ??
ал эми 1
display_time (0, с., мүн.)
цикл
4 -кадам: Интернетке туташуу
WiFi туташуусу үчүн ESP8266 колдонуңуз. Интернетте бир аз убакыт өткөндөн кийин, эң жакшы чечим nodemcu 0.9.6 версиясы жана эски esp8266_flasher эң жакшы иштеген.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Андан кийин интернеттен убакыт берүү үчүн жөнөкөй PHP баракчасы-
Coridium Time Server
<? php
$ timezone = htmlspecialchars ($ _ GET ["zone"]); эгер ($ timezone == "")
$ timezone = 'Америка/Los_Angeles';
$ tz_object = жаңы DateTimeZone ($ убакыт алкагы);
$ datetime = жаңы DateTime ();
$ datetime-> setTimezone ($ tz_object);
echo "time is-", $ datetime-> format ('H: i: s');
жаңырык "";
echo "дата-", $ datetime-> формат ('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 ("алуу", функция (sck, c) басып чыгаруу (c) аягы)
sk: туташуу (80, "coridium.us")
sk: жөнөтүү ("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 кодун кошуңуз
Бул толук базалык программанын чакан бөлүгү, ал программаны акыркы баскычтагы шилтемеден көрсө болот.
if 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 интернетке туташкан сааттын толук маалыматы.
Сунушталууда:
Топурактын нымдуу кайтарым байланышын көзөмөлдөгөн Интернетке туташкан тамчылатып сугаруу системасы (ESP32 жана Blynk): 5 кадам
Топурактын нымдуу кайтарым байланышын көзөмөлдөгөн Интернетке туташкан тамчылатып сугаруу системасы (ESP32 жана Blynk): Узак эс алууга чыкканыңызда бакчаңыз же өсүмдүктөрүңүз үчүн тынчсызданыңыз, Же өсүмдүгүңүздү күн сайын сугарууну унутуңуз. Бул жерде чечим - бул жер кыртышынын нымдуулугун көзөмөлдөгөн жана глобалдык туташкан тамчылатып сугаруу системасы программалык камсыздоонун алдында ESP32 тарабынан башкарылат
Интернетке туташкан дүкөн стерео жасоо: 6 кадам (сүрөттөр менен)
Интернетке туташкан дүкөн стерео жасоо: Машинаны айдап баратып радиону күйгүзгөндө мен жергиликтүү колледждеги 90.7 KALX радиостанциясына кайрылам. Мен жашаган жылдар бою жана ар кайсы жерлерде мен дайыма колледждин радиостанцияларын угуп келгем. Интернеттин күчү менен мен азыр уга алам
Zwift үчүн Интернетке туташкан күйөрман: 7 кадам (сүрөттөр менен)
Zwift үчүн Интернетке туташкан күйөрман: Мен виртуалдык веложарыш оюну / машыгуу системасы Zwift менен колдонуу үчүн интернетке туташкан күйөрман жасадым. Сиз Zwiftке тезирээк барганда, желдеткич сырткы минүү шарттарын окшоштуруу үчүн тезирээк айланат.;) Мен муну куруп, абдан кызыктуу болдум, сизге жагат деп үмүттөнөм
IoT Weather Monitor E-Paper Display - Интернетке туташкан ESP8266: 7 кадам
IoT Weather Monitor E-Paper Display | Интернетке туташкан ESP8266: E-Paper дисплейи OpenWeatherMap API (WiFi аркылуу) менен шайкештирилген аба ырайын көрсөтөт. Долбоордун жүрөгү ESP8266/32. Эй, эмне болду, балдар? Akarsh бул жерде CETech.Today биз аба ырайы монитору болгон долбоорду түзгөнү жатабыз
MESH: Интернетке туташкан баскычтар менен рейтинг системасы: 5 кадам (сүрөттөр менен)
MESH: Интернетке туташкан баскычтар менен рейтинг тутуму: Ресторандар же башка ишканалар кардарлардын пикирлерин ошол жерден чогултуп, дароо электрондук жадыбал менен синхрондоштурса эмне болот? Бул рецепт өзүңүздүн интерактивдүү рейтинг системаңызды түзүүнүн тез жана жөнөкөй жолу. Жөн гана интернетке туташкан топтомду алыңыз