Ja oke dat had ik al ontdekt, maar het voornaamste is het bedienen van de ontvangers via arduino. Hopelijk komt morgen mijn zender en ontvanger binnen en dan ga ik experimenteren. Alvast bedankt voor de reactiessunoke schreef op donderdag 03 februari 2011 @ 15:29:
[...]
Ja, dat begrijp je goed. Jammer is dan wel dat je afstandbediening niet meer zo makkelijk werkt: er zit een klein schuifje achterop dat die huiscode selecteerd en dat is niet zo makkelijk te verschuiven. Maar bedienen met de Arduino gaat prima.
Ik heb vandaag mijn Zender en Ontvangen van Conrad binnen gekregen, als eerste heb ik de ontvanger aangesloten om te kijken of deze werkt. Ik heb de ontvanger aangesloten volgens de handleiding van ArduinoRemoteSwitchLibrary na het schakelen van mijn 3 ontvangers kreeg ik het volgende:
Nu wilde ik dit zelf gaan schakelen en had ik de zender aangesloten, maar als ik deze op 5 volt aansloot viel mijn Uno bordje uit toen dacht ik test het op 3,5 V maar er gebeurde niks ik heb het zo aangesloten:
Het On lampje van mijn Uno flikkert wel een heel klein beetje als de zender is aangesloten, er zijn namelijk geen pinnen gesoldeerd op de zender en dacht ik als ik de testpinnen van het breadboard erop aansluit zal het ook wel contact maken ik heb het met de volgende code getest om Ontvanger 1 op Signaal A te schakelen:
Kan iemand mij vertellen waarom dit niet werkt?
Edit:
Ik heb het al opgelost de code werkt gewoon had per ongeluk de + en de - op 1 lijn in het breadboard waardoor die niet werkte en uitviel haha stomme fout!
code:
1
2
3
4
5
6
| Code: 26, period duration: 365us. //1 aan Code: 24, period duration: 365us. //1 uit Code: 4400, period duration: 339us. // 2 aan Code: 4398, period duration: 365us. // 2 uit Code: 1484, period duration: 365us. // 3 aan Code: 1482, period duration: 365us. // 3 uit |
Nu wilde ik dit zelf gaan schakelen en had ik de zender aangesloten, maar als ik deze op 5 volt aansloot viel mijn Uno bordje uit toen dacht ik test het op 3,5 V maar er gebeurde niks ik heb het zo aangesloten:

Het On lampje van mijn Uno flikkert wel een heel klein beetje als de zender is aangesloten, er zijn namelijk geen pinnen gesoldeerd op de zender en dacht ik als ik de testpinnen van het breadboard erop aansluit zal het ook wel contact maken ik heb het met de volgende code getest om Ontvanger 1 op Signaal A te schakelen:
code:
1
2
3
4
5
6
7
8
9
10
11
| //Switch off KaKu-device 10 on address M kaKuSwitch.sendSignal('M',26,false); //wait 2 seconds delay(2000); //Switch on KaKu-device 2 of group 3 on address M (which is the same as device 10 on address M!) kaKuSwitch.sendSignal('A',1,1,true); //wait 4 seconds delay(4000); |
Kan iemand mij vertellen waarom dit niet werkt?
Edit:
Ik heb het al opgelost de code werkt gewoon had per ongeluk de + en de - op 1 lijn in het breadboard waardoor die niet werkte en uitviel haha stomme fout!
[ Voor 5% gewijzigd door Dw1-nl op 04-02-2011 17:54 ]
Na lange tijd geleden dit zend en ontvang setje gekocht te hebben ook maar eens een Action 'Impuls' set aangeschaft.
Transmitter netjes aangesloten op de Arduino echter zag ik er 12V op staan. Misschien beetje domme vraag, maar zou dit goed de reden kunnen zijn dat het geheel niet werkt?
Transmitter netjes aangesloten op de Arduino echter zag ik er 12V op staan. Misschien beetje domme vraag, maar zou dit goed de reden kunnen zijn dat het geheel niet werkt?
Die transmitters werken meestal in een groot bereik, iets van 3V-12V. De 5V van arduino zou voldoende moeten zijn in die gevallen.-Tim- schreef op maandag 07 februari 2011 @ 23:37:
Na lange tijd geleden dit zend en ontvang setje gekocht te hebben ook maar eens een Action 'Impuls' set aangeschaft.
Transmitter netjes aangesloten op de Arduino echter zag ik er 12V op staan. Misschien beetje domme vraag, maar zou dit goed de reden kunnen zijn dat het geheel niet werkt?
Aangezien mijn rf zender dat ik nu heb heel erg zwak is vroeg ik mij namelijk af of het misschien mogelijk is. Dat ik mijn ab440 aan mijn arduino kan hangen
Ik kom er niet echt uit met mijn Action set.
Ik heb de zender als volgt aangesloten:

Om te kijken of het niet aan het verkeerde adres lag heb ik de ontvanger ingesteld zoals Stavast in dit topic zei "1 omlaag 2,3,4 omhoog en 5 omlaag (dit gezien van dat je de cijfers gewoon kan lezen)" en heb dan ook 15, 0 en 1 gekozen als adres zoals Fuzzilogic hier op reageerde. Maar niks werkt.
Als Arduino code heb ik actionSwitch.sendSignal(0,'B',true);" met dus 0, 1 en 15 geprobeerd. Ik gebruik gewoon de Light_show code en de zender is dan ook aangesloten op pin 11.
Ik heb de zender als volgt aangesloten:

Om te kijken of het niet aan het verkeerde adres lag heb ik de ontvanger ingesteld zoals Stavast in dit topic zei "1 omlaag 2,3,4 omhoog en 5 omlaag (dit gezien van dat je de cijfers gewoon kan lezen)" en heb dan ook 15, 0 en 1 gekozen als adres zoals Fuzzilogic hier op reageerde. Maar niks werkt.
Als Arduino code heb ik actionSwitch.sendSignal(0,'B',true);" met dus 0, 1 en 15 geprobeerd. Ik gebruik gewoon de Light_show code en de zender is dan ook aangesloten op pin 11.
Omhoog is 1, omlaag is 0. Je hebt hem dus nu op systeemcode 7 ingesteld
Als je het niet zeker weet, dan zet je de boel toch in een for-loopje? Bereik voor de code is 0-31.
[ Voor 43% gewijzigd door Fuzzillogic op 11-02-2011 22:35 ]
Voor korte afstanden kun je ook zonder antenne testen. Bovendien "krijg" je een stukje antenne doordat het in een breadboardje zit.Verwijderd schreef op zaterdag 12 februari 2011 @ 17:45:
@tim..
Je hebt wel een antenne op de zender aangesloten?
Ik zie die nl niet op je foto.
Links op het printplaatje zit een opgewonden draadje wat mij een prima antenne lijkt. Zelfs 20 cm naast een ontvanger gebeurt er niks met onderstaande loop.
Ik heb toch echt deze zender uit de Samenkoopactie waar anderen volgens mij het prima werkend mee hebben gekregen. Misschien heeft Action z'n set vernieuwd?
code:
1
2
3
4
5
6
7
8
9
10
11
12
| for (int i=0; i <= 31; i++){ actionSwitch.sendSignal(i,'A',true); delay(500); actionSwitch.sendSignal(i,'B',true); delay(500); actionSwitch.sendSignal(i,'C',true); delay(500); actionSwitch.sendSignal(i,'D',true); delay(500); actionSwitch.sendSignal(i,'E',true); delay(500); } |
Ik heb toch echt deze zender uit de Samenkoopactie waar anderen volgens mij het prima werkend mee hebben gekregen. Misschien heeft Action z'n set vernieuwd?
Ik heb precies zo'n Action-unit als op je foto, lijkt me sterk dat ze daar veel aan gewijzigd hebben. Zonder extra arduino met ontvanger of een scoop is het echter best lastig om te debuggen. Maar als WO-student in Enschede (met ongetwijfeld een technische studie) is dat laatste wellicht nog te regelen?-Tim- schreef op zondag 13 februari 2011 @ 20:06:
Links op het printplaatje zit een opgewonden draadje wat mij een prima antenne lijkt. Zelfs 20 cm naast een ontvanger gebeurt er niks met onderstaande loop.
Ik heb toch echt deze zender uit de Samenkoopactie waar anderen volgens mij het prima werkend mee hebben gekregen. Misschien heeft Action z'n set vernieuwd?
Verwijderd
Alvast mijn excuses voor eventuele onzin die ik uitkraam.
Ik zit net een dag in deze materie
Met wat ik tot nu toe opgestoken heb, heb ik de volgende plannen.
De hardware:
Een Arduino uno bordje
&
zender/ontvanger voor bovenstaand bord
&
De nodige ontvangers van Action/Aldi oid.
Deze wil ik aansturen via m'n server.
En dan wel via een web-interface, deze webinterface wil ik op een cheap-ass android tablet (DX) gebruiken.
Hier zie ik geen problemen.
Nu komt het voor mij (nog) wazige deel;
- Kan ik de Arduino Uno via usb direct aansturen? dit door via de web-interface de nodige scripts aan te roepen die de Arduino de nodige signalen uit laat zenden.
Het is mij dus nog niet helemaal duidelijk of ik de code op de Arduino moet programmeren zodat die standalone zijn ding doet. (dit wil ik niet)
Of dat ik dit op de server af kan handelen.
*server draait Linux.
Ik zit net een dag in deze materie
Met wat ik tot nu toe opgestoken heb, heb ik de volgende plannen.
De hardware:
Een Arduino uno bordje
&
zender/ontvanger voor bovenstaand bord
&
De nodige ontvangers van Action/Aldi oid.
Deze wil ik aansturen via m'n server.
En dan wel via een web-interface, deze webinterface wil ik op een cheap-ass android tablet (DX) gebruiken.
Hier zie ik geen problemen.
Nu komt het voor mij (nog) wazige deel;
- Kan ik de Arduino Uno via usb direct aansturen? dit door via de web-interface de nodige scripts aan te roepen die de Arduino de nodige signalen uit laat zenden.
Het is mij dus nog niet helemaal duidelijk of ik de code op de Arduino moet programmeren zodat die standalone zijn ding doet. (dit wil ik niet)
Of dat ik dit op de server af kan handelen.
*server draait Linux.
Verwijderd
Nou, mij lukte het ook niet met die zendertjes dus ik heb de orginele AB omgebouwd voor de arduino.Ik heb toch echt deze zender uit de Samenkoopactie waar anderen volgens mij het prima werkend mee hebben gekregen
De Arduino gebruik je om via de 433MHz transmitter signalen te sturen naar je switches. De Arduino moet je hiervoor programmeren met een simpel programmaatje wat luistert naar binnenkomende signalen van de server en dit vertaalt naar 433MHz taal. De Arduino beschikt over een USB poort, maar communiceert hierdoor met de computer via een virtuele seriële verbinding.Verwijderd schreef op donderdag 17 februari 2011 @ 20:09:
Nu komt het voor mij (nog) wazige deel;
- Kan ik de Arduino Uno via usb direct aansturen? dit door via de web-interface de nodige scripts aan te roepen die de Arduino de nodige signalen uit laat zenden.
Het is mij dus nog niet helemaal duidelijk of ik de code op de Arduino moet programmeren zodat die standalone zijn ding doet. (dit wil ik niet)
Of dat ik dit op de server af kan handelen.
*server draait Linux.
Ik heb trouwens ook eindelijk de switches werkend. Laat ik er maar niet te veel woorden aan vuil maken, maar het was iets ongelooflijk doms in de code

