Агуулгын хүснэгт:

Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээ: 13 алхам (зурагтай)
Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээ: 13 алхам (зурагтай)

Видео: Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээ: 13 алхам (зурагтай)

Видео: Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээ: 13 алхам (зурагтай)
Видео: Telnet объяснил 2024, Арваннэгдүгээр
Anonim
Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээ
Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээ
Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээ
Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээ

Надад эвдэрсэн сэрүүлэгтэй цаг хэвтэж байгаад цаг, цаг агаарын урьдчилсан мэдээний станц руу хөрвүүлэх санаа төрсөн.

Энэ төслийн хувьд танд хэрэгтэй болно:

  • Хуучин дугуй сэрүүлэгтэй цаг
  • Ардуино Нано
  • BME280 мэдрэгчийн модуль (температур, чийгшил, даралт)
  • Nokia 5110 -ийн LCD дэлгэцийн модуль
  • DS1307 RTC цаг
  • TP4056 лити зай цэнэглэгч
  • Хуучин Ли-ион батерейг гар утаснаас авав
  • Жижиг 3.7V -аас 5V хүртэлх өргөлтийн модуль
  • Гэрэл хамааралтай эсэргүүцэл (LDR - гэрлийн тоолуур)
  • Buzzer (хуучин компьютерээс аврагдсан нэгийг ашигласан)
  • 3 товчлуур
  • Олон тооны резистор (2x10k, 270 ом) ба транзистор (2N2222A эсвэл үүнтэй төстэй)
  • Зарим өргөн агшилтын хоолой
  • хаягдал ПХБ -ийг урд хавтангийн чимэглэл болгон ашиглах
  • Микро USB өргөтгөл кабель (эмэгтэй, эрэгтэй хоёр тал нь микро USB)
  • 2х8см хэмжээтэй прототип хавтан ба зарим утас

Алхам 1: Бүгдийг дизассембл хийх

Бүгдийг задлах
Бүгдийг задлах

Эхлээд би хуучин цагийг задаллаа. Хонх, мотор, эвдэрсэн цагийн механизм …

Алхам 2: Дижитал тохиргооны товчлуурууд

Дижитал тохиргооны товчлуурууд
Дижитал тохиргооны товчлуурууд
Дижитал тохиргооны товчлуурууд
Дижитал тохиргооны товчлуурууд
Дижитал тохиргооны товчлуурууд
Дижитал тохиргооны товчлуурууд
Дижитал тохиргооны товчлуурууд
Дижитал тохиргооны товчлуурууд

Шинэ цаг нь дотор нь мини компьютертэй, бүрэн дижитал хэлбэртэй байх тул хажуу талд нь энгийн 3 сайхан товчлуур нэмж орууллаа.

Хаягдал хөнгөн цагааны тусламжтайгаар би шошго үүсгэхийн тулд давхаргыг хайчилж авлаа. Шошгон дээрх үсгийг үсэг, хар тэмдэг ашиглан бүтээсэн болно.

Алхам 3: Моторын конденсатор

Моторын конденсатор
Моторын конденсатор

Би хуучин хонхыг мотороор сэрүүлгийг асаах болно. Хуучин эвдэрсэн цагийн механизм нь 104 гэсэн шошготой керамик конденсатортой байсан. Би түүнийг хэлхээний самбараас салгаад шууд мотор руу гагнах нь дохиоллын үед моторыг асаахад цахилгааны үсрэлтээс урьдчилан сэргийлэх болно. Моторыг транзистороор удирдах болно гэдгийг анхаарах нь чухал боловч дараа нь энэ талаар дэлгэрэнгүй ярих болно.

Алхам 4: Цагны шинэ нүүр царай

Цагийн шинэ нүүр царай
Цагийн шинэ нүүр царай
Цагийн шинэ нүүр царай
Цагийн шинэ нүүр царай

Би цагны шинэ нүүр хийхээр шийдсэн болохоор би овоолгын овоолгоосоо хэлхээний самбар авч, бүх эд ангиудыг хурдан арилгахын тулд барилгачин халаагуур ашигласан. Дунд талын нүх нь шинэ цагийн дижитал дэлгэцэнд зориулагдсан болно.

Алхам 5: Хуучин гар утаснаас дижитал дэлгэц

Хуучин гар утаснаас дижитал дэлгэц
Хуучин гар утаснаас дижитал дэлгэц
Хуучин гар утаснаас дижитал дэлгэц
Хуучин гар утаснаас дижитал дэлгэц

