Агуулгын хүснэгт:
- Алхам 1: Тохиргоо
- Алхам 2: Реле тохируулах
- Алхам 3: Гистерезис хянагч
- Алхам 4: PID хянагч
- Алхам 5: Зурвасын автобус
- Алхам 6: Либс
Видео: Arduino дээр суурилсан термостат: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Энэ удаад бид Arduino, температур мэдрэгч, реле дээр суурилсан термостат бүтээх гэж байна.
Алхам 1: Тохиргоо
Бүх тохиргоог Config.h -д хадгалдаг. Та PIN кодыг хянах реле, унших температур, босго эсвэл цагийг өөрчлөх боломжтой.
Алхам 2: Реле тохируулах
Бид 3 буухиа хийхийг хүсч байна гэж бодъё.
- ID: 0, ПИН: 1, Температурын тогтоосон цэг: 20
- ID: 1, ПИН: 10, Температурын тогтоосон цэг: 30
- ID: 2, ПИН: 11, Температурын тогтоосон цэг: 40
Эхлээд та хүссэн PIN кодоо аваагүй байгаа эсэхийг шалгах хэрэгтэй. Бүх тээглүүрийг Config.h дээрээс олж болно, тэдгээрийг DIG_PIN -ээс эхлэн хувьсагчуудаар тодорхойлдог.
Та Config.h -ийг засварлаж, ПИН код, босго болон реле хэмжээг тохируулах ёстой. Мэдээжийн хэрэг зарим шинж чанарууд аль хэдийн бий болсон тул та тэдгээрийг засах хэрэгтэй.
const статик uint8_t DIG_PIN_RELAY_0 = 1; const статик uint8_t DIG_PIN_RELAY_1 = 10; const статик uint8_t DIG_PIN_RELAY_2 = 11;
const статик uint8_t RELAYS_AMOUNT = 3;
const статик int16_t RELAY_TEMP_SET_POINT_0 = 20;
const статик int16_t RELAY_TEMP_SET_POINT_1 = 30; const статик int16_t RELAY_TEMP_SET_POINT_2 = 40;
Одоо бид реле болон хянагчийг тохируулах ёстой, энэ нь RelayDriver.cpp дээр тохиолддог
initRelayHysteresisController (0, DIG_PIN_RELAY_0, RELAY_TEMP_SET_POINT_0); initRelayHysteresisController (1, DIG_PIN_RELAY_1, RELAY_TEMP_SET_POINT_1); initRelayHysteresisController (2, DIG_PIN_RELAY_2, RELAY_TEMP_SET_POINT_2);
xxx
Алхам 3: Гистерезис хянагч
Энэ нь дээр дурдсан жишээнд сонгогдсон бөгөөд цөөн хэдэн нэмэлт тохиргоотой байдаг.
const статик uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 минутын статик uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS нь дараагийн релеийг солих хүлээх хугацааг өгдөг. Бидний жишээн дээрх тохиргоо 40 градусын орчинд ажиллаж эхэлнэ гэж төсөөлөөд үз дээ. Энэ нь бүх гурван релейг нэгэн зэрэг идэвхжүүлэх болно. Энэ нь эцэстээ өндөр эрчим хүчний хэрэглээнд хүргэж болзошгүй бөгөөд таны хянаж байгаа зүйлээс хамааран цахилгаан хөдөлгүүр асаахад илүү их эрчим хүч зарцуулдаг. Манай тохиолдолд сэлгэн залгах реле дараах урсгалтай байдаг: эхний буухиа явдаг, 5 минут хүлээдэг, хоёр дахь нь үргэлжилдэг, 5 минут хүлээдэг, гурав дахь нь үргэлжилдэг.
RHC_RELAY_MIN_SWITCH_MS нь гистерезийг тодорхойлдог бөгөөд энэ нь тухайн релений төлөв байдлыг өөрчлөх хамгийн бага давтамж юм. Үүнийг асаасны дараа температурын өөрчлөлтийг үл тоомсорлож, энэ хугацаанд хамгийн багадаа асах болно. Шилжүүлэгч бүр нь амьд цагт сөргөөр нөлөөлдөг тул энэ нь таны цахилгаан моторыг удирдахад маш тохиромжтой юм.
Алхам 4: PID хянагч
Энэ бол дэвшилтэт сэдэв юм. Ийм хянагчийг хэрэгжүүлэх нь энгийн ажил бөгөөд далайцын зөв тохиргоог олох нь өөр түүх юм.
PID хянагчийг ашиглахын тулд initRelayHysteresisController (…..) -ийг initRelayPiDController (….) Болгон өөрчлөх шаардлагатай бөгөөд үүний тулд та тохирох тохиргоог олох хэрэгтэй. Ердийнх шиг та тэдгээрийг Config.h дээрээс олох болно
Би Java дээр энгийн симулятор ашигласан бөгөөд ингэснээр үр дүнг нь төсөөлөх боломжтой болно. Үүнийг доорх хавтаснаас олж болно: pidsimulator. Доороос та PID a P. PID хоёр хянагчийн симуляцийг харж чадахгүй байна, учир нь би зөв утгыг олохын тулд ямар ч нарийн төвөгтэй алгоритм хэрэглээгүй.
Хоёр талбайн хувьд шаардлагатай температурыг 30 (цэнхэр) болгоно. Одоогийн температур нь уншсан мөрийг заана. Реле нь ON ба OFF гэсэн хоёр төлөвтэй. Идэвхжүүлсэн үед температур 1.5 -аар буурдаг, идэвхгүй бол 0.5 -аар нэмэгддэг.
Алхам 5: Зурвасын автобус
Програм хангамжийн өөр өөр модулиуд хоорондоо харилцах ёстой, гэхдээ хоёулаа биш гэж найдаж байна;)
Жишээлбэл:
- Статистикийн модуль нь тухайн реле хэзээ асаж, унтрах ёстойг мэдэх ёстой.
- товчлуур дарахад дэлгэцийн агуулга өөрчлөгдөх ёстой бөгөөд энэ нь процессорын олон мөчлөг, тухайлбал мэдрэгчийн температурыг унших гэх мэт үйлчилгээг зогсоох ёстой.
- хэсэг хугацааны дараа температурын заалтыг шинэчлэх шаардлагатай болдог.
- гэх мэт ….
Модуль бүр Message Bus -т холбогдсон бөгөөд тодорхой үйл явдлуудад бүртгүүлэх боломжтой бөгөөд аливаа үйл явдлыг гаргах боломжтой (эхний диаграм).
Хоёрдахь диаграм дээр бид товчлуур дээр дарснаар үйл явдлын урсгалыг харж болно.
Зарим бүрэлдэхүүн хэсгүүдэд үе үе гүйцэтгэх шаардлагатай зарим даалгавар байдаг. Бид тэдний холбогдох аргуудыг үндсэн давталтаас дуудаж болно, учир нь бидэнд Message Bus байгаа тул зөвхөн зөв үйл явдлыг сурталчлах шаардлагатай (гуравдахь диаграм)
Алхам 6: Либс
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Зөвлөмж болгож буй:
Arduino хөтөч дээр суурилсан алсын удирдлага (linux): 9 алхам (зурагтай)
Arduino хөтөч дээр суурилсан алсын удирдлага (linux): Бид хүүхдүүдтэй. Би тэдэнд маш их дуртай, гэхдээ тэд хүүхдийн сувгийг асаахдаа хиймэл дагуул, телевизийн алсын удирдлагыг нуун дарагдуулдаг. Үүнийг хэдэн жилийн турш өдөр бүр хийсний дараа, хайрт эхнэр маань надад хүүхэд төрүүлэхийг зөвшөөрсний дараа
Raspberry Pi эсвэл бусад Linux / unix дээр суурилсан компьютер дээр дэлгэцгүй / дэлгэцгүй (толгойгүй) ажиллуулах: 6 алхам
Raspberry Pi эсвэл бусад Linux / unix дээр суурилсан компьютер дээр дэлгэцгүй / дэлгэцгүй (толгойгүй) ажиллуулах: Ихэнх хүмүүс Raspberry PI худалдаж авахдаа компьютерийн дэлгэц хэрэгтэй гэж боддог. Компьютерийн шаардлагагүй дэлгэц, гар дээр мөнгөө бүү үр. Компьютер хооронд гар, дэлгэц шилжүүлэхэд цагаа дэмий үрэх хэрэггүй. Үгүй бол ТВ битгий уя
Arduino дээр суурилсан DIY тоглоомын хянагч - Arduino PS2 тоглоомын хянагч - DIY Arduino Gamepad ашиглан Tekken тоглох: 7 алхам
Arduino дээр суурилсан DIY тоглоомын хянагч | Arduino PS2 тоглоомын хянагч | DIY Arduino Gamepad ашиглан Tekken тоглох: Сайн байна уу залуусаа, тоглоом тоглох нь үргэлж хөгжилтэй байдаг, гэхдээ өөрийн гараар хийсэн DIY тоглоомын хянагчтай тоглох нь илүү хөгжилтэй байдаг тул бид энэ зааварт arduino pro micro ашиглан тоглоом хянагч хийх болно
Arduino дээр суурилсан контактгүй хэт улаан туяаны термометр - Arduino ашиглан IR суурилсан термометр: 4 алхам
Arduino дээр суурилсан контактгүй хэт улаан туяаны термометр | Arduino ашиглан IR суурилсан термометр: Сайн байна уу залуусаа энэ зааварчилгаанд бид arduino ашиглан контактгүй термометр хийх болно. Заримдаа шингэн/хатуу бодисын температур хэт өндөр эсвэл бага байдаг тул түүнтэй холбоо тогтооход хэцүү байдаг. тэр үед температур
ESP8266 дээр суурилсан Sonoff ухаалаг унтраалга дээр MicroPython програмыг хэрхэн яаж гэрэлтүүлэх вэ: 3 алхам (зурагтай)
ESP8266 дээр суурилсан Sonoff ухаалаг шилжүүлэгч дээр MicroPython Firmware -ийг хэрхэн яаж гэрэлтүүлэх вэ? Sonoff нь ITEAD -ийн боловсруулсан Smart Home -ийн төхөөрөмжийн шугам юм. Энэ шугамын хамгийн уян хатан, хямд төхөөрөмжүүдийн нэг бол Sonoff Basic ба Sonoff Dual юм. Эдгээр нь ESP8266 агуу чип дээр суурилсан Wi-Fi идэвхжүүлсэн унтраалга юм. Хэзээ