Bygg en temperatur og / eller fuktighetsstyrt vifte med en Picaxe 08M2 Microcontroller

SCP-110 Subterranean City | euclid | Subterranean / temporal scp (Juni 2019).

$config[ads_text] not found
Anonim

Bygg en temperatur og / eller fuktighetsstyrt vifte med en Picaxe 08M2 Microcontroller


En Picaxe 08M2 mikrokontroller og et HIH6030 sensorgruppe opp til enkelt å styre en ventilasjonsvifte med temperatur eller fuktighet eller begge deler.

Vi bruker en ventilasjonsvifte når vi ønsker å flytte luft. Noen ganger vil vi flytte luft til avtrekk (for eksempel en kjøkkenvifte som fjerner matlagings lukt unna) eller for å få inn kjøligere luft (for eksempel en PC-vifte for å redusere interne komponenttemperaturer) eller for å flytte fuktig luft unna (for eksempel en badvifte) .

Fans kan styres manuelt med en enkel på / av bryter, og vi kan også automatisere bruken av dem. I dette prosjektet bygger vi en automatisert vifte som styres av en brukertemperaturinnstilling, en fuktighetsinnstilling for brukeren eller begge deler.

Koblingsskjema

For å bygge prosjektet konstruerer vi en krets som bruker en Picaxe 08M2 mikrokontroller for å lese en Honeywell HIH6030 temperatur- og fuktighetssensor. Basert på en sammenligning mellom de brukerdefinerte verdiene som er programmert i Picaxes ikke-flyktige minne og verdiene som leses fra sensoren, blir det besluttet å slå viften på eller av.

Hvis det oppstår en sensorfeil, slår viften av og det lyder en alarm. Kredsløpet overvåker også viftehastigheten, og hvis den ikke beveger seg når den skal være, eller hvis den beveger seg når den ikke skal være, vil det høres en alarm.

Den komplette kretsen for prosjektet er vist i skjematisk under.

Skjematisk for prosjektet. Klikk for å forstørre.

Prosjekt BOM

Komponent Beskrivelse Kilde / pris
M1 (fan)Thermaltake Pure 20Newegg $ 19, 95
U178L05 5 volt regulator (100 mA)Digi-Key $ 0.38
U2Picaxe 08M2 mikrokontrollerRobotShop $ 2, 89
U3HIH6030-021-001 hum / tem sensorDigi-Key $ 8.61
Q1IRL540 MOSFET N-CH TO-220ABDigi-Key $ 1, 87
SG1Piezoelektrisk summer 5 voltBanggood ~ $ 0.55
C1-1, 0 μF polarisert kondensator*
C2, C3, C50, 1 μF ikke-polarisert kondensator*
C40, 22 μF ikke-polarisert kondensator*
D11N4001 diode*
D21N914 diode*
R110 kΩ motstand*
R233 kΩ motstand*
R34, 7 kΩ motstand*
R4, R52, 2 kΩ motstand*
R6150 Ω motstand*

* Merk: Kilder og priser på vanlige komponenter (kondensatorer, dioder, motstander) varierer.

maskinvare

Picaxe 08M2 mikrokontroller (venstre) og HIH6030 sensor på et bærebrett (til høyre).

mikrokontroller

"Hjernen" for prosjektet er en Picaxe 08M2 mikrokontroller programmert ved hjelp av Picaxe BASIC-språket. Den 8-pin-enheten har 2048 byte programhukommelse (opptil 1800 programlinjer), 128 byte RAM og seks portstifter (C.0 til C.4 er I / O, C.5 er kun inngang).

For prosjektet er portnålene dedikert til følgende funksjoner (detaljer følger):

  • C.0 - Fungerer en piezoelektrisk summer for å gi en alarm.
  • C.1 - I 2 C, SCL.
  • C.2 - I 2 C, SDA.
  • C.3 - Leser viftehastighetssignal.
  • C.4 - Slår vifte på / av ved hjelp av MOSFET (Q1) bryteren.
  • C.5 - Ikke brukt (bundet til jord gjennom R3).

Fuktighet og temperaturføler

Prosjektet bruker en Honeywell HIH6030 til å overvåke temperatur og relativ fuktighet. Brikken har et spenningsområde på 1, 8 V-5, 5 V og bruker et I 2 C-grensesnitt for å kommunisere med en mikrokontroller. R4 og R5 er de anbefalte pullup motstandene. Kondensatorer C4 og C5 følger også verdiene anbefalt av Honeywell.

