AVR kamerthermostaat

From Frack - Hackerspace Friesland
Jump to navigationJump to search
Project: AVR Kamerthermostaat
AVR kamerthermostaat.png
Status lopend
Betrokkenen
Gebruiker Iisschots.jpg iisschots
Gebruiker Iisschots.jpgLouwerens Jan (iisschots) Rol: deelnemer Werkt aan: Geen projecten :(
,
Gebruiker CrazyA.jpg CrazyA
Gebruiker CrazyA.jpgCrazyA Rol: deelnemer Deskundig met: AVR, Arduino, Blender, Elektronica, GL-Inet, LPD8806, POV-Ray, RaspberryPi Werkt aan: Geen projecten :(
,
Afbeelding Anoniem.png martijn
Martijn (martijn) Rol: deelnemer Deskundig met: Digitale Fabricatie, Elektronica, Hydroponics, Robotica, Software, Solderen, Stappenmotor Werkt aan: Geen projecten :(
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: deelnemer Deskundig met: AVR, Arduino, Blender, Elektronica, GL-Inet, LPD8806, POV-Ray, RaspberryPi Werkt aan: Geen projecten :(

. 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: Geen projecten :(

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