Përmbajtje:
- Hapi 1: Konfigurimi
- Hapi 2: Konfigurimi i Relays
- Hapi 3: Kontrolluesi i histerezës
- Hapi 4: Kontrolluesi PID
- Hapi 5: Autobusi i Mesazheve
- Hapi 6: Libs
Video: Termostat Bazuar në Arduino: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Këtë herë ne do të ndërtojmë një Termostat të bazuar në Arduino, sensor të temperaturës dhe stafetë. Mund ta gjeni në github
Hapi 1: Konfigurimi
Konfigurimi i tërë ruhet në Config.h. Mund të ndryshoni stafetat kontrolluese, temperaturën e leximit, pragjet ose kohën.
Hapi 2: Konfigurimi i Relays
Le të supozojmë se do të donim të kishim 3 stafeta:
- ID: 0, PIN: 1, Pika e caktuar e temperaturës: 20
- ID: 1, PIN: 10, Pika e caktuar e temperaturës: 30
- ID: 2, PIN: 11, Pika e caktuar e temperaturës: 40
Së pari ju duhet të siguroheni që PIN -i i zgjedhur nga ju nuk është marrë tashmë. Të gjitha kunjat mund të gjenden në Config.h, ato përcaktohen nga ndryshore duke filluar me DIG_PIN.
Duhet të redaktoni Config.h dhe të konfiguroni kodet PIN, pragjet dhe sasinë e stafetave. Shtë e qartë se disa prona tashmë ekzistojnë, kështu që ju vetëm duhet t'i modifikoni ato.
const statike uint8_t DIG_PIN_RELAY_0 = 1; const statike uint8_t DIG_PIN_RELAY_1 = 10; const statike uint8_t DIG_PIN_RELAY_2 = 11;
const statike uint8_t RELAYS_AMOUNT = 3;
const statike int16_t RELAY_TEMP_SET_POINT_0 = 20;
const statike int16_t RELAY_TEMP_SET_POINT_1 = 30; const statike int16_t RELAY_TEMP_SET_POINT_2 = 40;
Tani duhet të konfigurojmë stafetë dhe kontrolluesin, kjo ndodh në 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
Hapi 3: Kontrolluesi i histerezës
Theshtë ai i zgjedhur në shembullin e mësipërm, ka pak konfigurime shtesë:
const statike uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 minuta konstante uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS jep kohë pritjeje për ndërrimin e stafetës tjetër. Imagjinoni që konfigurimi nga shembulli ynë do të fillonte të punonte në një mjedis 40 gradë. Kjo do të rezultonte në mundësimin e të tre stafetëve në të njëjtën kohë. Kjo përfundimisht mund të çojë në konsum të lartë të energjisë - në varësi të asaj që po kontrolloni, motori elektrik për shembull konsumon më shumë energji gjatë fillimit. Në rastin tonë, stafetat e ndërrimit kanë rrjedhën e mëposhtme: stafeta e parë shkon, prisni 5 minuta, e dyta vazhdon, prisni 5 minuta, e treta vazhdon.
RHC_RELAY_MIN_SWITCH_MS përcakton histerezën, është frekuenca minimale që stafetat e veçanta të ndryshojnë gjendjen e saj. Pasi të jetë ndezur, do të qëndrojë ndezur për së paku këtë periudhë kohe, duke injoruar ndryshimet e temperaturës. Kjo është e qetë e dobishme nëse kontrolloni motorët elektrikë, pasi secili ndërprerës ka ndikim negativ në kohën e funksionimit.
Hapi 4: Kontrolluesi PID
Kjo është temë e avancuar. Zbatimi i një kontrolluesi të tillë është një detyrë e thjeshtë, gjetja e cilësimeve të duhura të amplitudës është një histori e ndryshme.
Për të përdorur kontrolluesin PID duhet të ndryshoni initRelayHysteresisController (…..) në initRelayPiDController (….) Dhe duhet të gjeni cilësimet e duhura për të. Si zakonisht, do t'i gjeni në Config.h
Kam zbatuar imituesin e thjeshtë në Java, në mënyrë që të jetë e mundur të vizualizohen rezultatet. Mund të gjendet në dosjen: pidsimulator. Më poshtë mund të shihni simulimet për dy kontrollues PID a P. PID nuk është krejtësisht i qëndrueshëm sepse nuk kam aplikuar ndonjë algoritëm të sofistikuar për të gjetur vlerat e duhura.
Në të dy komplotet temperatura e kërkuar është vendosur në 30 (blu). Temperatura aktuale tregon vijën e leximit. Rele ka dy gjendje ON dhe OFF. Kur është e aktivizuar temperatura bie me 1.5, kur është e çaktivizuar rritet me 0.5.
Hapi 5: Autobusi i Mesazheve
Module të ndryshme softuerike duhet të komunikojnë me njëri -tjetrin, me shpresë jo në të dyja mënyrat;)
Për shembull:
- moduli i statistikave duhet të dijë kur stafeta e veçantë ndizet dhe fiket,
- shtypja e një butoni duhet të ndryshojë përmbajtjen e ekranit dhe gjithashtu duhet të pezullojë shërbimet që do të konsumonin shumë cikle të CPU -së, për shembull leximi i temperaturës nga sensori,
- pas ca kohësh leximi i temperaturës duhet të rinovohet,
- dhe kështu me radhë….
Çdo modul është i lidhur me Message Bus dhe mund të regjistrohet për ngjarje të veçanta, dhe mund të prodhojë çdo ngjarje (diagrami i parë).
Në diagramin e dytë ne mund të shohim rrjedhën e ngjarjes duke shtypur butonin.
Disa komponentë kanë disa detyra sesa duhet të ekzekutohen në mënyrë periodike. Ne mund t'i quajmë metodat e tyre përkatëse nga lak kryesor, pasi kemi Bus Bus është vetëm e nevojshme të përhapet ngjarja e duhur (diagrami i tretë)
Hapi 6: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Recommended:
Web? Arduino Simulator i bazuar në Wokwi-2020?: 5 hapa
Ueb? Bazuar në Arduino Simulator Nga Wokwi-2020 ?: Wokwi Arduino Simulator funksionon në platformën AVR8js. Isshtë një Simulator Arduino i bazuar në ueb. Arduino Simulator funksionon në shfletuesin e uebit. kështu, kjo po fiton më shumë vëmendje dhe sinqerisht, kjo ka shumë pika pozitive në krahasim me simuluesit e tjerë të disponueshëm
Telekomanda e bazuar në shfletuesin Arduino (linux): 9 hapa (me fotografi)
Telekomanda e bazuar në shfletuesin Arduino (linux): Ne kemi fëmijë. I dua shumë, por ata vazhdojnë të fshehin telekomandën për satelitin dhe televizorin kur vendosin kanalet e fëmijëve. Pasi kjo ndodhi në baza ditore për disa vjet, dhe pasi gruaja ime e dashur më lejoi të kem një
Telefoni i bazuar në Arduino (Prototip): 7 hapa
Telefoni i bazuar në Arduino (Prototip): Përshëndetje të gjithëve, Sot në këtë udhëzues do të shohim për telefonin me bazë arduino. Ky telefon është një prototip, ai është ende në zhvillim e sipër. Kodi burimor është burim i hapur çdokush mund ta modifikojë kodin. Karakteristikat në telefon: 1. Muzikë 2. Video 3.
Makina votuese biometrike e bazuar në gjurmët e gishtave duke përdorur Arduino: 4 hapa (me fotografi)
Makina e votimit biometrike e bazuar në gjurmët e gishtërinjve duke përdorur Arduino: Ne të gjithë jemi në dijeni të makinës elektronike ekzistuese të votimit, ku përdoruesi duhet të shtypë një buton për të votuar. Por këto makina janë kritikuar për kalitje që në fillim. Kështu që qeveria po planifikon të prezantojë një bazë të gjurmëve të gishtërinjve
Gjenerator muzikor i bazuar në mot (ESP8266 Bazuar në Midi Generator): 4 hapa (me fotografi)
Gjenerator muzikor i bazuar në mot (ESP8266 Bazuar në Midi Generator): Përshëndetje, sot unë do t'ju shpjegoj se si ta bëni vetë gjeneratorin tuaj të vogël të Muzikës me bazë moti. Bazohet në një ESP8266, i cili është si një Arduino, dhe i përgjigjet temperaturës, shiut dhe intensiteti i dritës. Mos prisni që ajo të bëjë këngë të tëra ose progord të akordit