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

Arduino бүрэнхий/үүр цайх цаг хэмжигч: 15 алхам
Arduino бүрэнхий/үүр цайх цаг хэмжигч: 15 алхам

Видео: Arduino бүрэнхий/үүр цайх цаг хэмжигч: 15 алхам

Видео: Arduino бүрэнхий/үүр цайх цаг хэмжигч: 15 алхам
Видео: Diseña el cultivo de tus alimentos en espacios cerrados usando programación de código abierto 2024, Долдугаар сарын
Anonim
Arduino Dusk/үүр цайх цаг хэмжигч
Arduino Dusk/үүр цайх цаг хэмжигч

Дүгнэлт:

Энэхүү Arduino дээр суурилсан таймер нь 220В -ийн нэг гэрлийг харанхуй, үүр цайх, эсвэл заасан цагт солих боломжтой.

Танилцуулга:

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

Гэрлийн байршил нь гэрэл мэдрэгч ашиглахыг зөвшөөрдөггүй. Байнгын бэлэн цагийн тоолуур тодорхой цагт асдаг. Орой болоход асаахын тулд таймер програмын тохиргоог тогтмол хийх шаардлагатай байдаг.

Гайхамшигтай сорилтын хувьд би оронд нь Arduino дээр суурилсан бие даасан таймер бүтээхээр шийдсэн. Бодит цагийн цаг болон Dusk2Dawn номын санг ашиглан гэрлийг асаах, унтраах цагийг тодорхойлдог. Энэхүү таймерын хашлага нь 3D хэлбэрээр хэвлэгдсэн бөгөөд Thingiverse дээрээс олж болно. Энэ төслийн Arduino кодыг GitHub дээрээс олж болно.

Энэхүү таймерыг бүтээхэд би интернет дээрх олон загвар, схемээс урам зориг авсан. Тодорхой дурдаагүй бүх хувь нэмэр оруулсан хүмүүст баярлалаа.

Унших боломжтой байхын тулд хэсэгчилсэн диаграммыг бүрэн схемийн оронд шаардлагатай бол алхам алхмаар харуулав.

Альтернатив шийдлүүд:

Бие даасан таймерын оронд ухаалаг гэрийн автоматжуулалтын систем гэрлийг удирддаг олон шийдэл байдаг. Миний зорилго бол WIFI (эсвэл бусад) холболтоос хамааралгүй бие даасан шийдэл гаргах явдал байв.

Хязгаарлалт:

Энэхүү төсөлд оруулсан код нь Европын зуны цагийн системд суурилсан зуны цагийн өөрчлөлтийн хэрэгжилтийг багтаасан болно.

Алхам 1: Эд анги, хэрэгслийн жагсаалт

Эд анги, хэрэгслийн жагсаалт
Эд анги, хэрэгслийн жагсаалт

Эд анги:

Нийт эд ангиудын зардал (3d хэвлэхээс бусад) ойролцоогоор 30 евро, -.

  • Arduino Nano V3 (нийцтэй) толгойгүй
  • Цахилгаан хангамж 5V 0.6A (34 x 20 x 15mm)
  • Хатуу төлөв реле 5V - Идэвхтэй бага - 2A 230VAC
  • Бодит цагийн цаг DS3231 (жижиг)
  • 0.96 инчийн OLED дэлгэц нь SPI 128*64 пиксел юм
  • Ротари кодлогч - EC11 - 20 мм
  • 6 мм -ийн босоо ам 15mm * 17mm
  • Breadboard хэвлэсэн хэлхээний самбар,
  • 4* M3x25 мм хэмжээтэй эрэг
  • 3D хэвлэсэн хаалт
  • Дулаан багасгах хоолой
  • Утас
  • Шургийн терминал блок (төвийг сахисан утсыг холбох)

Шаардлагатай хэрэгсэл:

  • Гагнуурын төмөр
  • Гагнуурын утас
  • Гагнуурын насос
  • Утас хуулагч
  • Таслагч
  • 3D принтер (хашлага хэвлэх)
  • Төрөл бүрийн жижиг хэрэгсэл