Enheten kommer i en overflatemonteringspakke (SOIC-8), og for prosjektet er det løst på et bæreplate som gjør det brukbart som en DIP-8-pakke.

Strømforsyning for prosjektet

Strømforsyning

En regulert 12V strømforsyning (modell F1650) som tidligere fungerte som strømforsyning for en bærbar PC, brukes til prosjektet. Enheten er smeltet og er vurdert til å gi 12V på opptil 3, 5A - rikelig med strøm til denne applikasjonen. Denne modellen er fortsatt tilgjengelig (for eksempel på eBay) og kan også fås på det brukte overskuddsmarkedet. Selvfølgelig er ikke alle modellens F1650-strømforsyninger nødvendigvis ekvivalente, og du bør sjekke utdataene for hvilken strømforsyning du bruker.

12V-forsyningen brukes til å betjene viften og gir også 5V effekt. For å implementere 5V forsyningen brukte jeg den ærverdige 78L05 (U1) 5V regulatoren sammen med kondensatorer C1 og C2. 5V-forsyningen styrer Picaxe-kontrolleren (U2), HIH6030-sensoren (U3) og den piezoelektriske summeren (SG1).

Fan

Jeg brukte denne viften fra Thermaltake. 200 × 200 × 30 mm fanens spesifikasjoner inkluderer 12V drift og ~ 130 CFM. D1 er en "flyback" -diode som brukes til å undertrykke spenningspikene som forekommer over den induktive lasten som presenteres av M1, vifteens motor.

Viftehastighetsmåler

Viften som brukes har tre tilkoblinger på kabelen: Vcc (+ 12V), bakken og turtalleren. På enheten jeg brukte ble ledningene fargekodet som henholdsvis rød, svart og gul. Turtallsignalet kommer fra en Hall-effektføler intern til viften. I tillegg er det to magneter intern til viften. Turtallssignalet er normalt på 12V. Når en magnet passerer Hall-effektføleren, skifter signalet til bakken. Den er konfigurert som en åpen kollektorutgang med en pullup-motstand til 12V intern til viften.

Vi vil at 08M2-inngangsporten C.3 skal lese taktsignalet, men ved 5V, ikke 12V. For å oppnå dette bruker vi R3 opp til 5V og diode D2 for å hindre at 12V når 08M2 mens du opprettholder pulser som korrelerer med viftehastigheten til viften. Merk også at fordi det er to magneter, er det to pulser per revolusjon.

Ikke alle fans med et "tredje tråd" tachometersignal fungerer det samme. Jeg har sett dem der det ikke var noen intern pullup motstand, og jeg har selv sett dem der det ikke var noen intern tilkobling i det hele tatt! Det er en god ide å teste funksjonaliteten til tachometersignalet før du bruker det i prosjektet.

Piezoelektrisk summer (venstre) og IRL540 MOSFET (høyre)

Vifteregulatorbryter

Viften drives av en 08M2 utgangsbit (C.4) koblet til porten til Q1, en IRL540 N-kanal strøm MOSFET. Q1 brukes i en "lav side" førerkonfigurasjon slik at den vil senke vifterens strøm når spenningen til porten, i forhold til kildepinnen, som er i bakken, økes med bare noen få volt.

IRL540 er velegnet for applikasjonen fordi når porten er nær + 5V (i forhold til kilden), er enhetens motstand vurdert til bare 0, 077Ω, og den kan synke en mye større mengde strøm enn den nominelle 0.23A av viften. Når Picaxe-utgangsspenningen er satt til et høyt nivå (~ 5V), blir viften slått på og når utgangsstiftet er på et lavt nivå (<0, 6V), er viften slått av.

R1 brukes til å trekke ned spenningen ved porten til Q1 når Picaxe-utgangen er i høy impedanstilstand, for eksempel under oppstart.

Piezoelektrisk Buzzer

SG1 er en generisk 5V summer. Jeg målte strømmen trukket av enheten ved 5V som 24mA. Siden mengden er nær Picaxe-portens maksimale utgangsstrøm, brukes strømbegrensende motstand R6. SG1 er koblet til Picaxe-utgang C.0 og fungerer som en varslings- / alarmsignal. Selv med R6 er det passende høyt.

Prosjektkretsen på et brettbrett: 12V komponenter (venstre) og 5V komponenter (høyre).

