Sadržaj:
- Korak 1: Konfiguracija
- Korak 2: Konfiguriranje releja
- Korak 3: Regulator histereze
- Korak 4: PID kontroler
- Korak 5: Sabirnica poruka
- Korak 6: Usi
Video: Termostat temeljen na Arduinu: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Ovaj put ćemo izgraditi termostat temeljen na Arduinu, senzoru temperature i releju. Možete pronaći na githubu
Korak 1: Konfiguracija
Cijela konfiguracija spremljena je u Config.h. Možete promijeniti PIN -ove koji kontroliraju releje, temperaturu očitanja, pragove ili vrijeme.
Korak 2: Konfiguriranje releja
Pretpostavimo da bismo željeli imati 3 releja:
- ID: 0, PIN: 1, zadana temperatura: 20
- ID: 1, PIN: 10, zadana temperatura: 30
- ID: 2, PIN: 11, zadana temperatura: 40
Prvo se morate uvjeriti da PIN po vašem izboru već nije zauzet. Sve pinove možete pronaći u Config.h, definirani su varijablama koje počinju s DIG_PIN.
Morate urediti Config.h i konfigurirati PIN -ove, pragove i količinu releja. Očito neka svojstva već postoje, pa ih morate samo urediti.
const static uint8_t DIG_PIN_RELAY_0 = 1; const static uint8_t DIG_PIN_RELAY_1 = 10; const static uint8_t DIG_PIN_RELAY_2 = 11;
const static 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;
Sada moramo postaviti releje i kontroler, to se događa u 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
Korak 3: Regulator histereze
To je onaj odabran u gornjem primjeru, ima nekoliko dodatnih konfiguracija:
const static uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 minutakonst. Statički uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS daje vrijeme čekanja za prebacivanje sljedećeg releja. Zamislite da bi konfiguracija iz našeg primjera počela raditi u okruženju od 40 stupnjeva. To bi rezultiralo uključivanjem sva tri releja u isto vrijeme. To bi na kraju moglo dovesti do velike potrošnje energije - ovisno o tome što kontrolirate, na primjer, električni motor troši više energije tijekom pokretanja. U našem slučaju sklopni releji imaju sljedeći tok: prvi relej ide, pričekajte 5 minuta, drugi se uključuje, pričekajte 5 minuta, treći se uključuje.
RHC_RELAY_MIN_SWITCH_MS definira histerezu, to je minimalna frekvencija za promjenu stanja releja. Kad se uključi, ostat će uključena barem još neko vrijeme, zanemarujući promjene temperature. Ovo je tiho, korisno ako upravljate elektromotorima, jer svaki prekidač negativno utječe na vrijeme rada.
Korak 4: PID kontroler
Ovo je napredna tema. Implementacija takvog regulatora jednostavan je zadatak, a pronalaženje ispravnih postavki amplitude je druga priča.
Da biste koristili PID kontroler, morate promijeniti initRelayHysteresisController (…..) u initRelayPiDController (….) I morate pronaći odgovarajuće postavke za njega. Kao i obično, pronaći ćete ih u Config.h
Implementirao sam jednostavan simulator u Javi, tako da je moguće vizualizirati rezultate. Može se pronaći u mapi: pidsimulator. Ispod možete vidjeti simulacije za dva kontrolera PID a P. PID nije savršeno stabilan jer nisam primijenio nikakav sofisticirani algoritam za pronalaženje pravih vrijednosti.
Na obje parcele potrebna temperatura je postavljena na 30 (plavo). Trenutna temperatura označava liniju za čitanje. Relej ima dva stanja ON i OFF. Kada je omogućeno, temperatura pada za 1,5, a kad je onemogućeno, raste za 0,5.
Korak 5: Sabirnica poruka
Različiti softverski moduli moraju međusobno komunicirati, nadam se ne obostrano;)
Na primjer:
- modul statistike mora znati kada se određeni relej uključuje i isključuje,
- pritiskom na gumb mora se promijeniti sadržaj prikaza, a također se moraju obustaviti usluge koje bi trošile mnoge cikluse procesora, na primjer očitanje temperature sa senzora,
- nakon nekog vremena očitavanje temperature treba obnoviti,
- i tako dalje….
Svaki je modul spojen na sabirnicu poruka i može se registrirati za određene događaje te može proizvesti bilo koje događaje (prvi dijagram).
Na drugom dijagramu možemo vidjeti tok događaja pritiskom na tipku.
Neke komponente imaju neke zadatke koje je potrebno povremeno izvršavati. Njihove odgovarajuće metode mogli bismo nazvati iz glavne petlje, budući da imamo sabirnicu poruka, potrebno je samo propagirati desni događaj (treći dijagram)
Korak 6: Usi
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
Preporučeni:
Telefon temeljen na Arduinu (prototip): 7 koraka
Arduino bazirani telefon (prototip): Pozdrav svima, Danas ćemo u ovom uputstvu vidjeti o telefonu zasnovanom na arduinu. Ovaj telefon je prototip koji se još uvijek razvija. Izvorni kôd je otvorenog izvora, svatko može promijeniti kôd. Značajke u telefonu: 1. Glazba 2. Videozapisi 3
IOT relejni prekidač s glasovnim upravljanjem temeljen na Arduinu (Google Home i Alexa podržani): 11 koraka
IOT relejni prekidač s glasovnim upravljanjem temeljen na Arduinu (Google Home i Alexa podržani): Ovaj projekt opisuje kako napraviti relejni prekidač baziran na Arduinu, glasovnim upravljanjem. Ovo je relej koji možete daljinski uključiti i isključiti pomoću aplikacije za iOS i Android, kao i povezati ga s IFTTT -om i upravljati glasom pomoću Googa
Automatski IR daljinski upravljač temeljen na Arduinu: 7 koraka
Automatski IR daljinski upravljač temeljen na Arduinu, temeljen na temperaturi: Hej, što ima, dečki! Akarsh ovdje iz CETech -a. Umorni ste od buđenja usred zdravog sna samo zato što vam je sobna temperatura preniska ili previsoka zbog vašeg glupog klima -uređaja. Onda je ovaj projekt za vas. U ovom ćemo projektu napraviti naš
Osobni asistent temeljen na Arduinu. (BHAI): 4 koraka
Osobni asistent temeljen na Arduinu. (BHAI): Uvod: Napravljeno u suradnji s Kundan Singh ThakurOvo je moje prvo uputstvo pa vas molim da se upustite u sve greške koje sam možda napravio. Također ostavite komentare u slučaju bilo kakvih nedoumica ili problema. Osobni pomoćnik zasnovan na arduinu sličan je vašem djevu
Glazbeni generator temeljen na vremenu (Midi generator temeljen na ESP8266): 4 koraka (sa slikama)
Glazbeni generator temeljen na vremenu (Midi Generator temeljen na ESP8266): Bok, danas ću vam objasniti kako napraviti vlastiti mali glazbeni generator temeljen na vremenu. Baziran je na ESP8266, koji je poput Arduina, a reagira na temperaturu, kišu i intenzitet svjetla. Ne očekujte da će to učiniti cijele pjesme ili akorde