Personal tools

AVR kamerthermostaat

From Frack - Hackerspace Friesland

Jump to: navigation, search
Project: AVR Kamerthermostaat
AVR kamerthermostaat.png
Status lopend
Betrokkenen
Gebruiker Iisschots.jpg iisschots
Gebruiker Iisschots.jpgLouwerens Jan (iisschots) Rol: deelnemer Werkt aan: AVR kamerthermostaat, Voedselbank
,
Gebruiker CrazyA.jpg CrazyA
Gebruiker CrazyA.jpgCrazyA Rol: penningmeester Deskundig met: AVR, Arduino, Blender, Elektronica, LPD8806, POV-Ray, RaspberryPi Werkt aan: AVR kamerthermostaat
,
Afbeelding Anoniem.png martijn
Martijn (martijn) Rol: alg. bestuurslid Deskundig met: Elektronica, Software, Solderen, Stappenmotor Werkt aan: AVR kamerthermostaat, Frackademy, Home Easy, Media PC, SMD Oven, Samenkopen, Stadsverwarming, Stencil Printer
Kennisgebied(en) AVR
ProjectoverzichtProject toevoegen

Een netwerk/web bestuurde kamerthermostaat op basis van een AVR microcontroller. Niet noodzakelijkerwijs met 1 definitief resultaat, maar in ieder geval een samenwerking met overlap op technisch- en/of functioneel vlak.

Het doel van dit projectje is om zelf, op basis van een AVR 8-bits microcontroller een via internet programmeerbare kamerthermostaat te maken. De webinterface zal draaien op een PC die serieel verbonden is met de microcontroller. Normaal zal de thermostaat z'n gewone programma afwerken. Via de web- en/of pc-interface is het mogelijk dit programma aan te passen of te overrulen (permanent of gedurende een opgegeven periode).

Onderdelen

Blokschema
  • Controller: Atmel AVR ATmega8
  • Realtime Clock: DS1307 over I²C
  • Sensoren: DS18B20 over 1wire
  • LCD: HD44780 compatible 16x2 of 20x2 (4 bits mode)
  • Kristal: 32.768 kHz voor RTC
  • Communicatie: USB-SerialTTL (bijvoorbeeld CP2102)
  • Relais: Klein relais, type nog niet bekend
  • Overig: (RGB) led, 4 knopjes

Prototype v1

Prototype v1
Eerste prototype met python webinterface draaide bij
Gebruiker CrazyA.jpg CrazyA
Gebruiker CrazyA.jpgCrazyA Rol: penningmeester Deskundig met: AVR, Arduino, Blender, Elektronica, LPD8806, POV-Ray, RaspberryPi Werkt aan: AVR kamerthermostaat
. Het resultaat is een slechte regeling door de traagheid van het systeem. Er zal dus een veel slimmere regeling verzonnen moeten worden. Atmel heeft een app note over een discrete PID-regeling, wellicht is dat 'the way to go'. Maar met wat krappere hysterese en verplichte 'pauzes' in het stoken kunnen we misschien wat smokkelen. Wellicht dat het kleinere systeem bij
Gebruiker Iisschots.jpg Iisschots
Gebruiker Iisschots.jpgLouwerens Jan (Iisschots) Rol: deelnemer Werkt aan: AVR kamerthermostaat, Voedselbank
al minder problemen geeft, dit moet prototype 2 gaan aantonen.

Eerste prototype:

  • Breadboard
  • ATmega8 (op interne oscillator)
  • CP2102 USB-SerialTTL converter
  • 5V relais
  • DS1307 (met kristal)
  • 2x DS18B20

Prototype v2

Nu de dagen weer een stuk frisser worden (halverwege oktober 2012) is het weer tijd om verder te gaan met de AVRcv. Het eerste prototype op het breadboard neemt veel ruimte in beslag en is wat "wiebelig". Slecht contact op de 1wire-bus heeft een database opgeleverd waar soms hele stukken 85 graden in staat (default waarde DS18B20). Bovendien is de code ook niet erg leesbaar meer door een enorme verzameling van bij elkaar geraapte snippets.

Er zal een nieuw printje gemaakt worden met een wat vastere opstelling. Op het printje komt in ieder geval:

  • ATmega8 in een ic-voetje
  • RTC met batterij
  • Relais
  • LCD-aansluiting
  • Paar knopjes
  • Programmerpoort
  • Seriële interface

Ook zal de software opnieuw gemaakt worden. Hopelijk blijft dit wat leesbaarder dan de huidige spaghetti. Gebruik van meer bibliotheken en betere onderverdeling moet hier voor zorgen, samen met opnieuw verzonnen logica.

  • Status weergeven op LCD
  • Seriële data ontvangen en versturen
  • Temperatuur meten (en gemiddelde berekenen)
  • RTC lezen en schrijven
  • Simpel aan/uit-schakelen op basis van hysterese
  • Beperkte lokale bediening (Setpoint +/-)

Prototype v3

Ingredienten:

Uitbereidingen

Webinterface

Er zijn nog allerlei uitbereidingen te verzinnen zoals

  • De interface naar de PC vervangen door ethernet
  • Extra sensoren toevoegen, eventueel via ethernet, 433MHz, ZigBee, SPI naar 2de controller, etc
  • PID-regeling
  • Buitentemperatuur gebruiken
  • Modulatie/OpenTherm
  • Temperatuurweergave met 7-segmentsdisplay (al dan niet remote)
  • EEPROM op I²C/SPI voor opslag schakelprogramma
  • Metingen filteren met geavanceerde technieken zoals een Kalman filter