firmware

Før du presenterer programkoden, må noen forklaring på de grunnleggende oppgaver som programvaren må utføre, være i orden.

Lese fuktighet og temperaturverdier

For å forstå hvordan du bruker HIH6030-sensoren, er det tilrådelig å bli kjent med et teknisk notat fra Honeywell som beskriver I 2 C-kommunikasjon med sensoren (PDF her).

Standard I 2 C-adressen til sensoren er 0x27, og Picaxe BASIC ønsker 8-biters venstreforskjellverdien på 0x4E. Når enheten strømmer opp, vil den akseptere en databyte på 0xA0 for å sette den inn i "kommandomodus", hvis en mottas innen 10 millisekunder. Kommandomodus kan brukes til å stille inn alarmer, lese EEPROM og til og med konfigurere standard I 2 C-adressen. Det er et Honeywell teknisk notat på kommandomodus hvis du vil vite mer (PDF her). Vi bruker imidlertid ikke kommandomodus for prosjektet og utfører eksplisitt en programvareforsinkelse ved oppstart for å forhindre muligheten for å gå inn i kommandomodus.

Vi kan lese sensorens temperatur og relativ fuktighetsverdier ved først å sende enheten en måleanmodning. For å gjøre dette, utsteder vi bare en skriv til slaveadressen. Sensoren reagerer med en bekreftelse (ACK), og Master-enheten genererer deretter en "STOP" -tilstand. For Picaxe BASIC må vi sende en data byte sammen med den opprinnelige skrivekommandoen for å fullføre transaksjonen. Dermed sender vi en "dummy" data byte av 0xFF, som alltid ignoreres av sensoren.

Etter å ha utstedt en måleforespørsel og ventet en kort stund (~ 37 millisekunder) for målingene å fullføre, kan vi lese sensorens verdier ved å hente fire bytes data som illustrert nedenfor.

Datastrøm leses fra HIH6030 sensoren (figur med Honeywell). Klikk for å forstørre .

Datastrømmen inneholder status, fuktighet og temperaturverdier. Statusverdier kan være 0b00 = normal, 0b01 = foreldet data, 0b10 = i kommandomodus og 0b11 = ikke definert. Se teknisk notat for en fullstendig forklaring på statuskoder. I vårt prosjekt må statusverdien være 0b00 som indikerer en normal transaksjon. Enhver annen mottatt statusverdi indikerer en sensor eller overføringsfeil og vil resultere i en alarm som høres i en uendelig sløyfe.

Picaxen vil lese de fire verdiene og lagre 14-biters fuktighetsverdien (etter maskering av statusbittene) i en variabel og 14-biters temperaturverdien (etter at verdien er fordelt med 4 for å skifte bitene rett to steder) til en annen variabel .

Disse fuktighets- og temperaturverdiene vil bli sammenlignet med de høye og lave fuktighets- og temperaturverdiene som brukeren har satt inn i programmet for å avgjøre om viften skal slås av eller på. Mens det er de råverdiene som programmet bruker, er det nødvendig å forstå forholdet mellom de råverdiene og RH-prosentene og grader (C) de representerer.

Dette forholdet for prosent relativ luftfuktighet er gitt ved formelen under, hvor "Humcount" er den 14-bits rå fuktighetsverdien.

For temperatur er forholdet gitt ved formelen under, hvor "Temcount" er 14-biters rå temperaturverdi.

Konfigurere fanens På og Av-terskler

For både fuktighet og temperatur bruker programmet en "på" terskel og en "off" terskel. Hvis sensorverdien er lik eller overstiger "on" -verdien, vil viften slå på. Hvis viften er på og verdien dråper til "av" -verdien, vil viften bli slått av. Ved å skille terskelverdiene, forhindrer vi at viften raskt svinger rundt en verdi. Dette kalles hysterese.

For å sette terskelverdiene i programmet konverterer vi RH-prosent og grader (C) til råverdier som programmet bruker i variablene HumH (høy fuktighetsgrense), HumL (terskel med lav fuktighet), TemH (høytemperaturgrense) og TemL (lavtemperaturgrense).

For fuktighet: rå verdi = RH (%) / 0.0061.To du vil sette høyt RH-grenseverdien til 82% RH og den lave grensen til 74% RH:

  • 82 / 0, 0061 = 13442, 62, satt HumH = 13443
  • 74 / 0, 0061 = 12131, 15, sett HumL = 12131