Энэ төслийн хувьд би хуучин Nokia 5110 гар утаснаас LCD дэлгэц ашиглахаар шийдсэн. Эдгээр дэлгэцийг модуль болгон зарах боломжтой бөгөөд маш бага эрчим хүч зарцуулдаг бөгөөд Arduino -д зориулсан сайн номын сан байдаг. Хэрэв та 5110 дэлгэцтэй шинэ модуль худалдаж авч байгаа бол бүх шинэ модулиуд аврагдсан 5110, 3110, 3210 утаснаас бүтээгдсэн тул та дэлхийг аварч байна!

Алхам 6: Хэлхээг холбох

Хэлхээг холбох
Хэлхээг холбох
Хэлхээг холбох
Хэлхээг холбох
Хэлхээг холбох
Хэлхээг холбох

Би энэ цагийг хянахын тулд Arduino самбарыг ашиглахаар төлөвлөж байсан гэж та аль хэдийн таамаглаж байсан байх. Төслийг би өөрөө Arduino фэнүүдийн хувьд ч хялбархан давтах боломжтой, учир нь би өөрөө самбар үүсгээгүй. Энэ бол Arduino Nano самбар бөгөөд түүнд холбогдсон модулиудтай - BME280 температур, даралт, чийгшил мэдрэгч, DS1307 RTC цаг, TP4056 лити зай цэнэглэгч, 3.7 -аас 5 в хүртэл өргөлтийн модуль, Хөнгөн хамааралтай эсэргүүцэл (LDR - гэрлийн тоолуур), дуугаруулагч (хуучин компьютерээс авсан).

Ноорогуудыг бас үзээрэй - тэд бүх холболтыг харуулдаг. Бүх зүйлийг унших, ойлгоход маш хялбар гэж би бодож байна, гэхдээ танд асуулт байвал доорх сэтгэгдлээс асуугаарай.

Тохиргооны талаархи цөөн хэдэн тэмдэглэл:

  • Мотор нь батерейгаас транзистороор шууд холбогддог. Arduino нь транзисторыг резистор болон PWM зүү D5 -ээр удирддаг.
  • D7-12 тээглүүрийг LCD холболтод ашигладаг. Газар ба VCC нь уулзвар самбар дээрх төмөр замд холбогдсон байна.
  • LDR -ийг цагны нүүрэн дээр суурилуулсан бөгөөд резистор + 3 гадагшлуулах утсыг цагийн нүүрний ард гагнасан.
  • Товчлуурыг холбохын тулд би Arduino дотор PULLUP дотоод функцийг ашигласан. Цэсийн товчлуурыг тасалдалд хавсаргасан бөгөөд та тасалдлын хувьд дотоод PULLUP -ийг бас ашиглаж болохыг сүүлд нь ойлгосон. Цэс товчлуурыг таслах шаардлагатай бөгөөд ингэснээр код нь товчлууруудын төлөв байдлыг байнга сканнердахгүй байх ёстой.
  • Цаг нь батерейны төлөв байдлыг хянаж, харуулдаг тул батерейг A0 зүүтэй шууд холбодог. Батерейны хүчдэл нь хэзээ ч 4.2 В -оос их байдаггүй тул батерейг Arduino аналог зүү рүү шууд холбох нь аюулгүй юм.
  • Buzzer нь PWM зүү D6 -тай шууд холбогддог. Хэдийгээр энэ нь тийм ч сайн практик биш боловч Arduino Nano нь заасан хэмжээнээс илүү өндөр үзүүлэлттэй ажиллах чадвартай, мөн дуугаруулагч тасралтгүй ажиллахгүй байгаа тул би үүнээс зайлсхийсэн юм. Үүнтэй ижил тохиргоо нь ESP самбар дээрх тээглүүрийг амархан шатаах тул эдгээр тохиолдолд би транзисторын хяналтыг ашиглахыг зөвлөж байна.
  • Цаг аль хэдийн унтраалгатай байсан тул би үүнийг ашиглахаар шийдсэн. Энэ нь ар талд нь байгалийн харагддаг.

Алхам 7: Хялбар холболт хийх уулзвар самбар

Хялбар холболт хийх уулзвар самбар
Хялбар холболт хийх уулзвар самбар
Хялбар холболт хийх уулзвар самбар
Хялбар холболт хийх уулзвар самбар

Бүх модулиуд нь эерэг ба газардуулгын холболтыг шаарддаг тул би 2х8 см хэмжээтэй прототип хавтанг ашиглахаар шийдсэн бөгөөд 5V ба газардуулсан төмөр замыг гагнахаар шийдсэн. I2C интерфэйсийг ашигладаг хэд хэдэн модуль байсан тул би тэнд бас жижиг I2C төмөр зам хийсэн.

