Мазмұны:
- 1 -қадам: конфигурация
- 2 -қадам: реле конфигурациясы
- 3 -қадам: гистерезис контроллері
- 4 -қадам: PID контроллері
- 5 -қадам: Хабарлама шинасы
- 6 -қадам: Libs
Бейне: Arduino негізіндегі термостат: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Бұл жолы біз Arduino, температура сенсоры мен реле негізінде термостат құрастырмақпыз.
1 -қадам: конфигурация
Тұтас конфигурация Config.h -те сақталады. PIN кодын реле, оқу температурасы, шекті мәндер немесе уақытты өзгертуге болады.
2 -қадам: реле конфигурациясы
Біз 3 эстафетаны алғымыз келеді деп есептейік:
- Идентификатор: 0, PIN: 1, температураның белгіленген мәні: 20
- Идентификатор: 1, ПИН: 10, Температураның белгіленген мәні: 30
- Идентификатор: 2, ПИН: 11, Температураның белгіленген мәні: 40
Алдымен сіз таңдаған PIN коды әлі алынбағанына көз жеткізуіңіз керек. Барлық түйреуіштерді Config.h сайтынан табуға болады, олар DIG_PIN -ден басталатын айнымалылармен анықталады.
Config.h -ды өңдеп, PIN кодтарын, шектерді және реле мөлшерін конфигурациялау қажет. Әлбетте, кейбір қасиеттер бұрыннан бар, сондықтан оларды өңдеу керек.
тұрақты статикалық uint8_t DIG_PIN_RELAY_0 = 1; тұрақты статикалық uint8_t DIG_PIN_RELAY_1 = 10; const статикалық uint8_t DIG_PIN_RELAY_2 = 11;
const статикалық uint8_t RELAYS_AMOUNT = 3;
const static int16_t RELAY_TEMP_SET_POINT_0 = 20;
const static int16_t RELAY_TEMP_SET_POINT_1 = 30; const static 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 -ға орнатылған (көк). Ағымдағы температура оқу сызығын көрсетеді. Реле қосулы және өшірілген екі күйге ие. Ол қосылған кезде температура 1,5 -ке төмендейді, сөндірілгенде ол 0,5 -ке көтеріледі.
5 -қадам: Хабарлама шинасы
Бағдарламалық қамтамасыз етудің әр түрлі модульдері бір -бірімен байланысқа түсуі керек, екі жағынан да емес;)
Мысалға:
- статистикалық модуль белгілі бір реленің қашан қосылатынын және өшетінін білуі керек.
- түймені басу дисплей мазмұнын өзгертуі керек, сонымен қатар процессордың көптеген циклдарын тұтынатын қызметтерді тоқтатуы керек, мысалы, сенсордан температураны оқу,
- Біраз уақыттан кейін температура көрсеткішін жаңарту қажет.
- және тағы басқа….
Әрбір модуль хабарлама шинасына қосылған және белгілі бір оқиғаларға тіркеле алады және кез келген оқиғаларды шығара алады (бірінші диаграмма).
Екінші диаграммада біз батырманы басу арқылы оқиғаның барысын көре аламыз.
Кейбір компоненттерде мезгіл -мезгіл орындалатын міндеттер бар. Біз олардың сәйкес әдістерін негізгі циклден шақыра аламыз, өйткені бізде Message Bus бар, тек дұрыс оқиғаны тарату қажет (үшінші диаграмма)
6 -қадам: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Ұсынылған:
Жылытудың көмегімен термостат орнатыңыз және үнемдеңіз: 53 қадам (суреттермен)
Жылытудың жеке термостатын жасаңыз және үнемдеңіз: мақсат не? Үйді қалағаныңызша жылыту арқылы жайлылықты арттырыңыз, үйді қажет болған жағдайда ғана жылыту арқылы үнемдеңіз және парниктік газдар шығарындыларын азайтыңыз Қайда болсаңыз да, жылытуды бақылауда ұстаңыз
Ақылды термостат ESP8266: 6 қадам (суреттермен)
Ақылды термостат ESP8266: Bienvenue sur ce nouvel мақаласы. Қажет болған жағдайда, қамауға алуды тоқтату керек. Бұл ұсыныстардың ең маңыздысы болып табылады, бұл сіздің жеке меншігіңізде
Arduino негізіндегі байланыссыз инфрақызыл термометр - IR негізіндегі термометр Arduino көмегімен: 4 қадам
Arduino негізіндегі байланыссыз инфрақызыл термометр | Ардуиноны қолданатын инфрақызыл термометр: Сәлеметсіз бе, балалар, біз индуктивті емес термометр жасаймыз, өйткені кейде сұйықтықтың/қатты заттың температурасы тым жоғары немесе төмен болады, содан кейін онымен байланыс жасау және оны оқу қиын. сол кездегі температура
Қосылған термостат: 6 қадам (суреттермен)
Қосылған термостат: Сіздің үйіңіздегі температураны дәл бақылау - бұл энергия шығындарын үнемдеудің ең жақсы әдістерінің бірі. Қыс мезгілінде жылы үйде өзіңізді жақсы сезінгіңіз келеді. Менің қазіргі термостатым тек статикалық бағдарламалауға мүмкіндік береді: Мен
Автостат: қашықтағы термостат: 8 қадам (суреттермен)
Автостат: Қашықтағы термостат: Сіз сұрайтын шығарсыз " неге сіз басқа қашықтағы термостатты жасайсыз? &Quot; Бұл сұраққа жауап беру керек болды, ал нарықтағы ақылды термостаттар тым қымбат. Адал ескерту, бұл " тұжырымдаманың дәлелі " салу