For temperatur: rå verdi = (grader (C) + 40) /0, 01007. Således, hvis du vil sette høytemperaturgrensen til 29 grader (C) og den lave terskelen til 27, 5 grader (C):

  • (29 + 40) /0, 01007 = 6852, 04, sett TemH = 6852
  • (27, 5 + 40) / 0, 01007 = 6703, 08, satt TemL = 6703

Ventilasjonsmodus

Driftsmodusen til viften er satt i fastvare av brukeren som angir symbolet UMODE, som setter verdien av programvariabelen, MODE, i Picaxe-koden. Bare verdier på 1, 2 eller 3 er funksjonelle. Viften vil ikke fungere med andre verdier.

  • Når MODE er satt til 1, vil viften fungere basert på sensortemperaturverdien. Når temperaturen, i sensorteller, er lik eller er større enn verdien som er angitt i variabelen "TemH", vil viften bli slått på. Når temperaturen, i sensorteller, er lik eller er lavere enn verdien som er angitt i variabelen "TemL", vil viften bli slått av.
  • Når MODE er satt til 2, vil viften fungere basert på sensorens RH-verdi. Når RH, i sensor teller, er lik eller er større enn verdien som er angitt i variabelen "HumH", vil viften bli slått på. Når RH, i sensor teller, er lik eller er lavere enn verdien som er angitt i variabelen "HumL", vil viften bli slått av.
  • Når MODE er satt til 3, brukes sensorverdier for både temperatur og fuktighet for å kontrollere viften. Det vil si at når temperatur- eller fuktighetsmålinger er på eller overskrider de øvre grensene (TemH eller HumH), slås viften på. Beslutningen om å slå viften av i modus 3 er mer komplisert og er detaljert nedenfor.

For modus 3, hvis viften er slått på som følge av at temperaturen bare stiger til den øvre grensen, da når temperaturen senker til den nedre grensen, slår viften av. På samme måte, hvis viften slår på som følge av at fuktigheten når den øvre grensen, da når luftfuktigheten senker til den nedre grensen, blir viften slått av. Prosedyrene er som de i henholdsvis modus 1 og 2.

Når temperaturen og fuktigheten har steget til eller utenfor deres respektive øvre grenser, slår vi imidlertid av viften bare hvis begge nedre grenser er oppfylt. For å oppnå dette, sporer vi de to måtene uavhengig. Det vil si at vi sporer egenskapene (temperatur og fuktighet) som førte til at viften slått på ved hjelp av biter i programvariabelen FMODE.

For eksempel, hvis temperaturen stiger til den øvre grensen, er FMODE bit 0 satt og viften slått på. Hvis fuktigheten senere stiger til den øvre grensen, er FMODE bit 1 satt (viften er allerede på). Anta nå at temperaturen, men ikke fuktighet, faller til den nedre grensen. I dette tilfellet fjerner vi FMODE bit 0, men viften forblir på fordi FMODE bit 1 fortsatt er innstilt. Når fuktigheten faller til den nedre grensen, fjerner vi FMODE bit 1. Nå er viften slått av fordi begge bitene 0 og 1 i FMODE blir ryddet.

Kontrollerer omdreiningstallet til viften

Viftehastigheten for enheten som jeg brukte er angitt som 800 omdr./min. I spesifikasjonene. Jeg målte viften RPM for min enhet, ved hjelp av to forskjellige frekvens tellere, og resultatet var om lag 900 RPM. Som nevnt i fandokumentasjonen, "Spesifikasjoner kan endres uten varsel". Jeg tror at dette er et slikt tilfelle.

For å måle RPM i prosjektkoden brukte jeg Picaxe BASIC "count" -kommandoen. Kommandoen teller antall lave til høye overganger på en Picaxe-inngangsportbit (prosjektskjemaet bruker portbit C.3). I en 5-sekunders periode var tallet på 151 ± noen få teller. Det kommer ut til 30, 2 pulser per sekund eller 1812 pulser per minutt (ved 4MHz, hastigheten på 08M2). Viften har to magneter som passerer Hall-effektføleren, så vi må dele antall pulser med 2 for å få RPM. Å gjøre det gir en verdi på 906 RPM, som er akseptabelt nær mine andre mål som angir et RPM på ~ 900.

