DIY draadloze temperatuursensor voor pilight
Zoals uit mijn eerdere posts al op te maken is, gebruik ik de Raspberry Pi voor het aansturen van centrale verwarming.
Door een probleem met de electrabuizen in mijn plafond komt de DS18B20 sensor op een onhandige plaats uit : een centraaldoos in het plafond vlakbij een radiator.
Aangezien warme lucht stijgt, de sensor in de buurt van een radiator zit en dit geheel ook nog eens om de hoek van de zithoek hangt (mijn woonkamer is een L vorm) geeft dit een totaal vertekend beeld van de werkelijkheid tov wat de sensor meet.
Hier moest dus iets aan gedaan worden!
Na een weekend prutsen ben ik tot het volgende gekomen:

Nu je zul je direct willen roepen 'maar ik zie niets!' en dat was nu precies de bedoeling
Wat je ziet is een oud fotolijstje met daarachter een breadboard geplakt, Op het breadboard zit een ATtiny84 met een DS18B20 en een 433MHz Superheterodyne RF sender.
De ATtiny is zo geprogrammeerd dat deze elke minuut de temperatuur uitleest en via de RF module de lucht instuurt.
Omdat ik geen zin (en kennis) had een heel nieuw RF protocol te verzinnen voor pilight, heb ik de KaKu_new protocol misbruikt.
Het KaKu_New dimmer protocol bied de optie om een dimstand van 0 t/m 15 te versturen. Als je dus een bepaald ID neemt en daar 2 opeenvolgende unit's van pakt heb je al 2 x 15 waardes om te versturen.
pilight kan out of the box al KaKu_new dimmer ontvangen, dus het is alleen nog een kwestie van het detecteren van de broadcast en deze waarde uit te lezen. Vervolgens deze waarde naar een generic_weather protcol sturen en klaar ben je.
Nu weet ik dat pilight ook diiverse andere weather protocols onderstuend, maar op de een of andere manier krijg ik de output van mijn Alecto weerstation niet op pilight binnen. Aangezien het versturen van de omgevingstemperatuur al in de planning lag voor onze te bouwen module, was dit een mooi begin.
Voor de ATtiny heb je de volgden code nodig:
Deze code zorgt ervoor dat de ATtiny elke minuut de temperatuur uitleest en als KaKu_new dimmer code lucht instuurt.
Wanneer het 6 graden is, word er dus het volgende verstuurd : unit [b]8934000[/b[ id 1 dimlevel 6. Wanner het echter 16 graden is, zal hij het volgende versturen: unit [b]8934000[/b[ id 2 dimlevel 1.
Nu is het een kwestie van een process script draaien op je Raspberry Pi welke alle ontvangen protocollen in de gaten houd, en reageert wanneer er een unit 8934000 voorbij komt.
In een latere post zal ik het process script wat ik voor pilight gebruik uitleggen.
Het eindresultaat ziet er dan zo uit:
Door een probleem met de electrabuizen in mijn plafond komt de DS18B20 sensor op een onhandige plaats uit : een centraaldoos in het plafond vlakbij een radiator.
Aangezien warme lucht stijgt, de sensor in de buurt van een radiator zit en dit geheel ook nog eens om de hoek van de zithoek hangt (mijn woonkamer is een L vorm) geeft dit een totaal vertekend beeld van de werkelijkheid tov wat de sensor meet.
Hier moest dus iets aan gedaan worden!
Na een weekend prutsen ben ik tot het volgende gekomen:

Nu je zul je direct willen roepen 'maar ik zie niets!' en dat was nu precies de bedoeling

Wat je ziet is een oud fotolijstje met daarachter een breadboard geplakt, Op het breadboard zit een ATtiny84 met een DS18B20 en een 433MHz Superheterodyne RF sender.
De ATtiny is zo geprogrammeerd dat deze elke minuut de temperatuur uitleest en via de RF module de lucht instuurt.
Omdat ik geen zin (en kennis) had een heel nieuw RF protocol te verzinnen voor pilight, heb ik de KaKu_new protocol misbruikt.
Het KaKu_New dimmer protocol bied de optie om een dimstand van 0 t/m 15 te versturen. Als je dus een bepaald ID neemt en daar 2 opeenvolgende unit's van pakt heb je al 2 x 15 waardes om te versturen.
pilight kan out of the box al KaKu_new dimmer ontvangen, dus het is alleen nog een kwestie van het detecteren van de broadcast en deze waarde uit te lezen. Vervolgens deze waarde naar een generic_weather protcol sturen en klaar ben je.
Nu weet ik dat pilight ook diiverse andere weather protocols onderstuend, maar op de een of andere manier krijg ik de output van mijn Alecto weerstation niet op pilight binnen. Aangezien het versturen van de omgevingstemperatuur al in de planning lag voor onze te bouwen module, was dit een mooi begin.
Voor de ATtiny heb je de volgden code nodig:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| #include <OneWire.h> // http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip #include <DallasTemperature.h> // http://download.milesburton.com/Arduino/MaximTemperature/DallasTemperature_LATEST.zip #include <NewRemoteTransmitter.h> #define txPin 10 // RF TRANSMITTER PIN const int ledPin = 8; #define ONE_WIRE_BUS 9 OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance DallasTemperature sensors(&oneWire); // Pass our oneWire reference to Dallas Temperature void setup() { pinMode(ledPin, OUTPUT); // LED pinMode(txPin, OUTPUT); // RF sender } void loop() { int NewUnit; int NewId; int temperature; NewRemoteTransmitter transmitter(8934000, txPin, 245,2); Blink(ledPin,2); sensors.begin(); //start up temp sensor sensors.requestTemperatures(); // Get the temperature temperature = sensors.getTempCByIndex(0); int RoundTemp = round(temperature); if(RoundTemp <= 15) { NewId = 1; } if(RoundTemp >= 16) { NewId = 2; RoundTemp = RoundTemp - 15; } transmitter.sendDim(NewId, RoundTemp); delay(60000); } void Blink(int led, int times){ for (int i=0; i< times; i++){ digitalWrite(ledPin,HIGH); delay (50); digitalWrite(ledPin,LOW); delay (50); } } |
Deze code zorgt ervoor dat de ATtiny elke minuut de temperatuur uitleest en als KaKu_new dimmer code lucht instuurt.
Wanneer het 6 graden is, word er dus het volgende verstuurd : unit [b]8934000[/b[ id 1 dimlevel 6. Wanner het echter 16 graden is, zal hij het volgende versturen: unit [b]8934000[/b[ id 2 dimlevel 1.
Nu is het een kwestie van een process script draaien op je Raspberry Pi welke alle ontvangen protocollen in de gaten houd, en reageert wanneer er een unit 8934000 voorbij komt.
In een latere post zal ik het process script wat ik voor pilight gebruik uitleggen.
Het eindresultaat ziet er dan zo uit:
01-'14 Raspberry Pi met pilight voor noobs deel 1
01-'14 Het gevecht met het bubbelbad (en hoe de Raspberry Pi won)
Reacties
Ik zou je code en schema eens goed gaan bestuderen voor energieverbruik, dit is typisch iets wat met de goede code en instellingen ruim een jaar op simpel batterijtje kan draaien.
En denk dat dit draadloos nog een stuk intressanter is dan dan het zo al is.
En denk dat dit draadloos nog een stuk intressanter is dan dan het zo al is.
mooie blog(alweer) bij de tweakblogs kijk ik ook altijd eerst of ik koffie zie staan. Echt super leuk!
Klopt heb je gelijk in.SA007 schreef op zondag 26 januari 2014 @ 18:53:
Ik zou je code en schema eens goed gaan bestuderen voor energieverbruik, dit is typisch iets wat met de goede code en instellingen ruim een jaar op simpel batterijtje kan draaien.
En denk dat dit draadloos nog een stuk intressanter is dan dan het zo al is.
Er word nu niets aan het verbruik gedaan, dat kan drastisch naar beneden door onnodige zooi uit te zetten, zo diep mogelijk te laten slapen en de timer op 5 minuten te zetten ipv 1.
Punt is, dit is een werken prototype/proof of concept die ik tegelijkertijd 'in productie' heb genomen voor het aansturen van de kachel. In een later stadium moet dit een standlone kastje worden waar meerdere sensors in zitten (werkend op batterijen).
Wat ik in bovenstaande verhaal ben vergeten: ik had ooit eens een klein plastic kerstboompje (formaat sigarettenpakje) bij een bestelling gekregen. Dit boompje kon middels USB gevoed worden en dan knipperde er wat LEDjes.
Ik heb die USB kabel los geknipt (kerst was alweer voorbij

Het hele gebeuren staat op een laag audio/video dressoir. In dit dressoir staat mijn IPTV decoder welke door de fabrikant zo gebouwd is dat hij vrijwel niet uit kan (Amino). Ook de USB port bleek permanent gevoed te worden. Daar kon dus mooi die kabel in.
echt super bedacht dit. ik blijf dit volgen tot het eind. ik wil geen moment missen.
Zou je eventueel een parts-list willen maken? (met evt een shop erbij?)
En wie weet een bedradingsschema?
Probleem dat ik heb:
Voor de attiny84 vind ik binnen de 5 minuten al pakweg 10 verschillende versies, dus daar weet ik al niet goed welke ik zou moeten hebben, laat staan voor de 433MHz zender etc...
Alvast bedankt
En wie weet een bedradingsschema?
Probleem dat ik heb:
Voor de attiny84 vind ik binnen de 5 minuten al pakweg 10 verschillende versies, dus daar weet ik al niet goed welke ik zou moeten hebben, laat staan voor de 433MHz zender etc...
Alvast bedankt

Voor mij projectje heb ik gebruik gemaakt van de ATtiny84 20pu van iPrototype, De RF zender komt van Ebay, deze behandel ik in het vervolg op mijn laatste post : Koffie's tweakblog: Raspberry Pi met pilight voor noobs deel 1roeleboel schreef op maandag 27 januari 2014 @ 21:59:
Zou je eventueel een parts-list willen maken? (met evt een shop erbij?)
En wie weet een bedradingsschema?
Probleem dat ik heb:
Voor de attiny84 vind ik binnen de 5 minuten al pakweg 10 verschillende versies, dus daar weet ik al niet goed welke ik zou moeten hebben, laat staan voor de 433MHz zender etc...
Alvast bedankt
Schema zal ik van de week even maken, maar stelt niet heel veel voor.
Hartelijk dank voor de info.
Nog één vraagje (voorlopig toch
):
Hoe programmeer je zo een ATtiny84? (welke hardware & software gebruik je hier voor? - ik begrijp dat je die niet zomaar in de usb kan pluggen, vandaar mijn vraag.
Nog één vraagje (voorlopig toch

Hoe programmeer je zo een ATtiny84? (welke hardware & software gebruik je hier voor? - ik begrijp dat je die niet zomaar in de usb kan pluggen, vandaar mijn vraag.
Met deze programmer : http://iprototype.nl/prod...ters/pocket-AVRprogrammer
Ik zal er binnenkort eens wat uitgebreider op ingaan.
Ik zal er binnenkort eens wat uitgebreider op ingaan.
Bedanks voor deze blogjes. Ik wil zelf ook binnenkort eens een RPi kopen en gaan knutselen.
Ik begrijp niet zo goed waarom je het protocol voor een dimmer gebruikt. Pilight heeft toch al een eigen protocol voor deze sensor?
Ik wil zelf ook de temp sensen in combinatie met energie meting, zodat ik kan kijken wat het energieverbruik is in relatie met de temperatuur en dan kan kijken of ik dit kan optimaliseren. Over energie meting lees ik niets bij pilight, maar dat hoeft ook niet draadloos. Ik zet de RPi gewoon in de meterkast.
Ik begrijp niet zo goed waarom je het protocol voor een dimmer gebruikt. Pilight heeft toch al een eigen protocol voor deze sensor?
Ik wil zelf ook de temp sensen in combinatie met energie meting, zodat ik kan kijken wat het energieverbruik is in relatie met de temperatuur en dan kan kijken of ik dit kan optimaliseren. Over energie meting lees ik niets bij pilight, maar dat hoeft ook niet draadloos. Ik zet de RPi gewoon in de meterkast.
wat voor weerstation heb jij?
Ik heb een Alecto ws4500 en die krijg ik ook niet correct op pilight binnen. Dus ga misschien zelf een protocol ervoor maken.
gr tom
Ik heb een Alecto ws4500 en die krijg ik ook niet correct op pilight binnen. Dus ga misschien zelf een protocol ervoor maken.
gr tom
Beste Koffie,
kan het zijn dat ik het schema mis ?
kan het zijn dat ik het schema mis ?
Klopt, is er eigenlijk nooit van gekomen zo te zien 
Ik ben nu bezig met een nieuwe versie, op basis van een Arduino Nano. Daar zal ik binnenkort even een blogje over posten

Ik ben nu bezig met een nieuwe versie, op basis van een Arduino Nano. Daar zal ik binnenkort even een blogje over posten
Koffie,
is het mogelijk om het schema, mocht je het nog hebben, te posten.
Alvast bedankt.
gr. Ferdinand
is het mogelijk om het schema, mocht je het nog hebben, te posten.
Alvast bedankt.
gr. Ferdinand
Hoi Koffie,
Is er inmiddels al wat bekend van de nieuwe Arduino Nano versie ?
Ik ben een tijdje uit de running geweest, maar wil nu toch weer aktief zijn met de hobby.
BenPi
Is er inmiddels al wat bekend van de nieuwe Arduino Nano versie ?
Ik ben een tijdje uit de running geweest, maar wil nu toch weer aktief zijn met de hobby.
BenPi
Ik wacht nog heeeel even met posten 
Inmiddels ben ik inderdaad over op een Nano, maar ik heb een paar ESP8266 modules besteld die onderweg naar NL zijn.
Met deze modules kun je over wifi pratien ipv RF. Scheelt een boel RF-collisions of andere missers.
Doel is om dan informatie via wifi te verzenden en tevens als wifi<->RF en wifi->IR gateway op te treden : retransmitten van RF en IR code welke via wifi is binnengekomen, en ook RF code opvangen en via wifi doorsturen naar pimatic.

Inmiddels ben ik inderdaad over op een Nano, maar ik heb een paar ESP8266 modules besteld die onderweg naar NL zijn.
Met deze modules kun je over wifi pratien ipv RF. Scheelt een boel RF-collisions of andere missers.
Doel is om dan informatie via wifi te verzenden en tevens als wifi<->RF en wifi->IR gateway op te treden : retransmitten van RF en IR code welke via wifi is binnengekomen, en ook RF code opvangen en via wifi doorsturen naar pimatic.
Heb jij nog een tip om via pimatic de I2C bus uit te lezen ?
Hoi Koffie,Koffie schreef op woensdag 14 januari 2015 @ 21:17:
Ik wacht nog heeeel even met posten
Inmiddels ben ik inderdaad over op een Nano, maar ik heb een paar ESP8266 modules besteld die onderweg naar NL zijn.
Met deze modules kun je over wifi pratien ipv RF. Scheelt een boel RF-collisions of andere missers.
Doel is om dan informatie via wifi te verzenden en tevens als wifi<->RF en wifi->IR gateway op te treden : retransmitten van RF en IR code welke via wifi is binnengekomen, en ook RF code opvangen en via wifi doorsturen naar pimatic.
Bedankt voor je uitgebreide posts. Ook ik ben van plan om helemaal over te stappen op pimatic (ipv pilight) en ben erg benieuwd naar je ontwikkelingen met de ESP8266 zoals je hierboven beschrijft.
Ik zou het erg tof vinden als ik mijn huis straks ook vol kan bouwen met draadloze temperatuur-sensoren zonder dat de vele 433 signalen op elkaar gaan storen.
Zit er toevallig nog een blogpost aan te komen hierover?

Om te kunnen reageren moet je ingelogd zijn. Via deze link kun je inloggen als je al geregistreerd bent. Indien je nog geen account hebt kun je er hier één aanmaken.