АНХААРУУЛГА

Энэ хэлхээ нь 230 вольтын хувьсах гүйдэл дээр ажилладаг бөгөөд хэрэв та сүлжээний хүчдэлд ажиллаж сураагүй эсвэл 230 вольтын хувьсах гүйдлийн хүчдэлтэй ажиллах туршлагагүй бол энэ төслөөс хол байгаарай

Энэхүү төслийг дагаж мөрдсөний үр дүнд гарсан аливаа хохирол, хохирлын төлөө би хариуцлага хүлээхгүй

AC Mains -тэй ажиллахдаа зохих анхаарал, болгоомжтой байхыг үргэлж зөвлөж байна

Алхам 2: OLED дэлгэц болон бодит цагийн цагийг бэлтгэ

OLED дэлгэц болон бодит цагийн цагийг бэлтгэ
OLED дэлгэц болон бодит цагийн цагийг бэлтгэ

3D хэвлэсэн хаалт нь хамгийн бага хэмжээтэй байхаар хийгдсэн. Үүний үр дүнд OLED дэлгэцийн толгой ба бодит цагийн цагийг арилгах шаардлагатай байна.

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

Алхам 3: Ротари кодлогч бэлтгэх

Ротари кодлогч бэлтгэх
Ротари кодлогч бэлтгэх

Эргэдэг кодлогч нь сул холбогчтой. Гэмтлээс урьдчилан сэргийлэхийн тулд хэвлэсэн хэлхээний самбарыг кодлогч руу холбоно уу.

Зураг дээр газрын холболтыг (баруун дээд ба доод доод талд) аль хэдийн бэлтгэсэн байна.

Тэмдэглэл: Хэвлэмэл хэлхээний самбар бүхий эргэлдэгч кодлогч нь Arduino -д хүрэлгүйгээр хашлага дотор байгаа эсэхийг шалгаарай. Тохиромжтой болгохын тулд хэвлэмэл хэлхээний самбарыг нунтаглах шаардлагатай байж магадгүй юм.

Алхам 4: Хашаа

Хашаа
Хашаа
Хашаа
Хашаа

Хашааны гурван хэсгийг 3d принтерээр хэвлэ. Thingiverse -ийн зааврыг үзнэ үү.

Алхам 5: Arduino Power LED -ийг идэвхгүй болгох (заавал биш)

Arduino Power LED -ийг идэвхгүй болгох (заавал биш)
Arduino Power LED -ийг идэвхгүй болгох (заавал биш)

Цаг хэмжигч дээр ногоон гэрэл асахгүй байхын тулд Arduino -ийн тэжээлийн LED -ийг идэвхгүй болгож болно.

Энэ өөрчлөлт нь заавал биш гэдгийг анхаарна уу.

Arduino Nano -ийн өөрчлөлт нь цахилгаан залгуурын дэргэдэх резисторыг зайлуулахаас бүрдэнэ (зурган дээрх улаан тойргийг үзнэ үү).

Алхам 6: Цахилгаан хангамж + Хатуу төлөвийн реле

Цахилгаан хангамж + Хатуу төлөвт реле
Цахилгаан хангамж + Хатуу төлөвт реле

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

Цахилгаан хангамж ба реле хоорондын холболтыг эдгээр бүрэлдэхүүн хэсгүүдийн доод хэсэгт хийдэг. Релений шураг терминалын блокыг Arduino -той холбоход ашиглана.

Тэмдэглэл: Холболт хийхдээ хатуу төлөвт релений бэхэлгээний нүхийг чөлөөтэй байлгах хэрэгтэй.

  • Цахилгаан тэжээлийн хувьсах гүйдлийн A1 холболтын A1 реле хоорондох холболтын утсыг гагнана
  • Цахилгаан тэжээлийн өөр хувьсах гүйдлийн холболттой утсыг гагнах (энэ нь 7 -р алхам дахь төвийг сахисан шураг терминал блоктой холбох болно)
  • Цахилгаан хангамжийн хооронд утас гагнах
  • Цахилгаан тэжээлийг холбох утсыг гагнах +Vo реле DC +

