Мазмуну:
- 1 -кадам: Конфигурация
- 2 -кадам: Релелерди конфигурациялоо
- 3 -кадам: Hysteresis Controller
- 4 -кадам: PID Controller
- 5 -кадам: Билдирүү автобусу
- 6 -кадам: Libs
Video: Arduino негизделген термостат: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул жолу биз Arduino, температура сенсорунун жана реленин негизинде термостат курабыз. Githubдан таба аласыз.
1 -кадам: Конфигурация
Бүт конфигурация Config.h сакталат. Сиз PIN'лерди көзөмөлдөө релесин, окуу температурасын, босоголорду же убакытты өзгөртө аласыз.
2 -кадам: Релелерди конфигурациялоо
Келгиле, биз 3 релеге ээ болууну каалайбыз:
- ID: 0, PIN: 1, Температуранын белгиленген чекити: 20
- ID: 1, PIN: 10, Температуранын белгиленген чекити: 30
- ID: 2, PIN: 11, Температуранын белгиленген чекити: 40
Адегенде сиз тандаган PIN мурунтан эле алынбаганына ынанууңуз керек. Бардык казыктарды Config.h сайтынан табууга болот, алар DIG_PIN менен башталган өзгөрмөлөр менен аныкталат.
Сиз Config.h түзөтүп, PIN коддорду, чектерди жана реле көлөмүн конфигурациялашыңыз керек. Албетте, кээ бир касиеттер мурунтан эле бар, андыктан аларды жөн гана түзөтүү керек.
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 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 -кадам: Hysteresis Controller
Бул жогорудагы мисалда тандалган, анын кошумча конфигурациялары аз:
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 Controller
Бул өнүккөн тема. Мындай контроллерди ишке ашыруу - жөнөкөй иш, туура амплитудалык орнотууларды табуу - бул башка окуя.
PID контроллерин колдонуу үчүн initRelayHysteresisController (…..) initRelayPiDController (….) Кылып өзгөртүшүңүз керек жана ага туура орнотууларды табышыңыз керек. Адаттагыдай эле аларды Config.h сайтынан таба аласыз
Мен Javaда жөнөкөй тренажерду ишке киргиздим, натыйжада элестетүү мүмкүн. Бул папкадан табууга болот: pidsimulator. Below сиз симуляцияларды көрө аласыз эки контролер PID a P. PID туруктуу эмес, анткени мен туура баалуулуктарды табуу үчүн эч кандай татаал алгоритмди колдонгон жокмун.
Эки участокто тең керектүү температура 30 (көк) коюлган. Учурдагы температура окуу сызыгын көрсөтөт. Эстафета күйүк жана өчүк эки абалга ээ. Иштетилгенде температура 1,5 төмөндөйт, ал өчүрүлгөндө 0,5ке көтөрүлөт.
5 -кадам: Билдирүү автобусу
Ар кандай программалык модулдар бири -бири менен байланышта болушу керек, үмүт эки жол менен эмес;)
Мисалы:
- статистикалык модуль белгилүү бир реле качан өчүп -күйөрүн билиши керек,
- баскычты басуу дисплейдин мазмунун өзгөртүшү керек, ошондой эле көптөгөн CPU циклдерин керектөөчү кызматтарды токтотушу керек, мисалы сенсордон температураны окуу,
- бир аз убакыттан кийин температуранын көрсөткүчү жаңыртылышы керек,
- жана башка….
Ар бир модуль Message Bus менен туташып турат жана белгилүү бир окуяларга каттала алат жана ар кандай окуяларды чыгара алат (биринчи диаграмма).
Экинчи диаграммада биз баскычты басуу менен окуялардын агымын көрө алабыз.
Кээ бир компоненттер мезгил -мезгили менен аткарылышы керек болгон кээ бир милдеттерге ээ. Биз алардын тиешелүү ыкмаларын негизги циклден чакыра алмакпыз, анткени бизде Message Bus болгону үчүн туура окуяны жайылтуу гана керек (үчүнчү диаграмма)
6 -кадам: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Сунушталууда:
Акылдуу термостат ESP8266: 6 кадам (сүрөттөр менен)
Акылдуу термостат ESP8266: Bienvenue sur ce nouvel макала. Жөнөкөй сөз менен айтканда, каржылык колдоо көрсөтүлбөйт. Добуш берүүнүн аягына чейин сунуш кылынат, ал эми сиз өзүңүздүн оюңузча
Ардуиного негизделген байланышсыз инфракызыл термометр - IR негизделген термометр Arduino колдонуу: 4 кадам
Ардуиного негизделген байланышсыз инфракызыл термометр | IR негизделген термометр Arduino колдонуу: Салам балдар бул көрсөтмөлөрдө биз ардуинону колдонобуз. ошол сахнада температура
Аба ырайына негизделген музыка генератору (ESP8266 негизделген Midi генератору): 4 кадам (сүрөттөр менен)
Аба ырайына негизделген музыка генератору (ESP8266 негизделген Midi генератору): Саламатсызбы, мен бүгүн өзүңүздүн кичинекей аба ырайына негизделген музыкалык генераторду кантип жасоону түшүндүрүп берем. жана жарыктын интенсивдүүлүгү. Бул бүтүндөй ырларды же аккорд программасын түзөт деп күтпөңүз
Туташкан термостат: 6 кадам (сүрөттөр менен)
Туташкан термостат: Үйүңүздөгү температураны так көзөмөлдөө, албетте, энергияңызды үнөмдөөнүн эң жакшы ыкмаларынын бири. Кыш мезгилинде жылуу үйдө өзүңүздү жакшы сезгиңиз келет. Менин азыркы термостатым статикалык программалоого гана мүмкүнчүлүк берет: I
Автостат: Алыскы термостат: 8 кадам (Сүрөттөр менен)
Автостат: Алыскы термостат: Сиз сурап жаткан сурооңуз " эмне үчүн сиз башка алыстан термостатты жасап жатасыз? &Quot; Бул суроонун жообу мага керек болчу, ал эми базардагы акылдуу термостаттар өтө кымбат. Адилеттүү эскертүү, бул " түшүнүктүн далили " куруу t