Mundarija:
- 1 -qadam: Konfiguratsiya
- 2 -qadam: O'rnatish moslamalarini sozlash
- 3 -qadam: Histerezis boshqaruvchisi
- 4 -qadam: PID tekshiruvi
- 5 -qadam: Avtobus xabari
- 6 -qadam: Liboslar
Video: Arduino -ga asoslangan termostat: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Bu safar biz Arduino, harorat sensori va o'rni asosida termostatni qurmoqchimiz.
1 -qadam: Konfiguratsiya
Butun konfiguratsiya Config.h da saqlanadi. Siz PIN -kodni boshqarish o'rni, o'qish harorati, chegaralar yoki vaqtni o'zgartirishingiz mumkin.
2 -qadam: O'rnatish moslamalarini sozlash
Faraz qilaylik, bizda 3 ta o'rni bo'lishi kerak:
- ID: 0, PIN: 1, haroratni sozlash nuqtasi: 20
- ID: 1, PIN -kod: 10, haroratni belgilash nuqtasi: 30
- ID: 2, PIN -kod: 11, Haroratning belgilangan nuqtasi: 40
Avval siz tanlagan PIN -kod hali olinmaganligiga ishonch hosil qilishingiz kerak. Barcha pinlarni Config.h da topish mumkin, ular DIG_PIN bilan boshlanadigan o'zgaruvchilar bilan belgilanadi.
Siz Config.h -ni tahrir qilishingiz va PIN -kodlarni, chegaralarni va o'rni miqdorini sozlashingiz kerak. Shubhasiz, ba'zi xususiyatlar allaqachon mavjud, shuning uchun ularni tahrir qilish kerak.
const statik uint8_t DIG_PIN_RELAY_0 = 1; const statik uint8_t DIG_PIN_RELAY_1 = 10; const statik uint8_t DIG_PIN_RELAY_2 = 11;
const statik uint8_t RELAYS_AMOUNT = 3;
const statik int16_t RELAY_TEMP_SET_POINT_0 = 20;
const statik int16_t RELAY_TEMP_SET_POINT_1 = 30; const statik int16_t RELAY_TEMP_SET_POINT_2 = 40;
Endi biz o'rni va tekshirgichni sozlashimiz kerak, bu RelayDriver.cpp da sodir bo'ladi
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 -qadam: Histerezis boshqaruvchisi
Bu yuqoridagi misolda tanlangan, u bir nechta qo'shimcha konfiguratsiyaga ega:
const statik uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 daqiqa statik uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS keyingi röleyni almashtirish uchun kutish vaqtini beradi. Tasavvur qiling, bizning misolimizdagi konfiguratsiya 40 graduslik muhitda ishlay boshlaydi. Bu bir vaqtning o'zida barcha uchta o'rni yoqilishiga olib keladi. Bu oxir -oqibat yuqori quvvat sarflanishiga olib kelishi mumkin - nima boshqarayotganingizga qarab, masalan, elektr dvigatel ishga tushganda ko'proq quvvat sarflaydi. Bizning holatda, o'tish rölesi quyidagi oqimga ega: birinchi o'rni ketadi, 5 daqiqa kutadi, ikkinchisi davom etadi, 5 daqiqa kutadi, uchinchisi davom etadi.
RHC_RELAY_MIN_SWITCH_MS histerezni aniqlaydi, bu uning holatini o'zgartirish uchun ma'lum o'rni uchun minimal chastota. Yoqilgandan so'ng, u harorat o'zgarishiga e'tibor bermay, shu vaqtgacha yonib turadi. Bu elektr dvigatellarni boshqarishda juda qulay, chunki har bir kalit hayot vaqtiga salbiy ta'sir qiladi.
4 -qadam: PID tekshiruvi
Bu rivojlangan mavzu. Bunday boshqaruvchini amalga oshirish - oddiy ish, to'g'ri amplituda sozlamalarini topish - bu boshqa hikoya.
PID tekshirgichidan foydalanish uchun initRelayHysteresisController (…..) ni initRelayPiDController (….) Ga o'zgartirishingiz kerak va buning uchun to'g'ri sozlamalarni topishingiz kerak. Odatdagidek, ularni Config.h -da topasiz
Men Java -da oddiy simulyatorni qo'lladim, natijada natijalarni ingl. Buni quyidagi papkada topish mumkin: pidsimulator. Bundan pastda siz ikkita PID va PID kontrollerlari uchun simulyatsiyalarni ko'rishingiz mumkin. PID juda barqaror emas, chunki men to'g'ri qiymatlarni topish uchun murakkab algoritmni qo'llaganim yo'q.
Ikkala uchastkada ham kerakli harorat 30 (ko'k) ga o'rnatiladi. Joriy harorat o'qish chizig'ini ko'rsatadi. Relayda ikkita holat yoqilgan va o'chirilgan. U yoqilganda harorat 1,5 ga pasayadi, o'chirilganda esa 0,5 ga ko'tariladi.
5 -qadam: Avtobus xabari
Har xil dasturiy ta'minot modullari bir -biri bilan aloqa o'rnatishi kerak, umid qilamanki, har ikkala usulda ham emas;)
Masalan:
- statistika moduli ma'lum bir o'rni qachon yoqilishini va o'chishini bilishi kerak.
- tugmani bosish displey tarkibini o'zgartirishi kerak, shuningdek, protsessorning ko'p tsiklini ishlatadigan xizmatlarni to'xtatishi kerak, masalan, sensordan harorat o'qilishi,
- Biroz vaqt o'tgach, harorat ko'rsatkichini yangilash kerak.
- va hokazo….
Har bir modul Message Bus -ga ulangan va ma'lum hodisalar uchun ro'yxatdan o'tishi mumkin va har qanday hodisani (birinchi diagramma) ishlab chiqarishi mumkin.
Ikkinchi diagrammada biz tugmani bosish orqali voqealar oqimini ko'ramiz.
Ba'zi tarkibiy qismlar vaqti -vaqti bilan bajarilishi kerak bo'lgan vazifalarga ega. Biz ularga mos keladigan usullarni asosiy tsikldan chaqirishimiz mumkin, chunki bizda "Xabar avtobusi" bor, faqat to'g'ri hodisani tarqatish kerak (uchinchi diagramma).
6 -qadam: Liboslar
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Tavsiya:
Arduino brauzeriga asoslangan masofadan boshqarish pulti (linux): 9 qadam (rasmlar bilan)
Arduino brauzeriga asoslangan masofadan boshqarish pulti (linux): Bizda bolalar bor. Men ularni chindan ham yaxshi ko'raman, lekin ular bolalar kanallarini qo'yganda, ular sun'iy yo'ldosh va televizor uchun masofadan boshqarish pultini yashirishadi. Bu bir necha yillar davomida har kuni sodir bo'lgandan keyin va mening sevikli rafiqam menga ruxsat bergandan keyin
Arduino yordamida barmoq iziga asoslangan biometrik ovoz berish mashinasi: 4 qadam (rasmlar bilan)
Arduino -dan foydalangan holda barmoq iziga asoslangan biometrik ovoz berish mashinasi: Biz hammamiz bilamizki, foydalanuvchi ovoz berish uchun tugmani bosishi kerak. Ammo bu mashinalar boshidanoq temperament uchun tanqid qilingan. Shunday qilib, hukumat barmoq izlarini bosishni joriy qilishni rejalashtirmoqda
Arduino -ga asoslangan aqlli Romote avtomobili: 5 qadam
Arduino -ga asoslangan aqlli Romote avtomobili: Ushbu loyiha aqlli mashina ishlab chiqarish uchun Arduino UNO ishlab chiqish kengashiga asoslangan. Mashinada Bluetooth simsiz boshqaruv, to'siqlardan qochish, signal signallari va boshqa funktsiyalar mavjud va bu to'rt g'ildirakli mashinadir, burilish oson
SMS -xabarnoma va Thingspeak ma'lumotlarini yuklash, Arduino -ga asoslangan, uy avtomatizatsiyasi bilan GPS avtomobil kuzatuvchisi: 5 qadam (rasmlar bilan)
SMS -xabarnoma va Thingspeak ma'lumotlarini yuklash, Arduino -ga asoslangan, uy avtomatizatsiyasi bilan GPS avtomobil kuzatuvchisi: Men bu GPS -trekerni o'tgan yili yaratganman va u yaxshi ishlaganligi uchun hozir uni Instructable -da nashr etaman. U yuk mashinasining aksessuarlari vilkasiga ulangan. GPS -kuzatuvchi avtomobilning joylashuvi, tezligi, yo'nalishi va o'lchangan haroratini mobil ma'lumotlar orqali yuklaydi
MQmax 0.7 Esp8266 va Arduino Mini Pro -ga asoslangan arzon Wi -Fi IoT platformasi: 6 qadam
MQmax 0.7 Esp8266 va Arduino Mini Pro -ga asoslangan arzon Wi -Fi IoT platformasi: Salom, bu mening ikkinchi ko'rsatmam (bundan buyon men hisoblashni to'xtataman). Men buni M2M ishini o'z ichiga olgan Real IoT ilovalari uchun oddiy (hech bo'lmaganda men uchun), arzon, ishlab chiqarilishi oson va samarali platforma yaratish uchun qildim. Ushbu platforma esp8266 bilan ishlaydi va