[ Voor 9% gewijzigd door -Tim- op 17-02-2011 21:23 ]
Verwijderd
Heb je toevallig enig idee of iemand dat soort software al eens geschreven heeft voor Arduino?
Ik kan redelijk scripten maar zoiets zelf in C? gaan bouwen zit er niet in atm.
(ik zou ook niet weten waar ik naar moet zoeken)
Dat de communicatie over een USB > serial connectie gaat was duidelijk.
bedankt voor de info, Ik heb nu een duidelijk beeld bij de opstelling en communicatie tussen de verschillende componenten.
Morgen alles maar eens bestellen
Ik kan redelijk scripten maar zoiets zelf in C? gaan bouwen zit er niet in atm.
(ik zou ook niet weten waar ik naar moet zoeken)
Dat de communicatie over een USB > serial connectie gaat was duidelijk.
bedankt voor de info, Ik heb nu een duidelijk beeld bij de opstelling en communicatie tussen de verschillende componenten.
Morgen alles maar eens bestellen
Ik heb het nooit geprobeerd, maar je zou eens kunnen kijken naar de Firmata library, die tegenwoordig standaard bij Arduino zit. Dat kan helpen bij de communicatie tussen PC en Arduino. Voor de PC-kant kun je experimenteren met Processing, die ook een Firmata-library heeft. Dat zou goed op elkaar moeten aansluiten.Verwijderd schreef op vrijdag 18 februari 2011 @ 01:00:
Heb je toevallig enig idee of iemand dat soort software al eens geschreven heeft voor Arduino?
Ik kan redelijk scripten maar zoiets zelf in C? gaan bouwen zit er niet in atm.
(ik zou ook niet weten waar ik naar moet zoeken)
Dat de communicatie over een USB > serial connectie gaat was duidelijk.
bedankt voor de info, Ik heb nu een duidelijk beeld bij de opstelling en communicatie tussen de verschillende componenten.
Morgen alles maar eens bestellen
Ik ben bezig geweest met iets dergelijks, je kunt via een json object een commando sturen over de seriele poort, bijvoorbeeld:Verwijderd schreef op vrijdag 18 februari 2011 @ 01:00:
Heb je toevallig enig idee of iemand dat soort software al eens geschreven heeft voor Arduino?
Ik kan redelijk scripten maar zoiets zelf in C? gaan bouwen zit er niet in atm.
(ik zou ook niet weten waar ik naar moet zoeken)
JSON:
De andere kant op kan ook, dus signalen ontvangen en doorsturen via de seriele poort. Maar dit staat nog niet online.1
| {"home":"A","device":"F","state":1} |
BTW, zoveel verschil is er niet tussen een scripttaal (als PHP) en een gecompileerde taal (als C). Bouwen is simpel op de bouw knop drukken, of de shortcut (CMD-R onder Mac OS) gebruiken.
Fuzzillogic ik probeer je schema na te maken aan de hand van de schema tekening en deze foto
http://randysimons.com/ov...MHz%20receiver%20foto.jpg
de foto omdat ik niet goed in schemas ben
maar jou RF433 heeft 8 aansluitingen(velleman) die van mij maar 4 welke pinnen dienen voor wat
ik heb:
pin1: VCC
pin1: OUT
pin3: OUT
pin4: GND
Schema ( zou dit werken? )
datasheet
jij hebt:
pin1: GND
pin2: Digital OUT
pin3: Linear OUT (RSSI ??)
pin4: VCC
pin5: VCC
pin6: GND
pin7: GND
pin8: ANT
Schema
Bij mij lijkt er dus geen linear OUT/ RSSI te zijn. en daarom zou bij mij die hele schakeling met de potmeter geen nut hebben dacht ik zo
en klopt het dat jij een ledje zonder weerstand rechtstreeks aan de 5v hangt ?
http://randysimons.com/ov...MHz%20receiver%20foto.jpg
de foto omdat ik niet goed in schemas ben
maar jou RF433 heeft 8 aansluitingen(velleman) die van mij maar 4 welke pinnen dienen voor wat
ik heb:
pin1: VCC
pin1: OUT
pin3: OUT
pin4: GND
Schema ( zou dit werken? )
datasheet
jij hebt:
pin1: GND
pin2: Digital OUT
pin3: Linear OUT (RSSI ??)
pin4: VCC
pin5: VCC
pin6: GND
pin7: GND
pin8: ANT
Schema
Bij mij lijkt er dus geen linear OUT/ RSSI te zijn. en daarom zou bij mij die hele schakeling met de potmeter geen nut hebben dacht ik zo
en klopt het dat jij een ledje zonder weerstand rechtstreeks aan de 5v hangt ?
[ Voor 57% gewijzigd door Proxx op 23-02-2011 15:12 ]
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
Verwijderd
Ik ben ondertussen ook aan de slag gegaan met de info van Fuzzillogic.
Er staat nu wat code op m'n Arduino die, zoals je zelf ook al zei, via de seriele poort de Arduino kunstjes laat doen. (leuk spul, ik ben al helemaal verkocht!)
Op deze manier heb ik een enorm simpel script geschreven:
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
| #!/bin/bash # #Howto use: #./filename.sh lampX aan/uit # lamp="$1" switch="$2" if [ $lamp == "lamp1" ]; then code="a" elif [ $lamp == "lamp2" ]; then code="b" elif [ $lamp == "lamp3" ]; then code="c" elif [ $lamp == "lamp4" ]; then code="d" elif [ $lamp == "lamp5" ]; then code="e" elif [ $lamp == "lamp6" ]; then code="f" elif [ $lamp == "lamp7" ]; then code="g" elif [ $lamp == "lamp8" ]; then code="h" elif [ $lamp == "lamp9" ]; then code="i" elif [ $lamp == "lamp10" ]; then code="j" fi if [ $switch == "aan" ] then code=`echo $code | tr 'a-z' 'A-Z'` fi echo -n $code > /dev/ttyACM0 |
Het 'werkt' maar!
De code op de Arduino gaat een loopje door om de input te matchen met de juiste lamp+acties.
Hier zijn de 1e gevolgen van mijn programmeer kennis zichtbaar, naarmate er meer apparaten in die loop komen gaat het steeds langer duren voordat Arduino hier doorheen is. Er zit nu af en toe al een delay van 1 sec+ tussen voordat de lamp echt aan gaat.
Dat is nu nog niet echt een ramp. maar zodra m'n Senseo etc er ook bij komen is dit ver van ideaal.
Aanschouw mijn, deels van internet gekopieerde, Arduino code:
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
| #include <RemoteSwitch.h> ActionSwitch actionSwitch(11); const int Out0=12;//LED pin. boolean lampA=true; boolean lampB=true; boolean lampC=true; boolean lampD=true; boolean lampE=true; void setup() { Serial.begin(9600);//Serial access pinMode(Out0,OUTPUT); pinMode(12, OUTPUT); Serial.print("Enter a-e or A-E on serial terminal "); Serial.println("to switch lamp"); }; void lampAon() { actionSwitch.sendSignal(1,'A',true); }; void lampAoff() { actionSwitch.sendSignal(1,'A',false); }; void lampBon() { actionSwitch.sendSignal(1,'B',true); }; void lampBoff() { actionSwitch.sendSignal(1,'B',false); }; void lampCon() { actionSwitch.sendSignal(1,'C',true); }; void lampCoff() { actionSwitch.sendSignal(1,'C',false); }; void lampDon() { actionSwitch.sendSignal(1,'D',true); }; void lampDoff() { actionSwitch.sendSignal(1,'D',false); }; void lampEon() { actionSwitch.sendSignal(1,'E',true); }; void lampEoff() { actionSwitch.sendSignal(1,'E',false); }; void loop() { int incomingByte=0; if (Serial.available() > 0) { // read the incoming byte: incomingByte = Serial.read(); // say what you got: Serial.print("I received: "); Serial.print(incomingByte, DEC); if (incomingByte==65) {lampA=true; Serial.println(", Lamp A goes on.");}; if (incomingByte==97) {lampA=false; Serial.println(", Lamp A goes off.");}; if (incomingByte==66) {lampB=true; Serial.println(", Lamp B goes on.");}; if (incomingByte==98) {lampB=false; Serial.println(", Lamp B goes off.");}; if (incomingByte==67) {lampC=true; Serial.println(", Lamp C goes on.");}; if (incomingByte==99) {lampC=false; Serial.println(", Lamp C goes off.");}; if (incomingByte==68) {lampD=true; Serial.println(", Lamp D goes on.");}; if (incomingByte==100) {lampD=false; Serial.println(", Lamp D goes off.");}; if (incomingByte==69) {lampE=true; Serial.println(", Lamp E goes on.");}; if (incomingByte==101) {lampE=false; Serial.println(", Lamp E goes off.");}; //if ((incomingByte!=97)&&(incomingByte!=65)) { // Serial.println(". Error, unkown lamp.");}; } //The following happen every time you pass through "loop" if (lampA) {lampAon();}; if (!lampA) {lampAoff();}; if (lampB) {lampBon();}; if (!lampB) {lampBoff();}; if (lampC) {lampCon();}; if (!lampC) {lampCoff();}; if (lampD) {lampDon();}; if (!lampD) {lampDoff();}; if (lampE) {lampEon();}; if (!lampE) {lampEoff();}; }; |
Ik weet dat er een hoop ruimte is voor verbetering of misschien kunnen ze net zo goed volledig herschreven worden. Ik wacht jullie input af, en verbeteringen in de code zijn helemaal welkom!!
Overlord,
jij hebt ongeveer de zelfde zende/ontvanger set als mij. kun jij mij vertellen hoe jij signaal ontvangt op de arduino met de ontvanger ? (misschien een schema met http://fritzing.org/ maken voor me.)
BTW ik vind je bash script wel een mooi begin. dat ik precies de richting die ik in wil.
jij hebt ongeveer de zelfde zende/ontvanger set als mij. kun jij mij vertellen hoe jij signaal ontvangt op de arduino met de ontvanger ? (misschien een schema met http://fritzing.org/ maken voor me.)
BTW ik vind je bash script wel een mooi begin. dat ik precies de richting die ik in wil.
[ Voor 17% gewijzigd door Proxx op 23-02-2011 15:19 ]
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
Ik heb inmiddels ook een temperature sensor op de 433mhz besteld .
http://cgi.ebay.nl/Digita...ain_0&hash=item2a0e4bd7ac
Echter ik kan de code niet opvangen met de huidige liberary. Heeft iemand hier een oplossing voor om deze ook uit te kunnen lezen?
http://cgi.ebay.nl/Digita...ain_0&hash=item2a0e4bd7ac
Echter ik kan de code niet opvangen met de huidige liberary. Heeft iemand hier een oplossing voor om deze ook uit te kunnen lezen?
Verwijderd
Mooi dat je er iets aan hebtProxx schreef op woensdag 23 februari 2011 @ 15:08:
Overlord,
jij hebt ongeveer de zelfde zende/ontvanger set als mij. kun jij mij vertellen hoe jij signaal ontvangt op de arduino met de ontvanger ? (misschien een schema met http://fritzing.org/ maken voor me.)
BTW ik vind je bash script wel een mooi begin. dat ik precies de richting die ik in wil.
Mijn volgende stap is, nadat ik dit nog wat uitgebouwd heb, een web-interface maken die de bash scripts aanroept.
Ik zou je graag vertellen hoe ik dingen op mijn Arduino ontvang...
Maar ik wacht nog altijd op mijn zender/ontvanger!
Het is dat ik niet kon wachten en een (medion) remote uit elkaar gesloopt heb om daar de zender uit te halen en alvast wat te spelen.
Hoe precies had je in gedachte dat een library die bedoeld is voor het schakelen van lampen een draadloze thermometer gaat begrijpen?jongerenchaos schreef op woensdag 23 februari 2011 @ 15:38:
Ik heb inmiddels ook een temperature sensor op de 433mhz besteld .
http://cgi.ebay.nl/Digita...ain_0&hash=item2a0e4bd7ac
Echter ik kan de code niet opvangen met de huidige liberary. Heeft iemand hier een oplossing voor om deze ook uit te kunnen lezen?
Dat betekent niet dat het niet kan, die thermometer uitlezen met je arduino. Sterker, met Verwijderd in "433MHz-communicatie met microcontrollers" is het me vorig jaar gelukt om zo'n weerstation 'aan te sturen'. Deze informatie is voldoende om het signaal ook te ontvangen en decoderen, maar dat is wat lastiger ivm de timing. En, let wel, de ene sensor is de andere niet. Deze informatie slaat puur op de Cresta-systemen. Misschien gebruikt jouw ding hetzelfde protocol, maar de kans is groot dat het een ander systeem gebruikt.
Medion remote. bedoel je een aldi setje van quigg? toevallig ook vorige maand aangeschaft ?Verwijderd schreef op woensdag 23 februari 2011 @ 17:26:
[...]
<... knip ...>
Het is dat ik niet kon wachten en een (medion) remote uit elkaar gesloopt heb om daar de zender uit te halen en alvast wat te spelen.
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
@ Fuzzillogic
Er is een library aanwezig welke de codes van diverse 433 mhz zend modules kan ontvangen. Zo is mij het al gelukt om PIR en Raamsensors te ontvangen met deze standaard library.
Nou wil ik dat ook doen bij de thermometer die tevens dit soort 433 mhz codes uitstuurd. Ik meen dat dit ook een 48bits duration code is welke ik kan ontvangen.
Hoe kan ik de library zo aanpassen dat ik alle 433 mhz , 48bits codes kan ontvangen in de 433 mhz band.
Klopt het dat de filtering van de codes in dit gedeelte van de library zit (bij remote receiver)?
else if (receivedBit==B0111) en bijv
else if (receivedBit==B1111) ga toevoegen dat ik dan meer codes kan ontvangen met de library? Of sla ik nu de plank mis?
Er is een library aanwezig welke de codes van diverse 433 mhz zend modules kan ontvangen. Zo is mij het al gelukt om PIR en Raamsensors te ontvangen met deze standaard library.
Nou wil ik dat ook doen bij de thermometer die tevens dit soort 433 mhz codes uitstuurd. Ik meen dat dit ook een 48bits duration code is welke ik kan ontvangen.
Hoe kan ik de library zo aanpassen dat ik alle 433 mhz , 48bits codes kan ontvangen in de 433 mhz band.
Klopt het dat de filtering van de codes in dit gedeelte van de library zit (bij remote receiver)?
Klopt het dat als ik bijvif ((_state%4)==3) { //Last bit part?
//Shift
receivedCode*=3;
//Decode bit.
if (receivedBit==B1010) { //short long short long == B0101, but bits are set in reversed order, so compare to B1010
//bit "0" received
receivedCode+=0; //I hope the optimizer handles this
}
else if (receivedBit==B0101) { //long short long short == B101, but bits are set in reversed order, so compare to B0101
//bit "1" received
receivedCode+=1;
}
else if (receivedBit==B0110) { //short long long short. Reversed too, but makes no difference.
//bit "f" received
receivedCode+=2;
}
else if (receivedBit==B0111) en bijv
else if (receivedBit==B1111) ga toevoegen dat ik dan meer codes kan ontvangen met de library? Of sla ik nu de plank mis?
Verwijderd
Nee, was al meer dan 5 jaar oud...Proxx schreef op donderdag 24 februari 2011 @ 08:38:
[...]
Medion remote. bedoel je een aldi setje van quigg? toevallig ook vorige maand aangeschaft ?
Kort antwoord: niet. Het protocol van die weerstations zal iets compleet anders zijn dan van de PT2262 uit de kaku-achtigen. Zo is het protocol van de Cresta-systemen manchester-encoded.jongerenchaos schreef op donderdag 24 februari 2011 @ 10:35:
Hoe kan ik de library zo aanpassen dat ik alle 433 mhz , 48bits codes kan ontvangen in de 433 mhz band.
Langer antwoord: nou heb ik de library wel half (nouja, meer 1/10 eigenlijk) voorbereid om er ooit nog andere decoders bij te kunnen hangen.
In RemoteReceiver.cpp zie je op regel 49 dat de lengte van een edge (in µs) wordt berekend. Je zou daar kunnen inhaken en die waarde aan je eigen decoder kunnen geven. Als je dat doet wel opletten dat je code snel genoeg is. Ik weet het niet zeker (meer), maar het kan goed zijn dat in de interrupt handler de interne klok voor micros() stilstaat, en een trage decoder zou dan leiden tot een behoorlijke clock-skew.
Het hele herkennen van het signaal en decoderen zul je dan zelf moeten doen, maar daar helpt de huidige library je sowieso niet bij. Maar voor Cresta kun je dus kijken naar de post van Oopsje die ik hierboven ook al eens aanhaalde.
ik ben gisteren aan de gang gegaan met de liberarie. alles lijkt oke maar ik ontvang helemaal geen codes.
nu dacht ik dat het aan 2 factoren kon liggen
1. ik heb de goedkoopste 433 modulles die er volgensmij te vinden zijn
2. mijn nieuw 2011 quigg aldi set heeft zoals fuzzi aangeeft over dat weerstation een andere codering?
nu vroeg ik me af of iemand ergens een code kent die alle ontvange signiaal weergeeft. zodat ik mischien beter zie wat er aan de hand is.
fuzzillogics liberarie. geeft ook pas signiaal weer als er 3 keer hetzelfde bericht binnenkomt.
dus als er teveel ruis is werkt het niet. en als er een andere codering is werkt het niet. als ik het goed begrijp?
de nieuwe conrad 433 send/recieve modules zijn vandaag besteld dus hoop volgende week weer verder te kunnen.
nu dacht ik dat het aan 2 factoren kon liggen
1. ik heb de goedkoopste 433 modulles die er volgensmij te vinden zijn

2. mijn nieuw 2011 quigg aldi set heeft zoals fuzzi aangeeft over dat weerstation een andere codering?
nu vroeg ik me af of iemand ergens een code kent die alle ontvange signiaal weergeeft. zodat ik mischien beter zie wat er aan de hand is.
fuzzillogics liberarie. geeft ook pas signiaal weer als er 3 keer hetzelfde bericht binnenkomt.
dus als er teveel ruis is werkt het niet. en als er een andere codering is werkt het niet. als ik het goed begrijp?
de nieuwe conrad 433 send/recieve modules zijn vandaag besteld dus hoop volgende week weer verder te kunnen.
[ Voor 16% gewijzigd door Proxx op 25-02-2011 08:47 ]
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
De zender uit een draadloze deurbel werkt ook prima met de library! De 'echte' 433MHz zenders/ontvangers zijn al besteld; hiermee wil ik ook nog een paar andere merken met de library laten werken.

Op mijn server heb ik in c++,codeigniter en jquery mobile een webapp gemaakt om de action set te schakelen:


Op mijn server heb ik in c++,codeigniter en jquery mobile een webapp gemaakt om de action set te schakelen:


Ik heb net op die samenkopen actie een hoop spullen besteld. Ik ga eens wat schema's maken om thuis de rolgordijnen te kunnen sturen. Ik ben geen ster met elektronica maar dit moet toch wel te doen zijn met vallen en opstaan. Voor de zekerheid heb ik maar wat reserve componenten besteld.
Ik ga in ieder geval dit topic even bijhouden.
Ik ga in ieder geval dit topic even bijhouden.
You only need 2 tools, WD40 and Ducttape. WD40 when something doesn't move and it should, ducttape when something moves and it shouldn't.
ik krijg die 433mhz dingetjes van samenkopen niet aan de praat. waarschijnlijk dat ik iets fout doe.Acid_Schnitzel schreef op dinsdag 08 maart 2011 @ 00:43:
Ik heb net op die samenkopen actie een hoop spullen besteld. Ik ga eens wat schema's maken om thuis de rolgordijnen te kunnen sturen. Ik ben geen ster met elektronica maar dit moet toch wel te doen zijn met vallen en opstaan. Voor de zekerheid heb ik maar wat reserve componenten besteld.
Ik ga in ieder geval dit topic even bijhouden.
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
Verzenden duurt lang dus ik kan er voorlopig nog niet mee aan de gang maar ik heb 6 sets besteld, ik heb dus wat ruimte om te klooien.Proxx schreef op dinsdag 08 maart 2011 @ 18:10:
[...]
ik krijg die 433mhz dingetjes van samenkopen niet aan de praat. waarschijnlijk dat ik iets fout doe.
Er staat wel in de datasheet dat een goede antenne van belang is. En als ze dat er al bijzetten is het voor die chinese rommel waarschijnlijk HEEL erg van belang. Ligt het daar niet aan?
You only need 2 tools, WD40 and Ducttape. WD40 when something doesn't move and it should, ducttape when something moves and it shouldn't.
@hbertsen: welke draadloze deurbel is dat?
You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?
Ik heb geen idee, staat geen merk oid op. Foto van de ontvanger:

[ Voor 55% gewijzigd door hberntsen op 08-03-2011 22:25 ]
Zowel de zender als ontvanger niet?Proxx schreef op dinsdag 08 maart 2011 @ 18:10:
[...]
ik krijg die 433mhz dingetjes van samenkopen niet aan de praat. waarschijnlijk dat ik iets fout doe.
Wat je kunt proberen is om te zien of er *iets* van nuttige data binnen lijkt te komen. Maak een sketch als volgt:
C:
1
2
3
4
5
6
7
8
9
10
11
12
| int ledPin = 13; int receiverPin = 12; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, digitalRead(receiverPin)); } |
Ervan uitgaande dat je een bordje hebt met een ledje aan pin 13, anders moet je er zelf even een aanhangen. Sluit de digitale uitgang van de ontvanger aan op pin 12. Antenne kun even je weglaten.

Ledje zal willekeurig snel gaan knipperen, omdat de ontvanger ruis ontvangt. Houd de zender lekker dichtbij. Als je nu een knop van een zender indruk zou het ledje veel constanter en "anders" zal branden. Het knippert nog steeds, maar zo snel dat het met het blote oog lastig is waar te nemen. Als je de knop loslaat zal het ledje heel even (in de orde van 0,1s ofzo) gedoofd blijven, omdat de automatische gain control van de ontvanger het signaal nog getemperd heeft.
Enfin, je moet iets van feedback krijgen als je de knoppen van afstandsbediening indrukt. Krijg je dat?
offtopic:
Wow dit is de eerste keer in bijna een jaar dat ik de Arduino er daadwerkelijk weer eens bij pak. En nu kwam ik er dus ook pas achter dat ik een ledje verkeerd om op de shield heb gesoldeerd.
Ik heb die shield vorig jaar in Japan gekocht, thuis in elkaar gesoldeerd, maar nog nooit aan testen toegekomen 
Wow dit is de eerste keer in bijna een jaar dat ik de Arduino er daadwerkelijk weer eens bij pak. En nu kwam ik er dus ook pas achter dat ik een ledje verkeerd om op de shield heb gesoldeerd.

Ik kwam net op sparkfun nog een link tegen naar een Arduino-ontvanger voor 433MHz weerstations. Geen of die La Crosse dingen hier ook te krijgen zijn of dat ze hier onder een andere naam (Cresta?) verkocht worden. Hoe dan ook interessant
[ Voor 8% gewijzigd door Fuzzillogic op 08-03-2011 22:43 ]
ik ben er mee aan het stoeien geweest en heb 2 ontvanger en 2 zenders. maar geen van de 2 ontvangen kon iets met codes die ik gevonden en aangepast had. dus had het eigenlijk weer aan de kant gelegd toen ik ergen gelezen had dat veel van die zenders uit china gewoon klinkklare rommel zijn.Fuzzillogic schreef op dinsdag 08 maart 2011 @ 22:22:
[...]
Zowel de zender als ontvanger niet?
Wat je kunt proberen is om te zien of er *iets* van nuttige data binnen lijkt te komen. Maak een sketch als volgt:
C:
1 2 3 4 5 6 7 8 9 10 11 12 int ledPin = 13; int receiverPin = 12; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, digitalRead(receiverPin)); }
Ervan uitgaande dat je een bordje hebt met een ledje aan pin 13, anders moet je er zelf even een aanhangen. Sluit de digitale uitgang van de ontvanger aan op pin 12. Antenne kun even je weglaten.
[afbeelding]
Ledje zal willekeurig snel gaan knipperen, omdat de ontvanger ruis ontvangt. Houd de zender lekker dichtbij. Als je nu een knop van een zender indruk zou het ledje veel constanter en "anders" zal branden. Het knippert nog steeds, maar zo snel dat het met het blote oog lastig is waar te nemen. Als je de knop loslaat zal het ledje heel even (in de orde van 0,1s ofzo) gedoofd blijven, omdat de automatische gain control van de ontvanger het signaal nog getemperd heeft.
Enfin, je moet iets van feedback krijgen als je de knoppen van afstandsbediening indrukt. Krijg je dat?
offtopic:
Wow dit is de eerste keer in bijna een jaar dat ik de Arduino er daadwerkelijk weer eens bij pak. En nu kwam ik er dus ook pas achter dat ik een ledje verkeerd om op de shield heb gesoldeerd.Ik heb die shield vorig jaar in Japan gekocht, thuis in elkaar gesoldeerd, maar nog nooit aan testen toegekomen
Ik kwam net op sparkfun nog een link tegen naar een Arduino-ontvanger voor 433MHz weerstations. Geen of die La Crosse dingen hier ook te krijgen zijn of dat ze hier onder een andere naam (Cresta?) verkocht worden. Hoe dan ook interessant
ik zal het vanavond eerst nog eens met met deze code proberen.
iig bedankt
BTW: mijn eerste soldeer setje had ik heel mooi alle ledjes verkeerd om zitten