Тэмдэглэл: Хашаанд багтахын тулд цахилгаан хангамж ба реле дээрх залгуурыг богиносгох шаардлагатай байж магадгүй юм.

Алхам 7: Arduino Nano + Цахилгаан хангамж + Хатуу төлөвт реле

Arduino Nano + Цахилгаан хангамж + Хатуу төлөвт реле
Arduino Nano + Цахилгаан хангамж + Хатуу төлөвт реле

Энэ үе шатанд Arduino Nano нь цахилгаан хангамж ба хатуу төлөвт релетэй холбогдсон байна.

  • Ойролцоогоор 70 мм урттай хоёр утсыг хайчилж ав. Нэг талдаа 30 мм тусгаарлагч тууз, нөгөө талд 4 мм тууз.
  • Ардуино +5V ба GND руу 30мм -ийн хуулбарласан тусгаарлагчтай талыг гагнана.
  • Дулаан агшилтын 20 мм урттай хоёр хоолойг хайчилж, 25 мм-ийн хуулагдсан хэсэг дээр бэхлээрэй. Энэ нь DC+ ба DC-релийн бэхэлгээний терминалын блоктой холбох боолтыг холбох хүртэл утсыг тусгаарладаг.
  • GND ба +5V -ийн утаснууд буухиа шурагны терминал блоктой зөв холбогдохын тулд хөндлөн огтлолцох шаардлагатайг анхаарна уу.
  • Ойролцоогоор 40 мм урттай утас хайчилж, хоёр үзүүрийг 4 мм тусгаарлана. Arduino-ийн ар талд A2 холболт руу нэг талыг гагнах, нөгөө талыг хатуу төлөвт бэхлэх шураг терминал блокийн CH1 холболттой холбох.

АНХААРУУЛГА

Arduino нь Arduino дотоод цахилгаан зохицуулагчийг ашиглахын оронд тогтвортой +5V цахилгаан тэжээлээс шууд тэжээгддэг. Тиймээс Arduino цахилгаан тэжээлээс тэжээл авах үед USB -ийг холбох нь аюулгүй биш юм.

Arduino USB холболтыг ашиглахаасаа өмнө 230VAC сүлжээг таслах хэрэгтэй.

Алхам 8: Arduino Nano + Real Time Clock

Arduino Nano + Бодит цагийн цаг
Arduino Nano + Бодит цагийн цаг

Энэ үе шатанд бодит цагийн цагийг Arduino -тэй холбож, хэсэгчлэн өмнөх алхамд бэлтгэсэн кабелийг ашиглана.

  • Arduino GND-аас ирж буй утсыг (мөн буухиа DC-д холбогдсон) бодит цагийн "-" руу гагнах.
  • Arduino+5V (буухиа DC+-д холбогдсон) утсыг бодит цагийн "+" руу гагнах.
  • Ойролцоогоор 40 мм урттай хоёр утсыг хайчилж, хоёр үзүүрийг 4 мм тусгаарлана.
  • Arduino A4 ба бодит цагийн D (SDA) хооронд утас гагнах.
  • Arduino A5 ба бодит цагийн C (SCL) хооронд утас гагнах.
  • Бодит цагийн утасны утсыг хэлбэржүүлж, эргэдэг кодлогчдод саад болохгүй. Үүнийг хийхийн тулд утас нь хаалтын доод хэсэгт байх ёстой.

Алхам 9: OLED дэлгэцийг холбоно уу

OLED дэлгэцийг холбох
OLED дэлгэцийг холбох