Programmet bruker denne funksjonen til å oppdage om viften faktisk snu når den er slått på. Det vil si at programmet prøver fanens RPM og sammenligner nummeret til en programmert minimumsverdi som er angitt i fastvare ved hjelp av variabelen mRPM. Standard for mRPM er 100, men verdien kan endres av brukeren. Så hvis RPM er mindre enn mRPM etter at viften er slått på, antar vi en fanfeil.

Vi bruker også denne funksjonen til å oppdage om viften snu når den er slått av. Det vil si at hvis RPM er større enn mRPM etter at viften er slått av, antar vi en fanfeil.

Viften har ingen brems; Når det er slått av, vil RPM-verdiene avta i løpet av noen få sekunder før det kommer til en verdi på 0. I tillegg er det nødvendig med litt tid før RPM når den normale toppverdien når den først slås på. Vi har en 5-sekunders forsinkelse i programvare før vi måler RPM i ytterligere 5 sekunder. Dermed kan vi overse oppstart og nedstengt RPM-verdier, mens du kontrollerer temperatur og fuktighet hvert 10. sekund.

Kode

Koden for prosjektet er gitt nedenfor, og filen kan lastes ned på slutten av artikkelen.

 001 ; AxeFan.bas-PICAXE code to accompany the article - 002 ; "Build a temperature and/or humidity controlled fan" 003 ; 004 ; *** This software is offered stricly as-is with no warranties 005 ; whatsoever. Use it at your own risk. *** 006 init: 007 ;-------------------------------- 008 ; User sets the following turn on and turn off values for temperature 009 ; and humidity as 16 bit sensor counts in decimal 010 SYMBOL TemH=6852 ;29 degrees (C) 011 SYMBOL TemL=6703 ;27.5 degrees (C) 012 SYMBOL HumH=13443 ;82 % RH 013 SYMBOL HumL=12131 ;74 % RH 014 SYMBOL mRPM=100 ;151=~900 RPM full on 015 ; User sets the mode to 1=temperature only, 2=humidity only, 3=both 016 SYMBOL UMode=3 017 ;-------------------------------- 018 ; The SYMBOLS below are for program variable use 019 SYMBOL HUM=W0 ; 16 bit humidity 020 SYMBOL TEMP=W1 ; 16 bit temperature 021 SYMBOL status=B4 ; HIH status (must be 0) 022 SYMBOL Fstatus=B5 ; fan bit status (0=off, 1=on) 023 SYMBOL MODE=B6 ; fan mode 024 SYMBOL FMODE=B7 ; to track which (T or H) or both turned the Fan on 025 ; FMODE bit 0=T and bit 1=H 026 SYMBOL RPM=W4 ; to measure Fan RPM 027 ; Note: Fan=4=MOSFET G on C.4 028 SYMBOL Fan=4; 029 ; Note: Buzzer=0=piezo on C.0 030 SYMBOL Buzzer=0; 031 ; Note: RPMin=3=Fan tach on C.3 032 SYMBOL RPMin=3 033 ;-------------------------------- 034 let MODE=UMode 035 ; get fan bit status, Fstatus=1 if fan GPIO is on 036 Fstatus=pinc.4 037 gosub FanOff ; should boot up off but switch it to be sure 038 let Fstatus=0 039 ; I2C address is $27 shifted=$4e 040 hi2csetup I2CMASTER, $4E, i2cslow, i2cbyte 041 let B5=$ff ; dummy arg 042 pause 30 ; wait past command window 043 gosub PU_tone 044 ;-------------------------------- 045 ; main loop 046 main: ;get temperature and humidity 047 hi2cout (B5) ; wake up kick to start measurement cycle 048 pause 60 ; wait for measurement cycle (nominally 36.65 ms) 049 hi2cin (B1) ; Hum hi 050 hi2cin (B0) ; Hum low 051 hi2cin (B3) ; Tem hi 052 hi2cin (B2) ; Tem lo 053 let status=B1 & %11000000 ; get status bits 054 let B1=B1 & %00111111 ; mask status 055 let W1=W1/4 ; shift temperature 056 ; if status is not 0, we have a read error indicating either a 057 ; transmission error or a sensor error. 058 ; ** This results in an error trap. ** 059 if status0 then 060 goto TerrorS 061 endif 062 ; handle fan on/off depending on the operating mode 063 MODE1: 064 ; mode 1 is temperature only 065 if MODE = 1 then 066 if TEMP >=TemH then 067 gosub FanOn 068 endif 069 if TEMP =HumH then 077 gosub FanOn 078 endif 079 if HUM=TemH then 089 FMODE=FMODE|1 ;set b0 090 gosub FanON 091 endif 092 if HUM >=Humh then 093 FMODE=FMODE|2 ;set b1 094 gosub FanOn 095 endif 096 elseif Fstatus=1 then 097 ;else 098 ; if fan is on should we turn it off? 099 if TEMP <=TemL then 100 FMODE=FMODE&2 ;reset b0 101 endif 102 if HUM <=HumL then 103 FMODE=FMODE&1 ;reset b1 104 endif 105 if FMODE=0 then 106 gosub FanOff 107 endif 108 endif 109 endif 110 111 next1: 112 ; get fan bit status, Fstatus=1 if fan GPIO is on 113 Fstatus=pinc.4 114 ; delay for 10 seconds before looping 115 pause 5000; 116 ; check fan RPM as part of the 10 sec delay 117 count RPMin, 5000, RPM 118 if Fstatus=1 then 119 if RPM = mRPM then 125 goto TerrorF ; fan error - RPM too high! 126 endif 127 endif 128 goto main 129 ;-------------------------------- 130 ; Error Traps (infinite loops) 131 ; sensor or transmission error - give continuous fast beeps 132 TerrorS: 133 switchon Buzzer 134 pause 35 135 switchoff Buzzer 136 pause 100 137 goto TerrorS 138 ; Fan RPM eror - give continuous slow beeps 139 TerrorF: 140 switchon Buzzer 141 pause 75 142 switchoff Buzzer 143 pause 300 144 goto TerrorF 145 ;-------------------------------- 146 ; subroutines 147 FanOn: 148 if pinc.4=0 then switchon Fan endif 149 return 150 FanOff: 151 if pinc.4=1 then switchoff Fan endif 152 return 153 PU_tone: 154 ; power up - three beeps 155 switchon Buzzer 156 pause 100 157 switchoff Buzzer 158 pause 100 159 switchon Buzzer 160 pause 100 161 switchoff Buzzer 162 pause 100 163 switchon Buzzer 164 pause 100 165 switchoff Buzzer 166 return 