alle rechter ledjes. haha
nouja nu kon ik bij mijn eerste soldeer projectje ook gelijk de desoldeer pomp uitproberen
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
@fuzzilogic
ik denk dat mijn KIKA setje van de aldi toch een andere codering heeft (het was ook te mooit om waar te zijn
)
maar met je laatste code zag ik inderdaad het ledje knipperen als ik op een knop drukte.
ik denk dat mijn KIKA setje van de aldi toch een andere codering heeft (het was ook te mooit om waar te zijn
maar met je laatste code zag ik inderdaad het ledje knipperen als ik op een knop drukte.
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
Kan nog steeds zijn dat de ontvanger te traag of te snel is. Maar de Show_received_code example geeft ook niks?Proxx schreef op donderdag 10 maart 2011 @ 18:15:
@fuzzilogic
ik denk dat mijn KIKA setje van de aldi toch een andere codering heeft (het was ook te mooit om waar te zijn)
maar met je laatste code zag ik inderdaad het ledje knipperen als ik op een knop drukte.
nee dat is het probleem. in de code staat dat hij 3 keer het zelfde moet ontvangen om het te weergeven. maar ik zie niets op de serial monitor.
net toch nog eens de set getest maar die werkt prima. dus de afstandsbediening is ook niet stuk
net toch nog eens de set getest maar die werkt prima. dus de afstandsbediening is ook niet stuk
[ Voor 25% gewijzigd door Proxx op 10-03-2011 20:30 ]
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
Ik heb mijn zender/ontvanger van samenkopen.net inmiddels ook binnen. De zender/ontvanger die ik binnengekregen heb zien er iets anders uit dan op dat plaatje. De zender heeft in ieder geval aardig wat meer bereik dan de deurbel-zender
.
Vanavond heb ik de code van een Flamingo set 'gekraakt'. Thuis heb ik 2 van deze setjes, één waar flamingo op de afstandsbediening staat, de ander zonder. De code lijkt veel op die van de action set.
De afstandsbedieningen:

RemoteSwitch.h:
RemoteSwitch.cpp:
Eigenlijk gebruikt hij twee verschillende periodusecs, ~310 en ~390. Voor zover ik vanavond getest heb werkt het echter prima zoals het in de code hierboven staat.
Vanavond heb ik de code van een Flamingo set 'gekraakt'. Thuis heb ik 2 van deze setjes, één waar flamingo op de afstandsbediening staat, de ander zonder. De code lijkt veel op die van de action set.
De afstandsbedieningen:

RemoteSwitch.h:
C++:
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
| /** * */ class FlamingoSwitch: RemoteSwitch { public: /** * Constructor * * @param pin output pin on Arduino to which the transmitter is connected * @param periodsec Duration of one period, in microseconds. Default is 320usec * @see RemoteSwitch */ FlamingoSwitch(unsigned short pin, unsigned int periodusec=320); /** * Send a on or off signal to a device. * * @param systemCode 5-bit addres (dip switches in remote). Range [0..31] * @param device Device to switch. Range: [A..E] (case sensitive!) * @param on True, to switch on. False to switch off, */ void sendSignal(unsigned short systemCode, char device, boolean on); /** * Generates the telegram (data) which can be used for RemoteSwitch::sendTelegram. * See sendSignal for details on the parameters * * @return Encoded data, including repeats and period duration. */ unsigned long getTelegram(unsigned short systemCode, char device, boolean on); }; |
RemoteSwitch.cpp:
C++:
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
| /************ * FlamingoSwitch ************/ FlamingoSwitch::FlamingoSwitch(unsigned short pin, unsigned int periodusec) : RemoteSwitch(pin,periodusec,3) { //Call contructor } void FlamingoSwitch::sendSignal(unsigned short systemCode, char device, boolean on) { sendTelegram(getTelegram(systemCode,device,on), _pin); } unsigned long FlamingoSwitch::getTelegram(unsigned short systemCode, char device, boolean on) { unsigned short trits[12]; device-=65; for (unsigned short i=0; i<5; i++) { //bits 0-4 contain address (2^5=32 addresses) trits[i]=(systemCode & 1)?0:2; systemCode>>=1; //bits 5-9 contain device. Only one trit has value 0, others have 2 (float)! trits[i+5]=(i==device?0:2); } //switch on or off trits[10]=(on?0:2); trits[11]=(!on?0:2); return encodeTelegram(trits); } |
Eigenlijk gebruikt hij twee verschillende periodusecs, ~310 en ~390. Voor zover ik vanavond getest heb werkt het echter prima zoals het in de code hierboven staat.
Ik kan nu ook een draadloze temperatuursensor uitlezen, dit is 'm: 
De zender verstuurt de data getal voor getal, 3 bits voor het eerste getal, 4bits voor het tweede getal en dan nog 4 bits voor het laatste getal. Aan het eind is er nog een checksum van 4 bits waarvan ik nog niet weet hoe deze opgebouwd is. Door alle combinaties te proberen kan ik zo ook zelf een temperatuur op het scherm zetten.
Een 1 (als bit) wordt verstuurd als 3x snel achter elkaar een puls, een 0 als één puls met langere wachttijd ertussen:

Om de temperatuur te ontvangen heb ik code voor de arduino, als iemand interesse heeft dan schoon ik 't even op en zet ik het online. Edit: staat 2 posts lager dus

De zender verstuurt de data getal voor getal, 3 bits voor het eerste getal, 4bits voor het tweede getal en dan nog 4 bits voor het laatste getal. Aan het eind is er nog een checksum van 4 bits waarvan ik nog niet weet hoe deze opgebouwd is. Door alle combinaties te proberen kan ik zo ook zelf een temperatuur op het scherm zetten.
Een 1 (als bit) wordt verstuurd als 3x snel achter elkaar een puls, een 0 als één puls met langere wachttijd ertussen:

Om de temperatuur te ontvangen heb ik code voor de arduino, als iemand interesse heeft dan schoon ik 't even op en zet ik het online. Edit: staat 2 posts lager dus
@hberntsen
Ik heb zeker interesse, waarschijnlijk werkt dit ook wel met de unit die ik heb gekocht. Zou je de code online kunnen zetten?
Ik heb zeker interesse, waarschijnlijk werkt dit ook wel met de unit die ik heb gekocht. Zou je de code online kunnen zetten?
Dit is de code die de ontvangen temperatuur naar de serial console print. Hiermee kan je zelf een temperatuur versturen, je voert hier een reeks van nullen en eenen in die je kan vinden in analyse.xlsx. Voor 30 graden moet je dus 0000110000000011000000001111 versturen naar de arduino.
Edit:
Het script heeft een circulaire buffer die de tijd bevat hoe lang het signaal hoog of laag geweest is(de recording). Als het signaal meer dan 45000 microseconden laag is dan wordt er vanuit gegaan dat er een temperatuur ontvangen is. Om dit zeker te weten worden de eerste 3 tijden van het signaal getest. Dit zie je bovenaan de checktemp() functie. Mislukt dit dan wordt de melding fts getoond met bijbehorende tijden. Als ik de analyse excel file erbij pak is dat dit gedeelte:

Als je steeds het fts bericht krijgt heb je waarschijnlijk wel een signaal ontvangen(omdat er dus 45000 microseconden even niets ontvangen is) maar niet het juiste.
Edit:
Het script heeft een circulaire buffer die de tijd bevat hoe lang het signaal hoog of laag geweest is(de recording). Als het signaal meer dan 45000 microseconden laag is dan wordt er vanuit gegaan dat er een temperatuur ontvangen is. Om dit zeker te weten worden de eerste 3 tijden van het signaal getest. Dit zie je bovenaan de checktemp() functie. Mislukt dit dan wordt de melding fts getoond met bijbehorende tijden. Als ik de analyse excel file erbij pak is dat dit gedeelte:

Als je steeds het fts bericht krijgt heb je waarschijnlijk wel een signaal ontvangen(omdat er dus 45000 microseconden even niets ontvangen is) maar niet het juiste.
[ Voor 41% gewijzigd door hberntsen op 11-07-2011 19:21 ]
Ik heb momenteel een klik aan klik uit setje liggen uit de A-serie, zonder huiscodes dus. Daarnaast heb ik een RF zender en ontvanger van de Conrad.
Het lukt me wel om mijn handzender te ontvangen, de devicecode uit te lezen e.d. maar het zenden vanaf de Arduino wil maar niet lukken.
Het ontvangen is me gelukt met deze code.
Helaas deze code gericht op HomeEasy en niet op de KaKu setjes. De transmittercode werkt dan ook niet op de KaKu setjes. Is het iemand wel gelukt om de Arduino te laten praten met de Kaku A-serie?
Het lukt me wel om mijn handzender te ontvangen, de devicecode uit te lezen e.d. maar het zenden vanaf de Arduino wil maar niet lukken.
Het ontvangen is me gelukt met deze code.
Helaas deze code gericht op HomeEasy en niet op de KaKu setjes. De transmittercode werkt dan ook niet op de KaKu setjes. Is het iemand wel gelukt om de Arduino te laten praten met de Kaku A-serie?
Eerder in dit topic is er gesproken over het ontvangen en decoderen van cresta temperatuur sensoren.
Momenteel tracht ik een opstelling te maken met een arduino en een vellerman rx433 ontvanger.
De schakeling op zich werkt, en het ontvangen van KAKU signalen is geen probleem.
Het ontvangen van een cresta sensor is natuurlijk een heel ander verhaal, en voor zover ik kan vinden is er nog nergen een programma voor de arduino beschikbaar.... Mogelijk kan een bestaand programma aangepast worden, maar mijn programmeer kennis schiet enigsinds te kort...
Is er hier iemand die mijn project vlot kan trekken, of beschikt over de nodige informatie???
Momenteel tracht ik een opstelling te maken met een arduino en een vellerman rx433 ontvanger.
De schakeling op zich werkt, en het ontvangen van KAKU signalen is geen probleem.
Het ontvangen van een cresta sensor is natuurlijk een heel ander verhaal, en voor zover ik kan vinden is er nog nergen een programma voor de arduino beschikbaar.... Mogelijk kan een bestaand programma aangepast worden, maar mijn programmeer kennis schiet enigsinds te kort...
Is er hier iemand die mijn project vlot kan trekken, of beschikt over de nodige informatie???
Volgens mij is het enige wat die A series kan een code aannemen die verzonden wordt door een afstandbediening. Het protocol is verder compleet hetzelfde. Ik heb gebruik gemaakt van de RemoteSwitch bibliotheek van Randy Simons, hier te downloaden, om KaKu signalen te verzenden.Raegin schreef op vrijdag 01 april 2011 @ 16:56:
Ik heb momenteel een klik aan klik uit setje liggen uit de A-serie, zonder huiscodes dus. Daarnaast heb ik een RF zender en ontvanger van de Conrad.
Het lukt me wel om mijn handzender te ontvangen, de devicecode uit te lezen e.d. maar het zenden vanaf de Arduino wil maar niet lukken.
Het ontvangen is me gelukt met deze code.
Helaas deze code gericht op HomeEasy en niet op de KaKu setjes. De transmittercode werkt dan ook niet op de KaKu setjes. Is het iemand wel gelukt om de Arduino te laten praten met de Kaku A-serie?
Ik probeer de ontvanger die in een elro set zit aan te sluiten op mijn pc. Ik heb ondertussen met de code van piepersnijder software gebouwd dat ik mijn elro ontvangers kan besturen vanaf mijn pc (via de rs232 poort en de velleman tx433n.
Wat ik dus wil doen is 1 van de ontvangers aan mijn pc hangen zodat de pc kan weten welke lamp aan of uit is geschakeld.
In de elro ontvanger zit een 3pins ontvanger. Heeft iemand ervaring met deze aan te sluiten?
Wat ik dus wil doen is 1 van de ontvangers aan mijn pc hangen zodat de pc kan weten welke lamp aan of uit is geschakeld.
In de elro ontvanger zit een 3pins ontvanger. Heeft iemand ervaring met deze aan te sluiten?
Ik heb die bibliotheek gebruikt inderdaad maar het is me tot dusver niet gelukt iets te schakelen. Kun je in de code je devicecode aangeven en het kanaal dat je aan of uit wilt zetten (0, 1 of 2)?sunoke schreef op zaterdag 02 april 2011 @ 21:41:
[...]
Volgens mij is het enige wat die A series kan een code aannemen die verzonden wordt door een afstandbediening. Het protocol is verder compleet hetzelfde. Ik heb gebruik gemaakt van de RemoteSwitch bibliotheek van Randy Simons, hier te downloaden, om KaKu signalen te verzenden.
ik bumb dit topic nog maar even omdat ik er weer niet uit kom.



dit keer heb ik een setje van de action gekocht. en ben al een stuk verder. mijn vorige setje van de aldi kon ik niet eens de code in de serial monitor krijgen. (rolling code ofzoiet) met het nieuwe setje van impuls lukt dit nu wel.
show received codes..
nu heb ik fuzzilogic remote switch licht show gebruikt. en probeer ik codes te zenden. mijn setje reageert hier niet op. nu dacht ik dat mijn zender misschien stuk is. dus heb ik zijn lichtshow script aangepast dat hij zelf codes moet zenden en dan mijn codes moet weergeven met show_received_codes script. nu zie ik dat hij hele andere codes uitzend als dat mijn impulse setje nodig heeft.
0=systemcode A/B = ontvanger zoals fuzzilogic aangeeft.
wie kan mij helpen?



dit keer heb ik een setje van de action gekocht. en ben al een stuk verder. mijn vorige setje van de aldi kon ik niet eens de code in de serial monitor krijgen. (rolling code ofzoiet) met het nieuwe setje van impuls lukt dit nu wel.
show received codes..
code:
1
2
3
4
5
6
7
| A: Code: 265353, period duration: 150us. B: Code: 266325, period duration: 153us. C: Code: 266649, period duration: 153us. D: Code: 266757, period duration: 152us. |
nu heb ik fuzzilogic remote switch licht show gebruikt. en probeer ik codes te zenden. mijn setje reageert hier niet op. nu dacht ik dat mijn zender misschien stuk is. dus heb ik zijn lichtshow script aangepast dat hij zelf codes moet zenden en dan mijn codes moet weergeven met show_received_codes script. nu zie ik dat hij hele andere codes uitzend als dat mijn impulse setje nodig heeft.
0=systemcode A/B = ontvanger zoals fuzzilogic aangeeft.
code:
1
2
3
4
5
6
7
8
9
10
11
| 0A0BCode: 530952, period duration: 191us. 1ACode: 352833, period duration: 191us. 1BCode: 353805, period duration: 191us. 2ACode: 470931, period duration: 191us. 2BCode: 471903, period duration: 191us. 3ACode: 293784, period duration: 191us. 3BCode: 294756, period duration: 191us. 4ACode: 510297, period duration: 191us. 4BCode: 511269, period duration: 191us. 5ACode: 333150, period duration: 191us. 5BCode: 334122, period duration: 191us. |
wie kan mij helpen?
[ Voor 28% gewijzigd door Proxx op 31-05-2011 19:43 ]
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
Ik heb net mijn remote open gesloopt (ja, gesloopt. Een schroef zat vast en door het gefrot ook zo afgesleten dat geweld overbleef) om te zien of de mijne anders is. Maar nee.. Ik zou een foto kunnen maken, maar die zou identiek zijn aan die van jou, inclusief bureautextuur! Enige verschil is dat ik alleen DIP switch 1 op ON heb staan, de rest op OFF. Probeer dat eens?
ok ik zal morgen even dip switches gaan verzetten. gisteren heb ik alleen ontvanger b op dip 1 gehad.
sorry voor de moeite en je kapotte ab
sorry voor de moeite en je kapotte ab
Proxx wijzigde deze reactie 31-07-2015 13:37 (1337%)
Sorry voor de crosspost maar het kaku topic lijkt dood, dus probeer ik hier nog even opnieuw:
Ik heb een arduino Duemilanove met een ethernet shield.
ik zou graag via een kaku systeem een lamp willen schakelen. Ik wil echter niet de afstandsbediening openen omdat ik momenteel 0,0 verstand heb van electronica.
Ik zie dat er op http://www.samenkopen.net/action_products/445422/801557 momenteel in inkoopactie is van 433 mhz zenders en ontvangers. Kan ik hier iets van gebruiken om die codes van de kaku op te vangen? En als ik kijk voor een klik aan/uit stopcontact & zender combinate moet normaalgezien eender welke werkend te krijgen zijn zolang het maar op 433mhz stuurt, bent ik juist?
Indien ik dus een 1 kanaals zender 1000meter (voor data 3-12v) koop+1 kanaalsontvanger (voor data) + een kaku systeem kan ik verder met een arduino?
Ik heb een arduino Duemilanove met een ethernet shield.
ik zou graag via een kaku systeem een lamp willen schakelen. Ik wil echter niet de afstandsbediening openen omdat ik momenteel 0,0 verstand heb van electronica.
Ik zie dat er op http://www.samenkopen.net/action_products/445422/801557 momenteel in inkoopactie is van 433 mhz zenders en ontvangers. Kan ik hier iets van gebruiken om die codes van de kaku op te vangen? En als ik kijk voor een klik aan/uit stopcontact & zender combinate moet normaalgezien eender welke werkend te krijgen zijn zolang het maar op 433mhz stuurt, bent ik juist?
Indien ik dus een 1 kanaals zender 1000meter (voor data 3-12v) koop+1 kanaalsontvanger (voor data) + een kaku systeem kan ik verder met een arduino?
Hoi, ik heb zelf ook geen verstand van electronica, maar heb me met info uit dit topic en het internet inmiddels aardig weten te redden met m'n Arduino en KaKu apparatuur.fjskmdl2 schreef op dinsdag 07 juni 2011 @ 22:12:
ik zou graag via een kaku systeem een lamp willen schakelen. Ik wil echter niet de afstandsbediening openen omdat ik momenteel 0,0 verstand heb van electronica.
In de allereerste post van dit topic kun je de RemoteSwitch library downloaden. In het zipje zit o.a. een afbeelding van een Arduino met 433MHz zender en ontvanger en hoe je de boel aansluit. Ik heb gewoon gedaan wat ik op het plaatje zag en dat werkt bij mij prima.
De zendmodule is de TX433N en de ontvanger is de RX433N. Ik heb ze gewoon bij de lokale electronicaboer gekocht. Ik kan me niet voorstellen dat er simpelere manieren zijn. Ik dacht in eerste instantie ook dat ik beter af zou zijn met het slopen van een afstandsbediening, maar gewoon wat onderdeeltjes op een breadboard prikken is toch een stuk makkelijker. Met de RemoteSwitch library hoef je echt niet te weten hoe alles werkt, alleen maar hoe je het voor je eigen doeleinden kunt ombouwen. Hoop dat dit helpt.
[ Voor 14% gewijzigd door nephilimcrt op 20-06-2011 15:39 ]
Tapping progress on the shoulder and saying: "More forwards, please!".
Het heeft even (jaar of 2) geduurd, but at last: de CrestaReceiver!
De Cresta-weerstationnetjes, verkrijgbaar bij o.a. Kijkshop, werken zoals bekend ook op 433MHz. Oopsje heeft een tijd geleden reversed-engineerd documentatie hier gepost. Het was me al eerder gelukt om het zenden te simuleren, maar ontvangen was een grotere klus.
De Cresta sketch doet dat nu. Als je zo'n Cresta-zender hebt, dan moet je het zeker even proberen
Setup: hang de (digitale) uitgang van je 433MHz-receiver aan Arduino pin 2, start de sketch en kijk naar de COM-monitor (115200 baud). Even wachten, en presto:

De code is beta/preview. Ik wil het (ooit) integreren met de KaKu-library, zodat je ze beide gelijktijdig kunt gebruiken. Ook hoor ik graag of het wel/niet werkt. Ik heb getest met de standaard RX433, maar ook met de receiver-module die ik uit een Cresta basisstation "verworven" heb. (Zie fotootje in de zip). De laatste lijkt wat beter te werken, wellicht omdat deze een betere antenne heeft en uiteraard gemaakt is voor de zender.
De Cresta-weerstationnetjes, verkrijgbaar bij o.a. Kijkshop, werken zoals bekend ook op 433MHz. Oopsje heeft een tijd geleden reversed-engineerd documentatie hier gepost. Het was me al eerder gelukt om het zenden te simuleren, maar ontvangen was een grotere klus.
De Cresta sketch doet dat nu. Als je zo'n Cresta-zender hebt, dan moet je het zeker even proberen
Setup: hang de (digitale) uitgang van je 433MHz-receiver aan Arduino pin 2, start de sketch en kijk naar de COM-monitor (115200 baud). Even wachten, en presto:

De code is beta/preview. Ik wil het (ooit) integreren met de KaKu-library, zodat je ze beide gelijktijdig kunt gebruiken. Ook hoor ik graag of het wel/niet werkt. Ik heb getest met de standaard RX433, maar ook met de receiver-module die ik uit een Cresta basisstation "verworven" heb. (Zie fotootje in de zip). De laatste lijkt wat beter te werken, wellicht omdat deze een betere antenne heeft en uiteraard gemaakt is voor de zender.
Verwijderd
Misschien een wat domme vraag, maar toch: zitten al die sensors/kaku-units op exact dezelfde frequentie? Of anders: hoe kan men zoveel verschillende signalen ontvangen met eenzelfde 433Mhz-receiver?
even heel erg overgesimplificeerd:Verwijderd schreef op maandag 11 juli 2011 @ 13:04:
Misschien een wat domme vraag, maar toch: zitten al die sensors/kaku-units op exact dezelfde frequentie? Of anders: hoe kan men zoveel verschillende signalen ontvangen met eenzelfde 433Mhz-receiver?
Je stuurt niet AAN naar 1 module.
Maar op de hele band stuur je AAN KANAAL X DEVICE X
Iedereen luistert maar discard de data gewoon als het niet voor hem is
Zojuist ook eens aan de gang gegaan met een setje. Echter ik krijg het niet zo snel aan de praat...
Ik heb een ontvanger en zender module liggen van ebay en een set quigg schakelaars met afstandsbediening (al enkele jaren oud, ooit bij de Aldi gekocht).
Ik sluit met met dit 'probleem' dus aan bij @Proxx
Om even in zijn voetsporen te treden, ik heb de methode van @Fuzzillogic geprobeerd om te kijken of er uberhaupt iets binnen komt door een LED te triggeren aan de hand van een digitalRead van de ontvanger pin.
Dit werkt dus prima, de LED brand constant, echter als ik een knop in druk op de AB gaat hij even uit knipperen. Dit duidt er dus op dat hij wel iets ontvangt.
Waarschijnlijk worden de codes van deze remote dus niet gedecodeerd door het voorbeeld programma aangezien ze niet herkend worden.
Is er iets dat ik kan doen om toch de codes te achterhalen? Kan ik bijvoorbeeld de pulsecode met een digitalRead opslaan om zo alle knoppen te 'leren' en te herkennen?
Anders moet ik toch maar eens de Action binnen lopen en eens kijken wat een nieuw setje daar kost...
Ik heb een ontvanger en zender module liggen van ebay en een set quigg schakelaars met afstandsbediening (al enkele jaren oud, ooit bij de Aldi gekocht).
Ik sluit met met dit 'probleem' dus aan bij @Proxx
Om even in zijn voetsporen te treden, ik heb de methode van @Fuzzillogic geprobeerd om te kijken of er uberhaupt iets binnen komt door een LED te triggeren aan de hand van een digitalRead van de ontvanger pin.
Dit werkt dus prima, de LED brand constant, echter als ik een knop in druk op de AB gaat hij even uit knipperen. Dit duidt er dus op dat hij wel iets ontvangt.
Waarschijnlijk worden de codes van deze remote dus niet gedecodeerd door het voorbeeld programma aangezien ze niet herkend worden.
Is er iets dat ik kan doen om toch de codes te achterhalen? Kan ik bijvoorbeeld de pulsecode met een digitalRead opslaan om zo alle knoppen te 'leren' en te herkennen?
Anders moet ik toch maar eens de Action binnen lopen en eens kijken wat een nieuw setje daar kost...
@tomtommie: als het voorbeeld "show_received_code" ook geen reactie geeft dan is het systeem of je ontvanger niet compatible... Setje van Action kostte me €10. Blokker was €15.
Ik kan natuurlijk geen garantie geven dat het altijd werkt: het kan best zijn dat ze nu andere modelletjes hebben. show_received_code is code-agnostisch en kan ook resultaat geven voor remotes die standaard niet herkend worden, zoals de Elro.
Ik kan natuurlijk geen garantie geven dat het altijd werkt: het kan best zijn dat ze nu andere modelletjes hebben. show_received_code is code-agnostisch en kan ook resultaat geven voor remotes die standaard niet herkend worden, zoals de Elro.
Bij de Action verkopen ze dit weerstation. Veel andere weerstations hebben dezelfde zender (in ieder geval de behuizing), komt ie ook overeen met die Cresta waar je dit werkend op hebt? Of valt er te verwachten dat ze hetzelfde taaltje spreken?
Edit: Die van hberntsen in "433MHz-communicatie met microcontrollers" komt dus overeen. Ik ga het eens proberen.
Edit: Die van hberntsen in "433MHz-communicatie met microcontrollers" komt dus overeen. Ik ga het eens proberen.
[ Voor 20% gewijzigd door -Tim- op 11-07-2011 16:09 ]
Verwijderd
Ha, toevallig, ik wilde ook met de "Thierry Mugler" van Action aan de gang gaan. Hou me op de hoogte, Tim!
Met de "Thierry Mugler" krijg ik met de code van hbernsten slechts onderstaande output:
fts: f7780f10972f8536
fts: f236f124f8156
fts: f880f2172f880
fts: f904f2152f892
fts: f888f2160f892
fts: f892f2168f876
fts: f8000f10108f9900
fts: f248g356f1716
Het is wel iets (de Crestacode van Fuzzilogic doet niks op deze zender), maar volgens mij is het slechts rauwe data aangezien in de code staat
"} else { //some debugging to adjust the signal timing
Serial.print("fts: ");
Wat moet ik hier nou veranderen om wel goede data te krijgen?
fts: f7780f10972f8536
fts: f236f124f8156
fts: f880f2172f880
fts: f904f2152f892
fts: f888f2160f892
fts: f892f2168f876
fts: f8000f10108f9900
fts: f248g356f1716
Het is wel iets (de Crestacode van Fuzzilogic doet niks op deze zender), maar volgens mij is het slechts rauwe data aangezien in de code staat
"} else { //some debugging to adjust the signal timing
Serial.print("fts: ");
Wat moet ik hier nou veranderen om wel goede data te krijgen?
@fuzzillogic bedankt voor de input! Klinkt helaas niet goed, ik zal eens kijken of ik een setje bij de Action kan krijgen.
Aan de andere kant, ik heb even die "thierry Mugler" code geprobeerd en deze poept dus wel mooi een code uit bij elke druk op de knop.
Als er een manier is om die data te decoden is en ik deze dus ook weer kan zenden zou mooi zijn!
Aan de andere kant, ik heb even die "thierry Mugler" code geprobeerd en deze poept dus wel mooi een code uit bij elke druk op de knop.
Als er een manier is om die data te decoden is en ik deze dus ook weer kan zenden zou mooi zijn!
Ik heb de originele post uitgebreid met de verklaring van fts. De ontvanger met display van de action is zo te zien een totaal andere als die ik heb(ik zie ook iets met luchtvochtigheid enzo).-Tim- schreef op maandag 11 juli 2011 @ 17:34:
Met de "Thierry Mugler" krijg ik met de code van hbernsten slechts onderstaande output:
fts: f7780f10972f8536
fts: f236f124f8156
fts: f880f2172f880
fts: f904f2152f892
fts: f888f2160f892
fts: f892f2168f876
fts: f8000f10108f9900
fts: f248g356f1716
Het is wel iets (de Crestacode van Fuzzilogic doet niks op deze zender), maar volgens mij is het slechts rauwe data aangezien in de code staat
"} else { //some debugging to adjust the signal timing
Serial.print("fts: ");
Wat moet ik hier nou veranderen om wel goede data te krijgen?
Verwijderd
Dat is aardig van meneer Mugler: hij heeft in het basisstation een keurig los ontvangstboardje gedaan, met met namen bij de pinnen! En dat voor E6,95
DATA en GND aan m'n geluidskaart gehangen, en dat ziet er zo uit.
't is een behoorlijk lang stuk data, natuurlijk verdubbeld door manchester, maar dan nog. Morgen na vijven ga ik weer verder
DATA en GND aan m'n geluidskaart gehangen, en dat ziet er zo uit.
't is een behoorlijk lang stuk data, natuurlijk verdubbeld door manchester, maar dan nog. Morgen na vijven ga ik weer verder
[ Voor 4% gewijzigd door Verwijderd op 11-07-2011 22:27 ]
Ah mooi het is je al heel wat gelukt dus. Heb hem ook open gehad en ook mij viel het ontvangstbordje op. De zender heeft echter ook een losse print, dus mensen die geen weken op een eBay zend/ontvang setje willen wachten: op naar de ActionVerwijderd schreef op maandag 11 juli 2011 @ 22:26:
Dat is aardig van meneer Mugler: hij heeft in het basisstation een keurig los ontvangstboardje gedaan, met met namen bij de pinnen! En dat voor E6,95![]()
DATA en GND aan m'n geluidskaart gehangen, en dat ziet er zo uit.
't is een behoorlijk lang stuk data, natuurlijk verdubbeld door manchester, maar dan nog. Morgen na vijven ga ik weer verder
Ik was even in de buurt van de Action, kon het niet laten om toch een setje draadloze schakelaars mee te nemen. Deze werken perfect met mijn Arduino! Alles even met de dip switches op kanaal 1 gezet en knipperen maar!
Ik heb het weerstation toch maar laten hangen, was even aan het twijfelen, maar ik ga dat toch niet gebruiken.
Ik heb het weerstation toch maar laten hangen, was even aan het twijfelen, maar ik ga dat toch niet gebruiken.
Verwijderd
Ik kan Thierry handmatig in Audacity decoderen (temperatuur, luchtvochtigheid), alleen negatieve temperaturen weet ik niet zeker, en 't vermoedelijke checksum heb ik nog niet door. Uitvoerigere beschrijving komt later.
Dit is de opbouw: links wat er op het display komt, rechts wat ik in Audacity zie. `S' is een gok.
Iedere 60s wordt het pakketje gestuurd, per keer 2x hetzelfde achterelkaar. De codering lijkt erg op die van hberntsen. Zijn 3x-pulsblok ontvang ik hier als één brede. Hier zie ik ook nog een blok dat breder is en tussen de pakketjes zit, een soort scheidingsding. Lijkt een 4x-pulsblok. Bij hem codeert ie 1, bij mij 0. En andersom. Diepe dank hberntsen voor je post, als ik dat niet geweten had had het me een hoop tijd gekost.
update: dit spuugt mijn software decoder uit. De opstelling is nu: bordje uit Thierry naar line-in, daarna door mijn code.
Dit is de opbouw: links wat er op het display komt, rechts wat ik in Audacity zie. `S' is een gok.
code:
1
2
3
4
5
| STt d Hh d d d d t t t t T T T S h h h h H H H H +25.9 @ 40% -- 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 +31.9 @ 42% -- 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 +25.8 @ 43% -- 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 +26.2 @ 57% -- 1 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 |
Iedere 60s wordt het pakketje gestuurd, per keer 2x hetzelfde achterelkaar. De codering lijkt erg op die van hberntsen. Zijn 3x-pulsblok ontvang ik hier als één brede. Hier zie ik ook nog een blok dat breder is en tussen de pakketjes zit, een soort scheidingsding. Lijkt een 4x-pulsblok. Bij hem codeert ie 1, bij mij 0. En andersom. Diepe dank hberntsen voor je post, als ik dat niet geweten had had het me een hoop tijd gekost.
update: dit spuugt mijn software decoder uit. De opstelling is nu: bordje uit Thierry naar line-in, daarna door mijn code.
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
| --1111 dddd tttt TTTS hhhh HHHH 0000 CCCC CCCC 1111 --1111 0001 1010 0100 1001 1100 0000 1011 1010 1111 25.8°C @ 39% --1111 0001 1010 0100 0001 1100 0000 0011 1110 1111 25.8°C @ 38% --1111 0001 1010 0100 0001 1100 0000 0011 1110 1111 25.8°C @ 38% --1111 0110 1010 0100 0110 1100 0000 0001 1111 1111 25.6°C @ 36% --1111 0110 1010 0100 0110 1100 0000 0001 1111 1111 25.6°C @ 36% --1111 1100 1010 0100 0110 1100 0000 1010 1010 1111 25.3°C @ 36% --1111 0000 1010 0100 0110 1100 0000 0100 1100 1111 25.0°C @ 36% --1111 0000 1010 0100 0110 1100 0000 0100 1100 1111 25.0°C @ 36% --1111 1110 0010 0100 0110 1100 0000 0001 1111 1111 24.7°C @ 36% --1111 1110 0010 0100 0110 1100 0000 0001 1111 1111 24.7°C @ 36% --1111 0010 0010 0100 1110 1100 0000 0110 1101 1111 24.4°C @ 37% --1111 0010 0010 0100 1110 1100 0000 0110 1101 1111 24.4°C @ 37% |
[ Voor 102% gewijzigd door Verwijderd op 12-07-2011 23:07 ]
Zo te zien wordt er door de Thierry 5 bytes aan data verstuurd waarvan de bitjes "omgedraaid" zijn
Je laatste reeks is orgineel:
1111 0010
0010 0100
1110 1100
0000 0110
1101 1111
als ik de bitjes dan omdraai
0100 1111
0010 0100
0011 0111
0110 0000
1111 1011
dan op zoek naar de juiste BCD-code:
4 ?
2 4
3 7
? ?
? ?
Levert in ieder geval iets met 24,4 en 37 op...
Je laatste reeks is orgineel:
1111 0010
0010 0100
1110 1100
0000 0110
1101 1111
als ik de bitjes dan omdraai
0100 1111
0010 0100
0011 0111
0110 0000
1111 1011
dan op zoek naar de juiste BCD-code:
4 ?
2 4
3 7
? ?
? ?
Levert in ieder geval iets met 24,4 en 37 op...
Verwijderd
Sorry als ik niet duidelijk was (ik wilde toen even bondig m'n resultaten dumpen en weer doorgaan), maar de codering was me al duidelijk hoor, ik bedoelde het zo:
Links staat wat er op het display is, rechts staan de ontvangen bits. De eerste regel omschrijft hoe de informatie links (display) aan de rechterkant (bits) overeenkomt: S=sign; T=1e getal temperatuur; t=2e getal, d=digit temperatuur, H=1e humidity, h=2e humidity.
Nu staat aan de rechterkant onder `d d d d' 1001, en da's de 9 onder de d aan de linkerkant. Onder `H H H H' rechts staat 0010, en da's de 4 onder de H links. Et cetera. Klopt perfect. Ook in m'n 2e wat langere dump. Daar heb ik trouwens in de legenda ook CCCCCCCC toegevoegd, het checksum.
code:
1
2
| STt d Hh d d d d t t t t T T T S h h h h H H H H +25.9 @ 40% -- 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 |
Links staat wat er op het display is, rechts staan de ontvangen bits. De eerste regel omschrijft hoe de informatie links (display) aan de rechterkant (bits) overeenkomt: S=sign; T=1e getal temperatuur; t=2e getal, d=digit temperatuur, H=1e humidity, h=2e humidity.
Nu staat aan de rechterkant onder `d d d d' 1001, en da's de 9 onder de d aan de linkerkant. Onder `H H H H' rechts staat 0010, en da's de 4 onder de H links. Et cetera. Klopt perfect. Ook in m'n 2e wat langere dump. Daar heb ik trouwens in de legenda ook CCCCCCCC toegevoegd, het checksum.
[ Voor 4% gewijzigd door Verwijderd op 14-07-2011 10:00 ]
Sorry, was hier in het verleden wel eens mee bezig geweest. Was me niet meteen duidelijk dat je al zover was...
Kun je de sourcecode voor de Thierry ergens posten dat vindt ik dan wel interresant om eens een keer naar te kijken.
Kun je de sourcecode voor de Thierry ergens posten dat vindt ik dan wel interresant om eens een keer naar te kijken.
[ Voor 3% gewijzigd door DashHunter op 14-07-2011 12:51 ]
Verwijderd
@proxx..
Print opdruk is verkeerd . Je moet op de gnd spanning zetten en op de Vcc de massa.
Dat was iig bij mijn zendertjes zo maar die heb ik vorig jaar gekocht bij niels. Of dat inmiddels verandert is weet ik niet, alleen dat het bij mij zo was.
Als je de zendertjes van niels bedoelt dan weet ik ws waarom.ik krijg die 433mhz dingetjes van samenkopen niet aan de praat. waarschijnlijk dat ik iets fout doe.
Print opdruk is verkeerd . Je moet op de gnd spanning zetten en op de Vcc de massa.
Dat was iig bij mijn zendertjes zo maar die heb ik vorig jaar gekocht bij niels. Of dat inmiddels verandert is weet ik niet, alleen dat het bij mij zo was.
Verwijderd
Thierry sensor -> receiver uit basisstation -> geluidskaart -> "C#-in-C-style-voor-portability"-code -> Gnuplot =

Verwijderd
Jahoor, het is wel C#, maar eenvoudig te porten. Ik heb tellertje gemaakt die de lengte van de pulsjes (dus bv. 107 als het signaal 107 samples lang hoog was) doorgeeft aan deze state machine:DashHunter schreef op donderdag 14 juli 2011 @ 12:46:
Kun je de sourcecode voor de Thierry ergens posten dat vindt ik dan wel interresant om eens een keer naar te kijken.
C#:
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
51
52
53
54
55
56
57
58
59
| int nzeroes = 0; string buffer = ""; //feed pulse lengths to this method public void handlePulse(int len) { char c = decodePulseLength(len); switch (state) { case State.Idle: if (c == '0') setState(State.Preamble); break; case State.Preamble: if (c == 'S' && nzeroes >= preamble_ones) setState(State.Content); else if (c == '0') nzeroes++; else state = State.Idle; break; case State.Content: if (c == '0' || c == '1') { buffer += c; if (buffer.Length == 40) { handleContent(buffer); setState(State.Idle); } } else { Console.WriteLine("FSM: 0/1 corrupted content"); setState(State.Idle); } break; } } void setState(State newstate) { switch (newstate) { case State.Preamble: nzeroes = 1; break; case State.Content: buffer = ""; break; } state = newstate; } |
En dit ding classificeert de pulse: is het een 1,0, S-eperator of een U-nknown. De constanten zijn afhankelijk van het aantal samples/seconde.
C#:
1
2
3
4
5
6
7
8
9
10
| char decodePulseLength(int l) { if (l >= S_MIN && l < S_MAX) return 'S'; if (l >= Z_MIN && l < Z_MAX) return '0'; if (l >= O_MIN && l < O_MAX) return '1'; return 'u'; } |
"handleContent" leest de bitjes uit de buffer, maakt er getalletjes van en toont 't op het scherm.
Overigens lukt het me niet om het checksum te ontcijferen. Het is in ieder geval geen CRC. Als iemand zich verveelt wil ik wel wat data dumpen om te puzzelen.
Dank voor de code, ik ga binnenkort hier verder mee experimenteren voor het maken van een temperatuurlogger.Verwijderd schreef op maandag 18 juli 2011 @ 10:54:
[...]
Jahoor, het is wel C#, maar eenvoudig te porten. Ik heb tellertje gemaakt die de lengte van de pulsjes (dus bv. 107 als het signaal 107 samples lang hoog was) doorgeeft aan deze state machine:
Overigens lukt het me niet om het checksum te ontcijferen. Het is in ieder geval geen CRC. Als iemand zich verveelt wil ik wel wat data dumpen om te puzzelen.
Wat betreft de checksum, heb je al iets geprobeerd met het optellen van de bytes of "reversed" bytes of waarden te XOR-en?
Ik durf het haast niet te vragen, maar wanneer zal een kant-en-klaar scriptje om de Thierry uit te lezen op de Arduino beschikbaar zijn?
Verwijderd
@dashhunter: het lijkt op samenvoegingen en verschuivingen van sommen over de nibbles. Er zitten duidelijke patronen in, met hier en daar een uitzondering. Ik heb geen idee wanneer die uitzondering optreedt, ik zie het niet. Ik heb het eigenlijk vooralsnog opgegeven, het had mooi geweest om het volledig te reverse-engineeren, maar het is zo wel genoeg geweest.
@tim: ik ben een soort van elektronica-herintreder, ik prutste met Atmels voordat er Arduino's bestonden, toen jaren niet, tot een paar weken geleden. Ik heb helemaal geen spulletjes. Ik wil wat bordjes uit Amerika laten komen, maar ik weet niet hoe lang dat duurt. Als iemand haast heeft mag ie ook z'n Arduino doneren
@tim: ik ben een soort van elektronica-herintreder, ik prutste met Atmels voordat er Arduino's bestonden, toen jaren niet, tot een paar weken geleden. Ik heb helemaal geen spulletjes. Ik wil wat bordjes uit Amerika laten komen, maar ik weet niet hoe lang dat duurt. Als iemand haast heeft mag ie ook z'n Arduino doneren
De afgelopen dagen veel lopen testen met de remoteswitch library en bijbehorende voorbeelden...
Vreemd genoeg krijg ik met geen mogelijkheid de ELRO setjes via de ELRO switch werkend...
Wanneer ik de onderstaande hardcoded test uitvoer werkt alles prima..
Senddata(1694,315); // Aan
Delay(2000);
Senddata(1698,315); // Uit
Deze waarden komen overeen met Huiscode 31, kanaal B, periode 315
Wanneer ik nu de Elro switch probeer middels de volgende code gebeurt er niets...
elroSwitch.sendSignal(31,'B', true);
Delay(2000);
elroSwitch.sendSignal(31,'B',false);
Ik heb de gehele library al doorlopen, maar kan nergens een oorzaak van dit probleem vinden??
Is er iemand hier die hier iets over kan zeggen?
Alvast bedankt!
UPDATE: Ik heb het script nogmaals geladen, dit keer via de arduino versie 22. Hierna werkt het bovenstaande wel... blijft wel vreemd, waarschijnlijk ergens een domme fout gemaakt.
Toch zat ik nog eens in de RemoteSwitch::sendTelegram void te kijken, en het verbaast mij dat hier in de code maar gebruik gemaakt wordt van 12 trits. Dit terwijl de elro gebruik maakt van 15 trits...
Onderstaande uit de sendTelegram:
for (unsigned short i=0; i<12; i++) {
dataBase4<<=2;
dataBase4|=(data%3);
data/=3;
}
Volgens mij moet in bovenstaande de 12 verandert worden in 15 om de elro's goed te kunnen laten werken...
Vreemd genoeg krijg ik met geen mogelijkheid de ELRO setjes via de ELRO switch werkend...
Wanneer ik de onderstaande hardcoded test uitvoer werkt alles prima..
Senddata(1694,315); // Aan
Delay(2000);
Senddata(1698,315); // Uit
Deze waarden komen overeen met Huiscode 31, kanaal B, periode 315
Wanneer ik nu de Elro switch probeer middels de volgende code gebeurt er niets...
elroSwitch.sendSignal(31,'B', true);
Delay(2000);
elroSwitch.sendSignal(31,'B',false);
Ik heb de gehele library al doorlopen, maar kan nergens een oorzaak van dit probleem vinden??
Is er iemand hier die hier iets over kan zeggen?
Alvast bedankt!
UPDATE: Ik heb het script nogmaals geladen, dit keer via de arduino versie 22. Hierna werkt het bovenstaande wel... blijft wel vreemd, waarschijnlijk ergens een domme fout gemaakt.
Toch zat ik nog eens in de RemoteSwitch::sendTelegram void te kijken, en het verbaast mij dat hier in de code maar gebruik gemaakt wordt van 12 trits. Dit terwijl de elro gebruik maakt van 15 trits...
Onderstaande uit de sendTelegram:
for (unsigned short i=0; i<12; i++) {
dataBase4<<=2;
dataBase4|=(data%3);
data/=3;
}
Volgens mij moet in bovenstaande de 12 verandert worden in 15 om de elro's goed te kunnen laten werken...
[ Voor 29% gewijzigd door iEase op 30-07-2011 22:04 ]
Na wat ik hier heb gezien begon het bij mij ook te kriebelen om eens een remote switch aan een arduino te hangen.
Ik heb metzelf net setjes on/off van Chacon (Brico, Belgie) gekocht (EMW200TC). Enkele keren schakelen ze goed (twee van de drie getest), en dan was de fun eraf: ongeacht of ik ze aan of af zet, er komt steeds stroom door. Je hoort ook geen relay meer (slecht een hele zachte tik als je schakelt). Het ledje gaat wel aan/uit, maar verder geen effect. Iemand een idee waar dit aan zou kunnen liggen?
Ik heb metzelf net setjes on/off van Chacon (Brico, Belgie) gekocht (EMW200TC). Enkele keren schakelen ze goed (twee van de drie getest), en dan was de fun eraf: ongeacht of ik ze aan of af zet, er komt steeds stroom door. Je hoort ook geen relay meer (slecht een hele zachte tik als je schakelt). Het ledje gaat wel aan/uit, maar verder geen effect. Iemand een idee waar dit aan zou kunnen liggen?
Neepsmaaswinkel schreef op zaterdag 30 juli 2011 @ 12:45:
Onderstaande uit de sendTelegram:
for (unsigned short i=0; i<12; i++) {
dataBase4<<=2;
dataBase4|=(data%3);
data/=3;
}
Volgens mij moet in bovenstaande de 12 verandert worden in 15 om de elro's goed te kunnen laten werken...
@Jasper: Is er nog nieuws betreffende de arduino code om te communiceren met de RFXCOM plugin?
Ik heb momenteel het geheel hier draaien met een arduino voor ontvangst voor RF sensoren, en een arduino voor het versturen van RF signalen.. Hierbij zou het een mooie uitbreiding zijn als dit te koppelen is aan Homeseer mbv de RFXcom plugin...
Ik heb momenteel het geheel hier draaien met een arduino voor ontvangst voor RF sensoren, en een arduino voor het versturen van RF signalen.. Hierbij zou het een mooie uitbreiding zijn als dit te koppelen is aan Homeseer mbv de RFXcom plugin...
Verwijderd
Update wbt Thierry: ik heb nu een draaiende xmega die met het bordje uit het basisstation de sensor ontvangt. Of het eenvoudig is om het naar een andere Atmel te porten, ik vrees van niet. Ik gebruik een analog comparator, omdat het signaal te zwak is (of lijkt? Ik heb geen scope helaas). Die heb ik met de xmega's hippe event-systeem aan een timer geknoopt. Wat kan zo'n xmega veel, en wat is het een hoop werk om uit te zoeken, maar als het allemaal juist zit is het wél elegant!
[ Voor 44% gewijzigd door Verwijderd op 04-08-2011 14:49 ]
Momenteel heb ik de elro codes icm met de remotswitch library en ethernetshield goed aan de praat. Voor wat extra betrouwbaarheid heb ik aan de bestaande code nog een watchdog toegevoegd aangezien de arduino met ethernetshield nog wel eens zonder reden wil stoppen.
Dit weekend ga ik aan de slag om meerdere types aan te kunnen sturen via url. Hierna is het verzendgedeelte compleet, en blijft nog 1 groot deel over: Ontvangen en decoderen.
Aangezien ik het geheel graag laat werken met Homeseer is een ontvanger noodzakelijk. Dit om eventuele schakeling met de gewone afstandbediening te kunnen detecteren. Hiernaast gebruik ik een aantal magneetcontacten als deursignalering welke ik ook moet kunnen uitlezen...
Helaas vind ik nergens een goede decodering om binnen de remoteswitch library te kunnen gebruiken. De remotereceiver.h geeft alleen signaal en pulseduur weer, maar ik moet de daadwerkelijke code zien te achterhalen (Huiscode, Unitcode, Aan/Uit).
Mocht iemand hier enige ervaring mee hebben, dan is alle info welkom! Dit aangezien ik zelf nog geen oplossing weet...
Dit weekend ga ik aan de slag om meerdere types aan te kunnen sturen via url. Hierna is het verzendgedeelte compleet, en blijft nog 1 groot deel over: Ontvangen en decoderen.
Aangezien ik het geheel graag laat werken met Homeseer is een ontvanger noodzakelijk. Dit om eventuele schakeling met de gewone afstandbediening te kunnen detecteren. Hiernaast gebruik ik een aantal magneetcontacten als deursignalering welke ik ook moet kunnen uitlezen...
Helaas vind ik nergens een goede decodering om binnen de remoteswitch library te kunnen gebruiken. De remotereceiver.h geeft alleen signaal en pulseduur weer, maar ik moet de daadwerkelijke code zien te achterhalen (Huiscode, Unitcode, Aan/Uit).
Mocht iemand hier enige ervaring mee hebben, dan is alle info welkom! Dit aangezien ik zelf nog geen oplossing weet...
Het KIKA systeem werkt niet met de homeseer systemen. Via homeseer (de huidige apparatuur verkrijgbaar bij de karwei) kun je een code laten inleren. Ik laat daardoor de code inleren van mijn kika afstandsbediening.
Echter het aanschakelen werkt prima maar het uitschakelen werkt niet met deze afstandsbediening. Hierdoor wordt de vertaling maken naar de arduino omgeving erg lastig. Heeft iemand hiervoor een oplossing?
Echter het aanschakelen werkt prima maar het uitschakelen werkt niet met deze afstandsbediening. Hierdoor wordt de vertaling maken naar de arduino omgeving erg lastig. Heeft iemand hiervoor een oplossing?
Bij deze dan mijn eerste bijdrage: RF433 Zender via Ethernet. Hierbij wordt gebruik gemaakt van de arduino en een officiele ethernetschield.
Het onderstaande script maakt gebruik van de Remoteswitch & Remotereceiver library.
LET OP: om het script goed te laten werken moeten het Mac, IP, Gateway en Subnet adress aangepast worden naar de juiste waarden.
Voorbeelden van verzenden signalen:
http://url-adruino/KAKU/31/A/1/ //KAKU, Housecode 31, Unit A, Aan
http://url-arduino/ELRO/25/A/0/ //ELRO, Housecode 25, Unit A, Uit
http://url-arduino/IMPULS/15/C/1/ //IMPULS, Housecode 15, Unit C, Aan.
Hierbij moet de RF433 Zender datalijn worden aangesloten op de digitale pin 8
De data output van de RF433 ontvanger moet worden aangesloten op de digitale pin 2
De + van de RF433 ontvanger moet worden aangesloten op de digitale pin 5
NB: De code is nog niet klaar dus er kan hier en daar nog wat overtollig informatie staan...
Het ontvangstgedeelte van de Remotereceiver library werkt in deze sketch ook, maar geeft alleen response over de seriele poort. Hierbij geeft deze de code en periode weer.
Nog te doen:
- Ontvangen signalen ELRO, IMPULS, KAKU, omzetten naar Huiscode, Unitcode, Aan/Uit
- NEW KAKU ondesteuning voor ontvangen
Het onderstaande script maakt gebruik van de Remoteswitch & Remotereceiver library.
LET OP: om het script goed te laten werken moeten het Mac, IP, Gateway en Subnet adress aangepast worden naar de juiste waarden.
Voorbeelden van verzenden signalen:
http://url-adruino/KAKU/31/A/1/ //KAKU, Housecode 31, Unit A, Aan
http://url-arduino/ELRO/25/A/0/ //ELRO, Housecode 25, Unit A, Uit
http://url-arduino/IMPULS/15/C/1/ //IMPULS, Housecode 15, Unit C, Aan.
Hierbij moet de RF433 Zender datalijn worden aangesloten op de digitale pin 8
De data output van de RF433 ontvanger moet worden aangesloten op de digitale pin 2
De + van de RF433 ontvanger moet worden aangesloten op de digitale pin 5
NB: De code is nog niet klaar dus er kan hier en daar nog wat overtollig informatie staan...
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
| #define ENABLE_WATCHDOG 1 #define ENABLE_DEBUG_PRINT 1 #include <RemoteReceiver.h> #include <RemoteSwitch.h> #include <Client.h> #include <Ethernet.h> #include <Server.h> #include <SPI.h> #if ENABLE_WATCHDOG #include <avr/wdt.h> #endif #if ENABLE_WATCHDOG long previousWdtMillis = 0; // Used for WDT long wdtInterval = 5000; // USed for WDT #endif // Initialize the Ethernet server library static uint8_t mac[6] = { 0x90, 0xA2, 0xDA, 0x00, 0x6C, 0x24 }; static uint8_t ip[4] = { 192, 168, 1, 90 }; static uint8_t gateway[4] = { 192, 168, 1, 1 }; byte mask[] = {255, 255, 255, 0}; Server server(80); unsigned long transData; //-- Commands and parameters (sent by browser) -- char cmd[15]; char param1[5]; char param2[5]; char param3[5]; //char Type[5]; int HouseCode; unsigned short Switch; #define bufferMax 128 int bufferSize; char buffer[bufferMax]; int txPort = 8; int rxPower = 5; //Intantiate new Switch remotes, use pin 8 ActionSwitch actionSwitch(8); KaKuSwitch kaKuSwitch(8); BlokkerSwitch blokkerSwitch(8); ElroSwitch elroSwitch(8); void setup() { #if ENABLE_WATCHDOG MCUSR=0; wdt_enable(WDTO_8S); // setup Watch Dog Timer to 8 sec previousWdtMillis = millis(); #endif pinMode(rxPower, OUTPUT); digitalWrite(rxPower,HIGH); Serial.begin(115200); Ethernet.begin(mac, ip); // startup ethernet service delay(1000); server.begin(); //See example Show_received_code for info on this RemoteReceiver::init(0, 3, translateCode); } void loop() { #if ENABLE_WATCHDOG if ((millis() - previousWdtMillis) > wdtInterval) { previousWdtMillis = millis(); wdtInterval = 5000; wdt_reset(); #if ENABLE_DEBUG_PRINT Serial.println("wdt reset"); #endif } #endif Client client = server.available(); if (client) { WaitForRequest(client); ParseReceivedRequest(); //while(RemoteReceiver::isReceiving()); digitalWrite(rxPower,LOW); PerformRequestedCommands(); delay(7); digitalWrite(rxPower,HIGH); client.flush(); client.stop(); } //DEBUG test below /* kaKuSwitch.sendSignal(24,'A',true); //wait 2 seconds delay(2000); kaKuSwitch.sendSignal(24,'A',false); delay(5000); */ } void translateCode(unsigned long receivedCode, unsigned int period) { //Enabled interrupts, so RemoteReceiver::isReceiving() can be used. interrupts(); #if ENABLE_DEBUG_PRINT Serial.print(receivedCode); Serial.print(","); Serial.println(period); #endif } void WaitForRequest(Client client) // Sets buffer[] and bufferSize { bufferSize = 0; while (client.connected()) { if (client.available()) { char c = client.read(); if (c == '\n') break; else if (bufferSize < bufferMax) buffer[bufferSize++] = c; else break; } } #if ENABLE_DEBUG_PRINT PrintNumber("bufferSize", bufferSize); #endif } void ParseReceivedRequest() { #if ENABLE_DEBUG_PRINT Serial.println("in Parse ReceivedRequest"); Serial.println(buffer); #endif //Received buffer contains "GET /cmd/param1/param2 HTTP/1.1". Break it up. char* slash1; char* slash2; char* slash3; char* slash4; char* space2; slash1 = strstr(buffer, "/") + 1; // Look for first slash slash2 = strstr(slash1, "/") + 1; // second slash slash3 = strstr(slash2, "/") + 1; // third slash slash4 = strstr(slash3, "/") + 1; // fourth slash space2 = strstr(slash3, " ") + 1; // space after second slash (in case there is no third slash) if (slash4 > space2) slash4=slash3; #if ENABLE_DEBUG_PRINT PrintString("slash1",slash1); PrintString("slash2",slash2); PrintString("slash3",slash3); PrintString("space2",space2); #endif // strncpy does not automatically add terminating zero, but strncat does! So start with blank string and concatenate. cmd[0] = 0; param1[0] = 0; param2[0] = 0; param3[0] = 0; strncat(cmd, slash1, slash2-slash1-1); strncat(param1, slash2, slash3-slash2-1); strncat(param2, slash3, slash4-slash3-1); strncat(param3, slash4, space2-slash4-2); #if ENABLE_DEBUG_PRINT PrintString("cmd",cmd); PrintString("param1",param1); PrintString("param2",param2); PrintString("param3",param3); #endif //Type = cmd; HouseCode =atoi(param1); Switch =atoi(param3); //Serial.println(param1); //server.print("Transmission received"); } void PerformRequestedCommands() { if (strcmp(cmd, "ELRO") == 0) { SendElro(); } else if (strcmp(cmd, "IMPULS") == 0) { SendImpuls(); } else if (strcmp(cmd, "KAKU") == 0) { SendKaku(); } else if (strcmp(cmd, "NEWKAKU") == 0) { SendNewKaku(); } else { server.println("HTTP/1.1 200 OK"); server.println("Content-Type: text/html"); server.println(); server.println("Unknown Device Type"); } //Clear values HouseCode = 0; Switch = 0; //Type = 0; } void SendElro() { if (Switch == 1){ //Wait for a free ether elroSwitch.sendSignal(HouseCode,param2[0],true); //return; } else if (Switch == 0) { //Wait for a free ether elroSwitch.sendSignal(HouseCode,param2[0],false); //return; } server.println("HTTP/1.1 200 OK"); server.println("Content-Type: text/html"); server.println(); server.println("ELRO Transmission sent"); } void SendImpuls() { if (Switch == 1){ //Wait for a free ether actionSwitch.sendSignal(HouseCode,param2[0],true); //return; } else if (Switch == 0) { //Wait for a free ether actionSwitch.sendSignal(HouseCode,param2[0],false); //return; } server.println("HTTP/1.1 200 OK"); server.println("Content-Type: text/html"); server.println(); server.println("IMPULS Transmission sent"); } void SendKaku() { if (Switch == 1){ kaKuSwitch.sendSignal(HouseCode,param2[0],true); //return; } else if (Switch == 0) { kaKuSwitch.sendSignal(HouseCode,param2[0],false); //return; } server.println("HTTP/1.1 200 OK"); server.println("Content-Type: text/html"); server.println(); server.println("KAKU Transmission sent"); } void SendNewKaku() { } #if ENABLE_DEBUG_PRINT void PrintString(char* label, char* str) { Serial.print(label); Serial.print("="); Serial.println(str); } void PrintNumber(char* label, int number) { Serial.print(label); Serial.print("="); Serial.println(number, DEC); } #endif |
Het ontvangstgedeelte van de Remotereceiver library werkt in deze sketch ook, maar geeft alleen response over de seriele poort. Hierbij geeft deze de code en periode weer.
Nog te doen:
- Ontvangen signalen ELRO, IMPULS, KAKU, omzetten naar Huiscode, Unitcode, Aan/Uit
- NEW KAKU ondesteuning voor ontvangen
Ik heb het grootste gedeelte doorgelezen van dit topic maar heb iets niet kunnen vinden of heb er overheen gelezen.
Op de site van rfxcom.com staat een tranceiver met LAN interface. Betekend dit dat als je dit apparaat aanschaft en aansluit op een switch en je zet de benodigde software op de pc dat je bekabeld naar de tranceiver commando's kan geven om bepaalde lampen of wat dan ook kan in of uit schakelen?
Zo ja, als je daar software voor hebt dat op android werkt, dat je dan de kaku kan bedienen vanaf je telefoon/tablet?
Nog even ter info, misschien is het handig om te weten, indien dit reeds bekend is, sorry.
Had ook reeds een vraag gesteld aan JBmedia over de Lightmanager Pro en de software "lightswitch".
Mijn pc staat boven en de Lightmanager Pro moet beneden en een usb kabel van ongeveer 15 meter is te lang. Een convertor van utp naar com zou niet werken volgens JBmedia. Je krijgt wel een virtuele compoort erbij op de pc. Ze zijn wel bezig om een wifi enabeld lightmanger pro uit te brengen, eind dit jaar, begin volgend jaar.
Op de site van rfxcom.com staat een tranceiver met LAN interface. Betekend dit dat als je dit apparaat aanschaft en aansluit op een switch en je zet de benodigde software op de pc dat je bekabeld naar de tranceiver commando's kan geven om bepaalde lampen of wat dan ook kan in of uit schakelen?
Zo ja, als je daar software voor hebt dat op android werkt, dat je dan de kaku kan bedienen vanaf je telefoon/tablet?
Nog even ter info, misschien is het handig om te weten, indien dit reeds bekend is, sorry.
Had ook reeds een vraag gesteld aan JBmedia over de Lightmanager Pro en de software "lightswitch".
Mijn pc staat boven en de Lightmanager Pro moet beneden en een usb kabel van ongeveer 15 meter is te lang. Een convertor van utp naar com zou niet werken volgens JBmedia. Je krijgt wel een virtuele compoort erbij op de pc. Ze zijn wel bezig om een wifi enabeld lightmanger pro uit te brengen, eind dit jaar, begin volgend jaar.
Teaser 

Ja, er is een mooier fontje mogelijk voor de cijfers, maar ik wil ook nog een temperatuurtrendindicator erbij maken en die kan ik nu maken met dezelfde characters als voor de cijfers.

Ja, er is een mooier fontje mogelijk voor de cijfers, maar ik wil ook nog een temperatuurtrendindicator erbij maken en die kan ik nu maken met dezelfde characters als voor de cijfers.
Jeeeh!!! Je cresta code werkt ook met de sensor van een Conrad DV928 weerstation. Dit is de eerste keer dat ik iets fatsoenlijks uit mijn arduino + receiver zie komen. Bedankt!
Wow! Dit is nou precies waar ik aan wilde gaan beginnen... Ik ga eens kijken of ik met jouw software uit de voeten kan! Het zou helemaal mooi zijn als e.e.a. met een android app op mijn telefoon te bedienen zou zijn. Er bestaan wel apps, maar zover ik weet alleen rondom bestaande (commerciele) oplossingen, zoals RFXCOM.psmaaswinkel schreef op zondag 07 augustus 2011 @ 09:29:
Bij deze dan mijn eerste bijdrage: RF433 Zender via Ethernet. Hierbij wordt gebruik gemaakt van de arduino en een officiele ethernetschield.
Het onderstaande script maakt gebruik van de Remoteswitch & Remotereceiver library.
LET OP: om het script goed te laten werken moeten het Mac, IP, Gateway en Subnet adress aangepast worden naar de juiste waarden.
Voorbeelden van verzenden signalen:
http://url-adruino/KAKU/31/A/1/ //KAKU, Housecode 31, Unit A, Aan
http://url-arduino/ELRO/25/A/0/ //ELRO, Housecode 25, Unit A, Uit
http://url-arduino/IMPULS/15/C/1/ //IMPULS, Housecode 15, Unit C, Aan.
Hierbij moet de RF433 Zender datalijn worden aangesloten op de digitale pin 8
De data output van de RF433 ontvanger moet worden aangesloten op de digitale pin 2
De + van de RF433 ontvanger moet worden aangesloten op de digitale pin 5
NB: De code is nog niet klaar dus er kan hier en daar nog wat overtollig informatie staan...
code:
1 .....
Het ontvangstgedeelte van de Remotereceiver library werkt in deze sketch ook, maar geeft alleen response over de seriele poort. Hierbij geeft deze de code en periode weer.
Nog te doen:
- Ontvangen signalen ELRO, IMPULS, KAKU, omzetten naar Huiscode, Unitcode, Aan/Uit
- NEW KAKU ondesteuning voor ontvangen
32 kWp PV + 54kWh ESS+ 7.5 kW Mitsubishi Ecodan
ik heb me sindskort ook maar eens in het diepe water van de Arduino's en 433MHz gegooid, aangezien ik nu een weerstationnetje heb (alleen temp), een draadloze bel, en een flink aantal draadloze stopcontacten 
Het hele verzenden/ontvangen werkt inmiddels goed: ik kan met de retransmitter sketch van Fuzzilogic al mijn stopcontacten schakelen. Echter komen we dan bij het volgende probleem uit
Ten eerste wil ik de mogelijkheid hebben om via mijn pc de stopcontacten te schakelen. Ik heb met C# een app gemaakt die in staat is om met de Arduino te kletsen, alleen heb ik geen idee hoe ik de codes (unsigned long) en periodes (unsigned int) door moet sturen. Ik heb het geprobeerd door aan de C# kant een UInt32 (unsigned long) en een UInt16 (unsigned int) met Bitconverter.GetBytes() naar bytes om te zetten, en die vervolgens te verzenden (6 bytes in 1x over de serial port gooien), maar dan lijken ze bij de Arduino in een andere volgorde aan te komen :x
Is er hier een betere manier voor?? Een standaard lib oid? Het idee is gewoon dat de Arduino als middleman optreed: via 433 ontvangen codes/periodes doorsturen naar de pc, en van de pc ontvangen codes doorsturen naar 433.
Ten 2e: ik heb een Alecto WS-1000 weerstationnetje, en ik heb geen idee wat voor code deze uitwerpt. Hoe kan ik het beste de code die uitgegooid wordt opvangen om te analyseren? Ik heb de tijd en de wil om uit te zoeken hoe het protocol in elkaar zit, maar ik heb geen idee hoe ik ervoor kan zorgen dat ik mooie 1tjes en 0tjes uit de Arduino krijg. Dit geldt dan natuurlijk ook voor de deurbel, al hoef ik daar weinig aan te decoden...
Het hele verzenden/ontvangen werkt inmiddels goed: ik kan met de retransmitter sketch van Fuzzilogic al mijn stopcontacten schakelen. Echter komen we dan bij het volgende probleem uit
Ten eerste wil ik de mogelijkheid hebben om via mijn pc de stopcontacten te schakelen. Ik heb met C# een app gemaakt die in staat is om met de Arduino te kletsen, alleen heb ik geen idee hoe ik de codes (unsigned long) en periodes (unsigned int) door moet sturen. Ik heb het geprobeerd door aan de C# kant een UInt32 (unsigned long) en een UInt16 (unsigned int) met Bitconverter.GetBytes() naar bytes om te zetten, en die vervolgens te verzenden (6 bytes in 1x over de serial port gooien), maar dan lijken ze bij de Arduino in een andere volgorde aan te komen :x
Is er hier een betere manier voor?? Een standaard lib oid? Het idee is gewoon dat de Arduino als middleman optreed: via 433 ontvangen codes/periodes doorsturen naar de pc, en van de pc ontvangen codes doorsturen naar 433.
Ten 2e: ik heb een Alecto WS-1000 weerstationnetje, en ik heb geen idee wat voor code deze uitwerpt. Hoe kan ik het beste de code die uitgegooid wordt opvangen om te analyseren? Ik heb de tijd en de wil om uit te zoeken hoe het protocol in elkaar zit, maar ik heb geen idee hoe ik ervoor kan zorgen dat ik mooie 1tjes en 0tjes uit de Arduino krijg. Dit geldt dan natuurlijk ook voor de deurbel, al hoef ik daar weinig aan te decoden...
@R0berto, er is verschil tussen little endian en big endian. x86 en AVR zijn beide little endian, ik verwacht dan ook dat het eerste item in je array de laagste byte is. Dus stel je hebt waarde 0xAABB, dan bevat item 0 de waarde 0xBB.
Met bitshifting krijg je de bytes op de juiste plek
Over die Alecto: je kunt Fuzzillogic in "433MHz-communicatie met microcontrollers" eens proberen. Als het werkt, dan heb je geluk gehad
Overigens ben ik nu ver met het schrijven van een nette library voor die Cresta-sensoren. Gebruik is dan net zo simpel als van de remote switches
En het leukste is dat het ook gelijktijdig te gebruiken is met de remote switch ontvanger. Ik hoop het dit weekende op bitbucket te kunnen plaatsen.
Met bitshifting krijg je de bytes op de juiste plek
code:
1
2
3
4
5
6
| unsigned long waarde = 0; waarde |= readByte(); waarde |= (readByte() << 8); waarde |= (readByte() << 16); waarde |= (readByte() << 24); |
Over die Alecto: je kunt Fuzzillogic in "433MHz-communicatie met microcontrollers" eens proberen. Als het werkt, dan heb je geluk gehad
Overigens ben ik nu ver met het schrijven van een nette library voor die Cresta-sensoren. Gebruik is dan net zo simpel als van de remote switches
Feest!
Ik heb net een nieuwe library-package online gezet.
RemoteSensor is nieuw. Deze library is voor het ontvangen en verzenden van data naar elektronische weerstations zoals die van Cresta. Maar hierboven bleek dat die van Conrad hetzelfde protocol gebruiken. Het is me goed gelukt (denk ik) om ook deze library heel eenvoudig in gebruik te maken.
InterruptChain is ook nieuw. Standaard kun je in Arduino maar één callback-functie aanroepen bij een interrupt. Met InterruptChain kun je er veel meer aan hangen. Met deze lib is het nu heel eenvoudig om data van zowel de switches als de sensors gelijktijdig te monitoren.
Ik heb mijn best gedaan om de code leesbaar te houden en van nuttige voorbeelden te voorzien. (Zie File -> examples -> <library> in de Arduino IDE)
Ook nieuw: ik gebruik nu Mercurial en BitBucket voor source code versioning en hosting. Zie https://bitbucket.org/fuzzillogic/433mhzforarduino. Je kunt daar direct de code clonen. De wiki is nog extreem leeg - ik had het te druk met documentatie tikken en testen. Bijdrages aan het project zijn zeker welkom!
Voor mensen die geen zin hebben in gedoe: directe download van de meest actuele versie.

Ik heb net een nieuwe library-package online gezet.
- RemoteSwitch v2.1.0
- RemoteSensor v1.0.0
- InterruptChain v1.0.0
RemoteSensor is nieuw. Deze library is voor het ontvangen en verzenden van data naar elektronische weerstations zoals die van Cresta. Maar hierboven bleek dat die van Conrad hetzelfde protocol gebruiken. Het is me goed gelukt (denk ik) om ook deze library heel eenvoudig in gebruik te maken.
InterruptChain is ook nieuw. Standaard kun je in Arduino maar één callback-functie aanroepen bij een interrupt. Met InterruptChain kun je er veel meer aan hangen. Met deze lib is het nu heel eenvoudig om data van zowel de switches als de sensors gelijktijdig te monitoren.
Ik heb mijn best gedaan om de code leesbaar te houden en van nuttige voorbeelden te voorzien. (Zie File -> examples -> <library> in de Arduino IDE)
Ook nieuw: ik gebruik nu Mercurial en BitBucket voor source code versioning en hosting. Zie https://bitbucket.org/fuzzillogic/433mhzforarduino. Je kunt daar direct de code clonen. De wiki is nog extreem leeg - ik had het te druk met documentatie tikken en testen. Bijdrages aan het project zijn zeker welkom!
Voor mensen die geen zin hebben in gedoe: directe download van de meest actuele versie.
Gaaf en leuk dat je er nog aan werkt! Ik heb het zelf een tijd geleden in de hoek gegooid omdat het veel te onbetrouwbaar was, misschien dat ik het nu weer eens oppik.
Van veel weerstations, Cresta, Conrad, Honeywell is Hideki de echte fabrikant. Deze gebruiken allemaal de zelfde sensoren.
Dat lijstje kan ik nog aanvullen met Mebus, Irox, en RSTwortelsoft schreef op maandag 19 september 2011 @ 20:55:
Van veel weerstations, Cresta, Conrad, Honeywell is Hideki de echte fabrikant. Deze gebruiken allemaal de zelfde sensoren.
Verwijderd
Het Thierry Mugler-weerstationnetje van de Action is nu in de aanbieding bij de Digros (6,99), voor wie zin heeft om goedkoop te prutsen.
In het kader van "eat your own dogfood" na al die jaren *eindelijk* maar eens gedaan waarom ik überhaupt ermee begonnen ben: basic home automation. Met de libraries nu lekker simpel! Niet alleen kan ik met de blokker-remote nu de lampen apart schakelen, ik heb ook 2 knoppen met arduino gemapt naar "alle lampen aan/uit". Tevens ook de knoppen van een ongebruikte Action remote gemapt, zodat ik nu met 2 remotes de boel kan bedienen. Nu hoef ik niet meer naar de andere kant van de kamer te lopen
Gelijktijdig speelt het ding repeater voor weerstation: de sensor hangt ongunstig en heeft te weinig bereik voor de plaats waar ik de ontvanger wil hebben.
Maar zo kwam ik er wel nog achter dat RemoteReceiver::isReceiving behoorlijk slecht werkte, as in, soms duurde het seconden voordat-ie door ging. Dat is nu aangepast en nu werkt het goed, voor zover ik kan testen. Download met link hierboven.
Was er iemand die een decoder heeft voor de nieuwe KaKu-signalen? Ik heb zo'n deur/raam-schakelaar hier, en ik wil dat lampen automatisch aangaan als ik thuiskom en het is donker
Maar zo kwam ik er wel nog achter dat RemoteReceiver::isReceiving behoorlijk slecht werkte, as in, soms duurde het seconden voordat-ie door ging. Dat is nu aangepast en nu werkt het goed, voor zover ik kan testen. Download met link hierboven.
Was er iemand die een decoder heeft voor de nieuwe KaKu-signalen? Ik heb zo'n deur/raam-schakelaar hier, en ik wil dat lampen automatisch aangaan als ik thuiskom en het is donker
Ik heb de KAKU set en met de aangeboden library werkt dit prima! Echter bij de learning devices zoals bij de Home easy producten werkt het niet naar behoren.
Situatieschets:
Ik leer de home easy schakelaar een code aan met een kaku afstandsbediening. Het aanschakelen werkt prima! Echter het uitschakelen werkt niet met de kaku afstandsbediening. Hierdoor wordt het voor mij dus erg lastig om deze code te gebruiken icm met aangeboden library. Heeft iemand een oplossing om home easy spul met learning codes via dezelfde library aan te sturen?
Situatieschets:
Ik leer de home easy schakelaar een code aan met een kaku afstandsbediening. Het aanschakelen werkt prima! Echter het uitschakelen werkt niet met de kaku afstandsbediening. Hierdoor wordt het voor mij dus erg lastig om deze code te gebruiken icm met aangeboden library. Heeft iemand een oplossing om home easy spul met learning codes via dezelfde library aan te sturen?
Ik ken Home Easy niet. Is dat een volle kaku-kloon? Je kunt eens proberen om direct een code te leren verzonden door de Arduino, dus zonder de omweg van de kaku-remote.
Het kan zijn dat de timing net even afwijkend is. Wat ik gemeten heb gebruikt KaKu een timing van 375µs. Je kunt daar eens mee spelen, door langere of kortere timing te gebruiken.
Dus ipv
gebruik je
Het kan zijn dat de timing net even afwijkend is. Wat ik gemeten heb gebruikt KaKu een timing van 375µs. Je kunt daar eens mee spelen, door langere of kortere timing te gebruiken.
Dus ipv
code:
1
| KaKuTransmitter kaKuTransmitter(11); |
gebruik je
code:
1
| KaKuTransmitter kaKuTransmitter(11, 300); // of nog minder / meer |
Ik zal dit inderdaad eens proberen, om met de frequentie te spelen. Home Easy is eigenlijk de 2.0 opvolger van KAKU. Met homeeasy (de zooi die je bij de karwei kan kopen) kun je de device zelf codes laten aanleren (en het apparaat kan er maximaal 7 onthouden).
Ik heb begrepen dat je de temperatuur op 3 tot 5 locaties kan meten.
Op dit moment wordt met het resultaat niets gedaan, leuk zou zijn als je bijvoorbeeld http://cgi.ebay.nl/TM-305...-Thermostat-/110708603796 kunt aansturen a.d.h van de huidige temperatuur. Zo kun je per kamer op een simpele manier met je arduino board de temperatuur regelen.
Op dit moment wordt met het resultaat niets gedaan, leuk zou zijn als je bijvoorbeeld http://cgi.ebay.nl/TM-305...-Thermostat-/110708603796 kunt aansturen a.d.h van de huidige temperatuur. Zo kun je per kamer op een simpele manier met je arduino board de temperatuur regelen.