Энэ үе шатанд OLED SPI дэлгэцийг Arduino дээр нэмнэ.

  • 65 мм урттай 2 утас хайчилж, хоёр үзүүрийг 4 мм тусгаарлана.
  • OLED дэлгэцийн GND холболт руу утас гагнах. Энэ утсыг Arduino GND-ээс ирж буй дулаан агшилтын хоолойн тусгаарлагдсан утсанд гагнана (4-р алхамыг үзнэ үү) ба хоёуланг нь хатуу төлөвт релений DC холболттой шураг терминал блок руу холбоно.
  • OLED дэлгэцийн VCC холболтын утсыг гагнах. Энэ утсыг Arduino + 5V-аас ирж буй дулаан агшилтын хоолойн тусгаарлагдсан утсанд гагнана (4-р алхамыг үзнэ үү) ба хоёуланг нь хатуу төлөвт релений DC + холбох шураг терминал блок руу холбоно.
  • 65мм урттай 5 утсыг хайчилж, хоёр үзүүрийг 4 мм тусгаарлана.
  • D0 (CLK) -ийг Arduino D10 руу холбох утсыг гагнах
  • D1 (MOSI / DATA) -ийг Arduino D9 -т холбох утсыг гагнах
  • RES (RT) -ийг Arduino D8 -т холбох утсыг гагнах
  • DC -ийг Arduino D11 -т холбох утас гагнах
  • CS -ийг Arduino D12 -т холбох утас гагнах

Тэмдэглэл: Дэлгэцийн утаснуудын дараалал нь логик биш юм. Энэ бол эхлээд Adafruit -ийн жишээг ашиглаж, дараа нь холболтуудыг өөрчилсний үр дүн юм, учир нь D13 -ийг ашиглах нь Arduino дээр улаан LED -ийг байнга харуулдаг.

Альтернатив

SPI холболтын хувьд "ердийн" дарааллыг ашиглах боломжтой. Үүний тулд oledcontrol.cpp дахь Arduino програмын дижитал гаралтын тодорхойлолтыг зохих ёсоор тохируулах ёстой.

// SPI програм хангамжийг ашиглах

// пин тодорхойлолт

#тодорхойлох CS_PIN 12

#RST_PIN 8 -ийг тодорхойлох

#тодорхойлох DC_PIN 11

#тодорхойлох MOSI_PIN 9

#тодорхойлох CLK_PIN 10

Алхам 10: Ротари кодлогч

Ротари кодлогч
Ротари кодлогч

Диаграммд Arduino -ийн эргэлтэт кодлогчтой холболтыг харуулав (кодлогч нь дээрээс харагдаж байна).

  • 45мм -ийн 4 утсыг хайчилж, хоёр үзүүрийг 4мм -ийн тусгаарлагчаар хуулна.
  • Arduino GND -ийг кодлогчийн баруун дээд ба доод дунд холбогчдод холбоно уу
  • Кодлогчын зүүн доод хэсэгт Arduino D2 -ийг холбоно уу
  • Arduino D3 -ийг кодлогчийн баруун доод хэсэгт холбоно уу
  • Кодлогчын зүүн дээд хэсэгт Arduino D4 -ийг холбоно уу

Алхам 11: Хашаанд суурилуулах

Хавсралтад суурилуулах
Хавсралтад суурилуулах

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

  • Arduino -ийг босоо оролт дээр гулсуулна уу
  • Бодит цагийн цагийг доод тасалгаанд гулсуулна уу
  • Цахилгаан хангамж ба релеийг дээд тасалгаанд шургуулж, реле нь бэхэлгээндээ байгаа эсэхийг шалгаарай.

Алхам 12: Сүлжээнд холбох / Гэрлийг солих

Сүлжээнд холбох / Гэрлийг солих
Сүлжээнд холбох / Гэрлийг солих
Сүлжээнд холбох / Гэрлийг солих
Сүлжээнд холбох / Гэрлийг солих

АНХААРУУЛГА

Хувьсах гүйдлийн сүлжээтэй ажиллахдаа зохих ёсоор анхаарал тавьж, урьдчилан сэргийлэх арга хэмжээ авч, AC сүлжээг салгасан эсэхийг шалгаарай

