Älä missään nimessä kopioi mitään mitä tulet lukemaan. Virityksessä käytetään 230V verkkojännitettä joka on vaarallista ja tappavaa.
Ihan oikeesti. ÄLÄ!
Suomen kylmät talvet, jopa Helsingin korkeudella pakkanen laskee välillä -25°C ja sen alapuolelle. Näissä lämpötiloissa autot tykkäävät esilämmityksestä. Jo +5°C lähtien. Esilämmitys vähentää polttoaineen kulutusta sekä moottorin kulumista. Lisäksi sisätilanlämmitin sulattaa ikkunat jäästä ja muutenkin mukavampi istua lämpimään autoon.
Tähän asti minulla ei ollut mitään kummempaa ajastinta tai muuta säätääkseeni lämmitysaikaa. Käytännössä keittiön nurkassa oli töpseli josta meni jatkojohto ulos autolle. Joskus kyseinen johto unohtuu laittaa seinään, tai jää seinään liian pitkäksi aikaa. Kumpikaan ei ole hyvä. Toinen tarkoittaa kylmällä moottorilla ajoa ja toinen ylimärääräistä sähkönkulutusta. Ylimääräinen moottorin lämmitys myös kuivattaa moottorin sisäpinnat öljystä, jolloin voitelu on alkuun todella heikkoa.
Totesin, että automaatio tähän olisi loistava. Käytän autoa suhteellisen satunnaisesti, joskus aamulla ja joskus illalla ei mekaaninen tai digitaalinen ajastin olisi toimiva ratkaisu. Lisäksi jotain minkä pystyy kytkemään päälle sängystä juuri herättyä olisi loistava. Päätin rakentaa oman ajastimen ESP8266-E12 moduulilla ja parilla releellä.
Sekava piirustus EAGLE:lla. Täytyy vähän vielä harjoitella siistien piirtämistä.
Ja PCB sekä komponenttien asettelu piirille.
Selvisin yhdellä hyppykaapelilla. Olisin saanut vedettyä tuon tracen myös releen jalkojen välistä, mutta halusin pitää sen mahdollisimman kaukana 230V traceista.
Kun PCB näytti hyvältä ja siistiltä ajoin sen pcb gcoden läpi saadakseni gcoden jyrsimelle ja tein siihen muokkaukset Cambamilla.
Jyrsintä 0.1mm 60asteen kaiverrusterällä.
Valmis piirilevy. Poistin kuparit verkkojännitteisten alueiden ympäriltä pitääkseni mahdolliset valokaaret poissa. Lisäksi releen tracejen ympärillä on suojavälit. Moduulin alle tuli pala Kapton teippiä suojaamaan sitä oikosuluilta kupariin. Alareunasta yksi trace meni vähän rikki koska levy ei ollut täysin suorassa alustalla. Korjasin sen palalla johtoa ja tinaa rikkinäisen kohdan päälle.
Moduuli paikallaan ja verkkojännitteiset tracet tinattuna virranjohdon parantamiseksi.
Kaikki komponentit laudalla ja juotettuna. Testin aika.
Ja se toimii. Releet naksahtaa päälle ja ledi syttyy. Sitten olikin aika koodata. Moduuliin olin flashannyt ESP8266BASIC firmwaren, joka omasta mielestäni on paras näiden moduulien ohjelmointiin. Jos et ole jo mokomaa kokeillut niin suosittelen sitä vakavasti. Kerran firmiksen flashattyä ei ole enään tarvettä kytkeä moduulia tietokoneeseen, vaan se ohjelmoidaan internetin yli. Tarvittaessa vaikka toiselta puolelta maapalloa! Puhelimella!
Softa moduulilta. Ei mitenkään optimoitu, saatika siisti koodi. Toimiva kuitenkin.
cls
state = Off
po 13, 0
po 14, 0
heatingTime = 0
heatingTimeMin = 0
humanTime = 0
interrupt 12, [phyButton]
timer 1000, [timerSec]
css ulkoasu.css
wprint |<meta name="viewport" content="width=device-width, initial-scale=1" />|
wprint |<meta http-equiv='refresh' content='5;URL=/input?'></head>|
wprint |<center><b>|
wprint "Heater: "
wprint htmlvar(state)
wprint "<br> Heating time left: "
wprint htmlvar(humanTime)
wprint "<br><br>"
button "On for 2H" [onTwoH]
wprint "<br><br>"
button "On for 1H 30min" [onOneHalf]
wprint "<br><br>"
button "On for 1H" [onOneH]
wprint "<br><br>"
button "On for 30min" [onHalf]
wprint "<br><br>"
button "Off" [turnOff]
wprint "<br><br>"
wait
[onTwoH]
heatingTime = 7200
goto [turnOn]
wait
[onOneHalf]
heatingTime = 5400
goto [turnOn]
wait
[onOneH]
heatingTime = 3600
goto [turnOn]
wait
[onHalf]
heatingTime = 1800
goto [turnOn]
wait
[turnOn]
po 13, 1
po 14, 1
state = On
wait
[turnOff]
po 13, 0
po 14, 0
state = Off
heatingTime = 0
interrupt 12, [phyButton]
wait
[phyButton]
interrupt 12
plusheatingTime = heatingTime + 1800
if plusheatingTime < 7200 then goto [addTime]
if plusheatingTime > 7200 then goto [turnOff]
wait
[addTime]
heatingTime = heatingTime + 1800
goto [blinkLed]
wait
[blinkLed]
blinkTimes = heatingTime / 1800
blinkTimes = left(blinkTimes,1)
for x = 1 to blinkTimes
po 14, 0
delay 100
po 14, 1
next x
interrupt 12, [phyButton]
goto [turnOn]
wait
[timerSec]
plusheatingTime = 0
heatingTime = heatingTime - 1
heatingTimeMin = heatingTime / 60
if heatingTime > 3600 then heatingTimeMin = heatingTimeMin - 60
let heatingTimeMin = left(heatingTimeMin,2)
let heatingTimeMin = replace(heatingTimeMin,".","")
if heatingTime > 3600 then humanTime = "1h "
if heatingTime > 3600 then humanTime = humanTime & heatingTimeMin
if heatingTime > 3600 then humanTime = humanTime & "min"
if heatingTimeMin <= 0 then heatingTimeMin = 0
if heatingTime < 3600 then humanTime = heatingTimeMin & "min"
if heatingTime <= 0 then goto [turnOff]
wait
Käyttöliittymässä on 5 nappia joista saa valittua ajan puolen tunnin välein 30min - 2h sekä painike lämmityksen katkaisuun. Pinniin 12 onkytketty fyysinen painonappi, josta kerran painamalla lämmitys kytkeytyy päälle 30 minuutiksi ja ledi syttyy. Toisella painalluksella tunniksi ja ledi välähtää kaksi kertaa jne. Viidennellä painalluksella lämmitys kytkeytyy pois päältä.
CSS-tiedosto ulkoasuun.
button, input[type="button"], input[type="submit"] {
background-color:#000000;
border:4px solid #000000;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:Arial;
font-size:20px;
text-decoration:none;
width:80%;
height:50px;
max-width:500px;
}
Tuottaa seuraavanlaisen näkymän:
Joke skaalautuu hienosti myös puhelimen ruudulle.
Kun elektroniikka ja koodi toimi, oli aika koteloida projeti. BILTEMA:sta löysin muovisen kytkentälaatikon hintaan 4.99€.
Perus tapa neliön reijän tekoon boksiin. Pora, pihdit ja viila.
Vähän putsausta ja töpseli sopii lootaan kuin valettu. On muuten myös BILTEMA:sta parilla eurolla.
Piirilevy sopii sisälle boksiin nätisti. Pohjassa oli vielä muutama korotettu muovikohta reijillä, joihin tuo piirilevy sopi kuin valettu.
Näkkäri painonapille ja ledille tulee kiinni kanteen parilla ruuvilla.
Ja sitten oli aika kytkeä kaikki yhteen. Painonappi ja ledi moduuliin. 230V kaapeli releisiin ja siitä töpseliin. Laatikon sisälle tuli vielä Nokian 5V laturi josta ESP moduuli saa virran. 3.3V Regun kautta tietenkin. Vähän testailua ja kaikki vaikuttaa toimivan. Valmiina käyttöön.
Tänään oli ensimmäinen kunnon testi. 2h lämmitystä ja ajastin toimi loistavasti. Jatkoa ajatellen ideana on lisätä tuohon vielä automaattiset ajastukset, sekä OLED näyttö etupaneeliin kertomaan tarkempia tietoja esim jäljellä olevan lämmitysajan.
Tänään oli ensimmäinen kunnon testi. 2h lämmitystä ja ajastin toimi loistavasti. Jatkoa ajatellen ideana on lisätä tuohon vielä automaattiset ajastukset, sekä OLED näyttö etupaneeliin kertomaan tarkempia tietoja esim jäljellä olevan lämmitysajan.
- Jokke
No comments:
Post a Comment