Нөгөө талаас би стандарт тээглүүрийг гагнасан бөгөөд ингэснээр шаардлагатай үед модулийг холбож, салгаж болно.

Моторын хяналтын транзистор ба резистор, тасалдлыг ашигладаг цэсийн товчлуурын эсэргүүцэл гэх мэт зарим нэмэлт бүрэлдэхүүн хэсгүүдийг гагнасан болно. Би өмнөх хэсгийг харуулсан схемийг үзүүлэв.

btw Эхний зурган дээр LDR мэдрэгчийг цагны нүүрэнд аль хэдийн суулгасан байгааг харж байна уу?

Алхам 8: Эрчим хүчийг тохируулах

Эрчим хүчийг тохируулах
Эрчим хүчийг тохируулах

Би энэ цагийг ажиллуулахын тулд гар утаснаасаа хуучин лити-ион батерей ашигласан. Ихэвчлэн солигддог гар утасны батерейны хүчин чадал сайн хэвээр байна (шинэ үеийнхээс дор хаяж тал хувь нь). Тэдний давуу тал нь гадагшлуулах хамгаалалтын хэлхээтэй бөгөөд маш нимгэн тул жижиг орон зайд ашиглах боломжтой юм.

Батерейг холбохын тулд та утсыг батерейны + ба - зүү рүү гагнах хэрэгтэй. Санаа зоволтгүй, та эсийг гэмтээхгүй, учир нь хянагч ба тээглүүр ба эсийн химийн бодисын хооронд хоосон зай байна.

Энэ зураг дээр та зай болон TP4056 цэнэг хянагч, 5V өргөгчийг хооронд нь холбож, батерейтай холбож байгааг харж болно. Би бүх зүйлийг тусгаарлаж, авсаархан болгохын тулд агшилтын хоолой ашигласан.

Алхам 9: Програм хангамжийг цэнэглэх, шинэчлэх зориулалттай микро USB

Програм хангамжийг цэнэглэх, шинэчлэх зориулалттай микро USB
Програм хангамжийг цэнэглэх, шинэчлэх зориулалттай микро USB

Би бүх зүйлийг гагнаж дуусаад арын самбар дээрх дуугаралт, температур/даралт/чийгшлийн мэдрэгчийг наасан. Тэд бүгд хуучин цагны удирдлагаас одоо байгаа үүрэнд сайн суулгасан байв.

Ар талд нь Micro USB порт суулгах цаг болжээ. Нано Mini USB ашигладаг бол яагаад микро USB хэрэгтэй вэ? Гэрт ихэнх USB кабель нь гар утаснаас гаралтай байдаг бөгөөд хэрэв цаг нь үүнийг авах боломжтой бол энэ нь тохиромжтой байх болно.

Би үүнийг цаг, цаг уурын станцын цэнэглэх, шинэчлэхэд хоёуланг нь ашиглахыг хүсч байсан тул USB кабелийг салгаж, тэжээлийн утсыг TP4056 цэнэглэгч, Data+/Data- утсаар шууд Arduino Nano -ийн USB залгуурт хийв. Та үүнийг миний өмнөх хэсгүүдэд үзүүлсэн схемээс харж болно.

Алхам 10: Эцсийн хуралдаан

Эцсийн чуулган
Эцсийн чуулган
Эцсийн чуулган
Эцсийн чуулган
Эцсийн чуулган
Эцсийн чуулган

Одоо бүх зүйлийг анхны цаг руу буцааж хийх цаг болжээ. Би эд анги, модулийг тусгаарлахын тулд агшилтын хоолой ашигласан. Arduino хүртэл агшилтын хоолойгоор ороосон байсан.

Бүрэлдэхүүн хэсэг бүрийг хаана байрлуулсан болохыг харахын тулд эхний зураг дээр хулганаа дарна уу.

Алхам 11: Код

Таны харж байгаагаар цаг дотор бүрэн дүүрэн байна. Мэдээжийн хэрэг, програмчлалын зарим ур чадвар байдаг тул хуучин цагнаасаа илүү нарийн зүйлийг бүтээх боломжтой болсон. Би анхны кодыг бичсэн боловч найзаасаа надад туслаж өгөхийг хүссэн.