Энэхүү төслийг дагаж мөрдсөний үр дүнд гарсан аливаа хохирол, хохирлын төлөө би хариуцлага хүлээхгүй

  • AC сүлжээний фазыг релений A1 (зүүн) шураг терминал блок руу холбоно уу.
  • Релегийн B1 (баруун) шураг терминал блок руу шилжих гэрлийн үеийг холбоно.
  • Тусдаа шураг терминал блок ашиглан хувьсах гүйдлийн сүлжээний төвийг сахисан утас, гэрлийн төвийг сахисан утас, тэжээлийн тэжээлийн төвийг сахисан утсыг холбоно.
  • Ороолтыг арилгахын тулд цахилгаан кабель бүрийг зангиа боолтоор холбоно уу.

Алхам 13: Хашлага дуусгах

Хаалтыг дуусгаж байна
Хаалтыг дуусгаж байна

Энэ үе шатанд хашаанд суурилуулах ажил дуусч байна

  • OLED дэлгэцийг хаалтын дунд хэсэгт байрлах дэлгэцийн нүхээр гулсуулна уу.
  • Эргэдэг кодлогчыг дунд хэсгийн нүхээр шургуулж, эргэлтийн эсрэг шугамууд дээшээ гарч байгаа эсэхийг шалгаарай. Эргэдэг кодлогчийг угаагч болон самар ашиглан холбоно уу.
  • Хашааны дээд хэсгийг холбож, доороос нь M3x25mm хэмжээтэй дөрвөн боолтыг холбож хашаа хаах хэрэгтэй.

Алхам 14: Arduino програмчлах

АНХААРУУЛГА

Arduino нь Arduino дотоод цахилгаан зохицуулагчийг ашиглахын оронд тогтвортой +5V цахилгаан тэжээлээс шууд тэжээгддэг. Тиймээс Arduino цахилгаан тэжээлээс тэжээл авах үед USB -ийг холбох нь аюулгүй биш юм.

Arduino USB холболтыг ашиглахаасаа өмнө 230VAC сүлжээг таслах хэрэгтэй.

GitHub -аас Arduino таймер програмыг татаж аваарай.

Энэ програм нь эндээс авах боломжтой Arduino IDE -ийг ашигладаг.

Хөтөлбөр нь дараахь нэмэлт номын санг ашигладаг.

SSD1303Ascii

Arduino Wire номын сан

Dusk2dawn номын санг бас ашигладаг боловч интерфэйс нь өөрчлөгдсөний улмаас код болгон оруулсан болохыг анхаарна уу.

Үүр цайх / үүр цайхыг зөв тооцоолохын тулд уртраг, өргөрөг, цагийн бүсийг тохируулах ёстой.

Dusk2dawn жишээн дээр тайлбарласны дагуу дурын байршлын уртраг, өргөргийг олох хялбар арга бол Google газрын зургийн цэгийг хайж олох, газрын зураг дээрх газрыг баруун товшиж, "Энд юу байна?" Гэж сонгох явдал юм. Доод талд та координат бүхий картыг харах болно.

Өргөрөг ба өргөргийг Dusk2Dawn.cpp 19, 20 -р мөрөнд програмд хатуу кодчилсон болно.

/* Таны байршлын өргөрөг ба уртраг энд тохируулсан байх ёстой.

* * ЗӨВЛӨГӨӨ: Аливаа байршлын уртраг, өргөргийг олох хялбар арга бол Google газрын зургийн байршлыг хайж олох, газрын зураг дээрх газрыг баруун товшиж, "Энд юу байгаа вэ?" -Г сонгох явдал юм. Доод талд та * координат бүхий картыг харах болно. */ #define LATITUDE 52.097105; // Утрехт #define LONGTITUDE 5.068294; // Утрехт

Цагийн бүсийг Dusk2Dawn.cpp 24 -р мөрөнд мөн хатуу кодчилсон байдаг. Анхдагч байдлаар Нидерланд (GMT + 1) гэж тохируулсан байдаг.

