243 892 läst · 1 010 svar
244k läst
1,0k svar
Bygga egna sensorer - Hemautomation
Tja.. du får nog helt enkelt försöka läsa och förstå exemplen jag skapat. Utgå ifrån reläexemplet.
http://www.mysensors.org/build/relay
Sedan försöker du få in denna för tryckknapparna.
http://www.mysensors.org/build/binary
Sist luftfuktighet.
http://www.mysensors.org/build/humidity
http://www.mysensors.org/build/relay
Sedan försöker du få in denna för tryckknapparna.
http://www.mysensors.org/build/binary
Sist luftfuktighet.
http://www.mysensors.org/build/humidity
hek skrev:
Så pass mycke hängde jag faktiskt med... Men sen va det ju stopp..
Är det ingen annan här som redan har försökt eller lyckats att få i hop flera olika sensorer på en å samma arduino?
En bra början för mig skulle ju absolut kunna vara att få till mera tryckknappar
hek skrev:
Skrattar.. Ja mina kunskaper i programering är ju Noll, Så försöka klura ut va jag skall kombinera för att detta skulle funka efter mina önskemål kändes lite för mycke för mina kunskaper
Haha,...
Från nivå noll kan man ju bara bli bättre!
Om du går metodiskt till väga kommer du lyckas.
Presentera dina sensorer i setup(). Dvs vad du kommer att rapportera värden på senare. Presentationen skickas när din sensor startas upp och kommer hjälpa veran att skapa rätt enhetstyper. Alla enheter du presenterar/skapar skall ha ett unikt barn-id som du också anger när du skickar data för den sensorn.
Om du te.x. kopplar in en tryckknapp på digitalingång 6. Du kanske också vill ge den samma barn-id (6). Så här skapar du presentationen i setup.
gw.sendSensorPresentation(6, S_LIGHT);
// Detta behövs också i setup för att förbeteda/konfigurera den digitala ingången på din arduino där du kopplar in din tryck-knapp.
digitalWrite(6,HIGH);
debouncer.attach(6);
debouncer.interval(5);
Vill du sedan rapportera värde är det bara att skicka "1" eller "0" med sendVariable så här. Som du ser anger jag barn-id även här.
gw.sendVariable(6, V_LIGHT, "1");
I BinarySwitch exemplet ser du även hur jag läser av den digitala ingången och skickar värdet. Jag ser även till att inte skicka samma värde flera gånger (bara förändringar) för att inte "flooda" radionätet och veran med meddelanden. Men det är samma princip som gäller för samtliga sensorer.
När du kombinerar flera sensorer förslår jag att du tar bort allt som har med "sovning" att göra för att minska komplexiteten. (I ditt fall har bara luftfuktighetssensors detta i exempelkoden).
Från nivå noll kan man ju bara bli bättre!
Om du går metodiskt till väga kommer du lyckas.
Presentera dina sensorer i setup(). Dvs vad du kommer att rapportera värden på senare. Presentationen skickas när din sensor startas upp och kommer hjälpa veran att skapa rätt enhetstyper. Alla enheter du presenterar/skapar skall ha ett unikt barn-id som du också anger när du skickar data för den sensorn.
Om du te.x. kopplar in en tryckknapp på digitalingång 6. Du kanske också vill ge den samma barn-id (6). Så här skapar du presentationen i setup.
gw.sendSensorPresentation(6, S_LIGHT);
// Detta behövs också i setup för att förbeteda/konfigurera den digitala ingången på din arduino där du kopplar in din tryck-knapp.
digitalWrite(6,HIGH);
debouncer.attach(6);
debouncer.interval(5);
Vill du sedan rapportera värde är det bara att skicka "1" eller "0" med sendVariable så här. Som du ser anger jag barn-id även här.
gw.sendVariable(6, V_LIGHT, "1");
I BinarySwitch exemplet ser du även hur jag läser av den digitala ingången och skickar värdet. Jag ser även till att inte skicka samma värde flera gånger (bara förändringar) för att inte "flooda" radionätet och veran med meddelanden. Men det är samma princip som gäller för samtliga sensorer.
När du kombinerar flera sensorer förslår jag att du tar bort allt som har med "sovning" att göra för att minska komplexiteten. (I ditt fall har bara luftfuktighetssensors detta i exempelkoden).
Tänkte byta från seriell till ethernetgateway men får fel i kompileringen!
Har bara ändrat ipadressen i sketchen.
EthernetGateway.ino: In function 'void setup()':
EthernetGateway:96: error: invalid conversion from 'uint8_t' to 'rf24_pa_dbm_e'
EthernetGateway:96: error: initializing argument 1 of 'void Gateway::begin(rf24_pa_dbm_e, uint8_t, rf24_datarate_e, void (*)(char*))'
EthernetGateway:96: error: invalid conversion from 'void (*)(char*)' to 'uint8_t'
EthernetGateway:96: error: initializing argument 2 of 'void Gateway::begin(rf24_pa_dbm_e, uint8_t, rf24_datarate_e, void (*)(char*))'
Nån som vet?
Har bara ändrat ipadressen i sketchen.
EthernetGateway.ino: In function 'void setup()':
EthernetGateway:96: error: invalid conversion from 'uint8_t' to 'rf24_pa_dbm_e'
EthernetGateway:96: error: initializing argument 1 of 'void Gateway::begin(rf24_pa_dbm_e, uint8_t, rf24_datarate_e, void (*)(char*))'
EthernetGateway:96: error: invalid conversion from 'void (*)(char*)' to 'uint8_t'
EthernetGateway:96: error: initializing argument 2 of 'void Gateway::begin(rf24_pa_dbm_e, uint8_t, rf24_datarate_e, void (*)(char*))'
Nån som vet?
@Hoffan
Länkade innan till en likadan fast svart från Elektrokit. Då jag inte hittade någon vit (även på Ebay) så gav jag upp. Så tack för länken. Å andra sidan vet jag inte om jag behöver någon nu, när jag nog når alla mina rum tack vare larminstallationen.
Länkade innan till en likadan fast svart från Elektrokit. Då jag inte hittade någon vit (även på Ebay) så gav jag upp. Så tack för länken. Å andra sidan vet jag inte om jag behöver någon nu, när jag nog når alla mina rum tack vare larminstallationen.
Hade det inte varit kul att implementera gräsklipparen i Hemautomationen.
Här är ett projekt där man använder Arduino att styra klipparen.
Kombinera detta med Henriks kod och kanske en kamera,så kan man sitta på Kanarieholmarna och köra klippare samt spana runt i trädgården.
http://www.ardumower.de/index.php/en/
Här är ett projekt där man använder Arduino att styra klipparen.
Kombinera detta med Henriks kod och kanske en kamera,så kan man sitta på Kanarieholmarna och köra klippare samt spana runt i trädgården.
http://www.ardumower.de/index.php/en/
Redigerat:
@Hek
Din binary switch example.. Måste man gör nått speciellt me detta för att det skall funka...
Får massa error på det när jag försöker testa det
BinarySwitchSensor:13: error: 'Sensor' does not name a type
BinarySwitchSensor:14: error: 'Bounce' does not name a type
BinarySwitchSensor.ino: In function 'void setup()':
BinarySwitchSensor:19: error: 'gw' was not declared in this scope
BinarySwitchSensor:27: error: 'debouncer' was not declared in this scope
BinarySwitchSensor:33: error: 'S_DOOR' was not declared in this scope
BinarySwitchSensor.ino: In function 'void loop()':
BinarySwitchSensor:40: error: 'debouncer' was not declared in this scope
BinarySwitchSensor:46: error: 'gw' was not declared in this scope
BinarySwitchSensor:46: error: 'V_TRIPPED' was not declared in this scope
Din binary switch example.. Måste man gör nått speciellt me detta för att det skall funka...
Får massa error på det när jag försöker testa det
BinarySwitchSensor:13: error: 'Sensor' does not name a type
BinarySwitchSensor:14: error: 'Bounce' does not name a type
BinarySwitchSensor.ino: In function 'void setup()':
BinarySwitchSensor:19: error: 'gw' was not declared in this scope
BinarySwitchSensor:27: error: 'debouncer' was not declared in this scope
BinarySwitchSensor:33: error: 'S_DOOR' was not declared in this scope
BinarySwitchSensor.ino: In function 'void loop()':
BinarySwitchSensor:40: error: 'debouncer' was not declared in this scope
BinarySwitchSensor:46: error: 'gw' was not declared in this scope
BinarySwitchSensor:46: error: 'V_TRIPPED' was not declared in this scope