Programstrukturkommentarer

Linjer 8-16: Brukerdefinerte verdier for symboler for å angi programvariabler som styrer viften.

  • TemH, TemL, HumH, HumL er de høye og lave rådataverdiene for å kontrollere vifte på / av settpunkter.
  • mRPM er RPM-verdien som brukes til å bestemme om viften slår seg når den er på og ikke snu når den er av.
  • UMODE setter driftsmodus for viften (1 = kun temperatur, 2 = kun fuktighet, 3 = begge).

Linjer 17-32: Symboldefinisjoner for programvariabler.

Linjer 33-43: Initialisering.

  • Initialisering av I 2 C-grensesnittet.
  • Problemer med starttone (tre pip).

Linjer 44-128: Hovedløkke.

  • Linjer 47-61: Les HIH3060 sensor; evaluere statusbiter og lagre fuktighet og temperatur rå data verdier.
  • Linjer 62-111: Bestem om å slå viften av eller på for gjeldende driftsmodus.
  • Linjer 116-127: Sjekk etter akseptabel viftehastighet avhengig av på / av-status.

Linjer 129-144: Feilalarmfeller (uendelige sløyfer).

  • Linjer 132-137: Feilalarm (raske pip) hvis statusbyte ikke er lik 0 (overføring eller sensorfeil).
  • Linjer 139-144: Feilalarm (treg pip) hvis RPM er under mRPM når viften er på eller over RPM når viften er slått av.

Linjer 145-166: Utility subrutiner.

Avsluttende tanker

Dette prosjektet gir et økonomisk og relativt enkelt eksempel på å automatisere kontrollen av en fan. Implementeringen kan oppnås med bare noen få IC'er, hovedsakelig fordi sensoren og mikrokontrolleren er høyt integrerte enheter. Systemet er fleksibelt fordi det kan konfigureres til å bli styrt av temperatur eller fuktighet eller kombinasjonen av både temperatur og fuktighet. I tillegg kan brukeren enkelt konfigurere egenskapene til kontrollparametrene, endre dem for å passe til en rekke applikasjoner.

Kildekoden for prosjektet kan lastes ned ved å klikke på linken nedenfor:

AxeFan Kildekode

Gi dette prosjektet et forsøk for deg selv! Få BOM.