/* Энд цагийн бүсээ оруулна уу (GMT -ийн офсет).

*/ #define TIMEZONE 1

Arduino програмыг анх програмчлахдаа EEPROM санах ойг эхлүүлэх шаардлагатай. Үүнийг хийхийн тулд timer.cpp мөр 11 -ийг EEPROM эхлүүлэхийн тулд өөрчилнө үү.

// анх удаа програмчлахдаа үнэн болгож өөрчлөх

INITIALIZE_EEPROM_MEMORY хуурамч гэж #тодорхойлох

Хөтөлбөрийг Arduino -д байршуулж, Arduino -г ачаална уу.

EEPROM эхлүүлэлтийг идэвхгүй болгож, програмыг Arduino -д дахин байршуулна уу. Дахин ачаалах үед таймер одоо шилжих цагийн тохиргоог санах болно.

Алхам 15: Цагийг тохируулах, цагийг солих

Хэрэглэгчийн харилцан үйлчлэлийн тухай ойлголт:

  • Богино даралтыг ашиглан сонголтыг баталгаажуулдаг. Цаашилбал, таймерын үндсэн дэлгэц дээр богино дарахад гэрэл асах эсвэл унтраагдах болно.
  • Таймерын үндсэн дэлгэцээс цэс рүү орохын тулд удаан дарна уу. Цэсийн аль ч хэсэгт удаан дарахад таймерын үндсэн дэлгэц рүү буцах болно.
  • '>' Сонголтын курс. Энэ курсор нь цэснээс сонгосон сонголтыг заана.

Үндсэн таймерын дэлгэц

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

Долоо хоногийн өдөр Су

Одоогийн цаг 16:00

Цаг хэмжигчийн одоогийн байдал, дараагийн шилжих цагийн таймер 17:12 цаг хүртэл унтраана

Үүр цайж, харанхуй болоход Үүрийн гэгээ 08:05 Бүрэнхий 17:10

Зөв цагийг тохируулж байна

Цэс рүү орохын тулд удаан дарна уу. Дараах сонголтуудыг харуулав.

BackSet цаг Долоо хоногийн өдрийн хөтөлбөрWeekend programOptions

Бодит цагийн цагийн огноо, цагийг тохируулахын тулд тохируулсан цагийг сонгоно уу. Зөв утгыг оруулна уу:

YearMonthDayTime

Таймер нь долоо хоногийн өдрийг автоматаар тодорхойлдог. Зуны цагийн хуваарьт шилжих нь мөн автоматаар хийгддэг. Зуны цагийг зөвхөн Европын цагийн бүсэд ашигладаг.

Цаг хэмжигч програмыг тохируулж байна

Таймер нь 2 хөтөлбөртэй бөгөөд нэг нь долоо хоногийн, нөгөө нь амралтын өдрүүдэд зориулагдсан болно. Баасан гараг нь амралтын өдрүүдийн нэг хэсэг гэж тооцогддог тул гэрэл арай удаан үргэлжлэх болно.

Таймер бүрт асаах, унтраах мөч байдаг. Энэ мөч нь дараахь байдлаар байж болно.

  • Цаг: Яг заасан цаг
  • Үүрийн гэгээ: Үүр цайх цагийг үндэслэн шилжих
  • Бүрэнхий: Оройн тооцоолсон цаг дээр үндэслэн шилжих

Орой болон үүр цайхын тулд 59 минутын өмнө эсвэл дараа залруулах утгыг оруулах боломжтой.

Жишээ:

Шөнөжингөө гэрэл асаахын тулд асаахыг (оройн + 10мин) сонгоод (үүр цайх - 10мин) унтраана.

Орой гэрэл асаахын тулд үдшийн бүрийг асааж, цагтаа унтраана: 22:30.

Сонголтууд

Сонголтуудын дэлгэц дээр дэлгэцийг солих цагийг тохируулж болно.

Дэлгэцийг унтраасан үед кодлогч товчлуурыг дарахад таймерын үндсэн дэлгэц рүү буцах болно.

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