Одоогийн байдлаар цагнаас гадна эдгээр төслийг аль хэдийн дэмжиж байгаа функцууд байна.

  • Цаг, огноог харуулах (мөн нэг дэлгэц дээрх дохиоллын цаг ба идэвхжүүлэлт)
  • Дэлгэц харанхуй орчинд эсвэл хөдөлгөөн илрэх үед асдаг (гэрлийн өөрчлөлт дээр үндэслэсэн)
  • Цаг агаарын урьдчилсан мэдээ (Нартай, Үүлэрхэг, Бороотой)
  • Температур, даралт, чийгшлийн дэлгэц (чийгшлийн хувьд энэ нь хэт хуурай байгаа эсэхийг харуулна)
  • Тохиргооны цэс: сэрүүлэг, цагийг өөрчлөх, огнооны дэлгэцийг идэвхжүүлэх/идэвхгүй болгох, цаг агаарын өөрчлөлтийн дууны мэдэгдлийг идэвхжүүлэх/идэвхгүй болгох, эзэн хааны болон хэмжигдэхүүний нэгжийн хооронд шилжих
  • Сэрүүлгийн тохиргоо - асаах/унтраах, цагийг тохируулах, мэдэгдэл хийх аялгуу ба/эсвэл хонхыг тохируулах

Хамгийн сүүлийн код:

Кодыг ирээдүйд шинэ боломжуудаар шинэчлэх тул firmware-ийн шинэчлэлтийг дахин шалгаж үзээрэй:-)

Хэрэв та Arduino ертөнцөд шинээр ирсэн бол дараах алхмуудыг хийхийг зөвлөж байна.

  • Самбартаа USB драйвер суулгаарай (жишээ нь CH340)
  • Arduino IDE суулгана уу
  • Энэ төсөлд ашигласан номын санг суулгах
  • GitHub -аас татаж аваад Micro USB кабель ашиглан төслийн хамгийн сүүлийн үеийн кодыг байршуулна уу (та үүнийг гар утаснаасаа ашиглаж болно).

Урьдчилан таамаглах алгоритм нь дараах байдалтай байна

Arduino Nano нь BME280 мэдрэгчээс 12 минут тутамд шинэ мэдээлэл авдаг. Хэмжилтийн мөчлөг нь 3 цаг байна. 3 цагийн дараа даралтын хяналтын хүрээ (3 цагийн турш хамгийн их ба хамгийн бага утга) нь одоогийн болон одоогийн даралтын утгын дундаж утгуудтай харьцуулахад шилждэг. Цаг тутамд одоогийн даралтын утгатай даралтын чиглэлийг хадгалдаг. Урьдчилан тооцоолохдоо кПа нэгжийг ашигладаг.

Нано санах ойн хязгаарлагдмал байдлаас шалтгаалан урьдчилан таамаглах алгоритмыг хялбарчлах шаардлагатай болсон. Гэсэн хэдий ч хялбаршуулсан хэдий ч урьдчилсан мэдээ нь илүү гутранги үзэлтэй байгаа ч гэсэн ойрын 12-24 цагийн дотор хур тунадасыг урьдчилан таамаглах боломжтой байна. Анхдагч утга нь "Үүлэрхэг цаг агаар" юм.

"Нартай цаг агаар" - даралтын өнөөгийн утга нь нормоос 7 нэгжээр өндөр, даралт буурахгүй, сүүлийн 3 цагийн хамгийн бага ба хамгийн их утгын зөрүү 2 онооноос хэтрэхгүй байна.

Хур тунадас орох магадлалтай "Бороотой цаг агаар" - одоогийн даралт нормоос 15 нэгжээр бага, хамгийн бага ба хамгийн их утгын зөрүү 2 -оос дээш байна.

Урьдчилан таамаглах чанарыг сайжруулахын тулд үндсэн кодын файл дахь "өндрийг" өөрчлөхийг зөвлөж байна. Та өндрөө эндээс авах боломжтой:

Алхам 12: Алхам алхмаар видео

Image
Image

Хэрэв миний дээр хийсэн зүйлийг дагахад хэцүү байсан бол энд харуулсан бүх алхамыг агуулсан видео хувилбарыг энд оруулав.

Алхам 13: Эцсийн үгс

Ерөнхийдөө миний үзэж байгаагаар энэ төслийн бэрхшээлийн түвшин тийм ч өндөр биш бөгөөд хэн ч үүнийг хийж чадна, хэрэв танд хуучин цаг байхгүй бол орон нутгийн бүүргийн зах дээрээс хямд үнээр олж болно.

Бүх бүрэлдэхүүн хэсгүүд нь хямд бөгөөд Sparkfun/Aliexpress/eBay/Amazon дээр байдаг.

Энэхүү гарын авлага нь танд сонирхолтой байсан гэж найдаж байна, хэрэв та миний анхны "Цагийн зааварчилгаа" уралдааныг дэмжиж чадвал талархах болно.

Цагны уралдаан
Цагны уралдаан
Цагны уралдаан
Цагны уралдаан

Цагийн уралдаанд хоёрдугаар байр эзэлсэн

Зөвлөмж болгож буй: