Welche Verbindungsart ist die Einfachste?

Hallo in die Runde.

Ich bin auf der Suche nach einer möglichst einfachen Methode mehrere simple Sensoren - im einfachsten Fall Schaltkontakte - mit einen Arduino zu verbinden.
Es gibt keine Möglichkeit ein separates Kabel zu ziehen (das wäre ja auch zu einfach)!
Vorhanden ist einzig ein Stromanschluss 230V.
Jedem Schaltkontakt einen eigenen Arduino zu spendieren, ist eigentlich keine Option.

Idee Nr.1 wäre eine Funkverbindung (433Mhz o.ä.), jedoch sollte der Sender möglichst einfach und auch "günstig" sein.

Idee Nr.2 wäre die Aufmodulation eines Signales auf die Stromleitung. Aber auch hier sollte der Sender einfach, günstig und in diesem Fall auch sicher sein.

Die Frage ist nun, welchen Weg sollte man verfolgen. Im Netzt gibt es zu beiden viele Lösungsansätze, jedoch fehlen mir die Feedbacks und Erfahrungsberichte.

Welche Erfahrungen habt Ihr gemacht und womit?

Du solltest schon genau beschreiben, was du machen möchtest.

Eine 433 MHz-Funkverbindung ist eine einfache und preiswerte Lösung.
z.B. diese:

http://www.amazon.de/INHDBOX-Geeetech-Superheterodyne-Transmitter-Receiver/dp/B00YMMFJJO

Am Sender wird normalerweise auch ein Arduino benötigt, der die Daten des Sensors ausliest und dem Sender weiter gibt. Damit habe ich sehr gute Erfahrungen gesammelt.

Welche Sensoren sind das?
Wieviel Sensoren?
Was willst du schalten?

Das mit der Aufmodulation auf die Netzspannung kenne ich im Arduino-Umfeld nicht.

Edit:
Ich nutze diese Verbindung jetzt schon seit ca. 9 Monaten und übertrage damit einen Wasserstand einer Zisterne sowie eine Außentemperatur über ca. 35 Meter durch Betonwände hindurch. Vom Gartenhaus in den Keller und Wohnbereich.

Der Begriff Sensor ist hier eigentlich falsch.
Für den Anfang geht es darum 2-3 Schaltkontakte im Haus zu verteilen, die auf einen zentralen Arduino auflaufen und dort weitere Aktionen auslösen.

Das Problem besteht darin, dass es keine sinnvollen Kabelwege gibt.

Aus Fernost gibt es Funkmagnetschalter (eigentlich für Dunstabzugshauben gedacht) für Ca.20€ - das wäre ein etwas teurer aber denkbarer Ansatz.

touranie:
Aus Fernost gibt es Funkmagnetschalter (eigentlich für Dunstabzugshauben gedacht) für Ca.20€ - das wäre ein etwas teurer aber denkbarer Ansatz.

Wenn diese Funkmagnetschalter eine zugelassene Frequenz (433 MHz) nutzen, und der gesendete Code mit dem Arduino dekodierbar ist, könnte das funktionieren.

Dazu muss man aber wissen, was da rauskommt und welche Reichweite damit zu erreichen ist.
Da wirst du nicht drum herum kommen, ein Muster zu ordern und es entsprechend auszulesen.

Sende doch mal einen Link.

Ich habe das Teil hier im Auge - keine 5€...

https://www.amazon.de/dp/B00GGFZ6XO/ref=cm_sw_r_cp_awd_cdAIwbEXNQV49

Ich glaub ich bestell mal ein Muster. Mal schauen was es für so wenig Geld gibt (oder auch nicht)...

touranie:
Ich habe das Teil hier im Auge - keine 5€...

https://www.amazon.de/dp/B00GGFZ6XO/ref=cm_sw_r_cp_awd_cdAIwbEXNQV49

Ich glaub ich bestell mal ein Muster. Mal schauen was es für so wenig Geld gibt (oder auch nicht)...

Das sollte damit funktionieren.
Frequenz stimmt und den Code kannst du einstellen.

Also wenn der nicht total daneben liegt, kannst du den auch per Arduino auswerten.
Aber das sieht man genau, wenn der da ist.

Was du noch brauchst, ist ein Empfänger dazu. Dann nimm bitte diesen hier:

http://www.ebay.de/itm/RXB8-433Mhz-Superheterodyne-Wireless-Receiver-Module-Steady-for-Arduino-AVR-/231796160622?hash=item35f820b86e:g:x-kAAOSwZ1lWcm3v

der ist optimal.

Vielleicht overkill in deinem Fall, aber schau dir mal die Moteinos All about Moteino | LowPowerLab oder Anarduinos an.

Wenn du Wlan-Abdeckung hast, wären ESP8266 Module auch möglich. Sehr preiswert.

Er wollte nicht an jedem Punkt ein Arduino/Atmega einsetzen.

Eben.

Arduino/Atmega != ESP8266 :slight_smile:

Billiger als China Funkschaltermodule.
Zuverlässigkeit, da Handshake möglich, Kann ggf. sogar Funktions Check vom Arduino veranlasst werden.
Relativ flexibel für den Anschluss von Sensoren.

Also preislich unschlagbar sind ja die ESP8266 Module, welche auch direkt mit der Arduino IDE programmiert werden können. Hat den zufällig jemand ein paar Tipps oder Links, wie man mit denen untereinander kommunizieren oder ein Netzwerk aufbauen kann?

Alternativ kann ich dir den "Moteino" sehr empfehlen, wie bereits schon weiter oben erwähnt. Die verwenden die RFM12B oder noch besser die RFM69-Transciever, mit denen eine Kommunikation in beide Richtungen möglich ist. Eignen sich auch für batteriebetriebe Sensoren, falls du dir noch eine Wetterstation oder ähnliches bauen möchtest :slight_smile:

Wenn du die ESP82666 als Borads in der IDE installierst, bekommst du viele Beispiele angezeigt. Für deine Zwecke ideal ist, alle in Station-Mode per dhcp an einem AP angemeldet und den "Steuer"-Arduino per LAN Kabel dran.

Im AP dann feste Adressen per mac zuordnen, falls du vom Arduino aus eine Verbindung initiieren willst.
Als Protokoll gehen udp und tcp, im Prinzip kannst du die fast ansprechen, wie wenn sie seriell verbunden wären (ich meine jetzt nicht den AT-Modus).

Die ESP kann man dan per Arduino IDE fast genauso programmieren, wie einen normalen Arduino. Nut ist je nach Modell der Flash Vorgang etwas anders. Mann muss einen Pin auf Masse ziehen und danach resetten, um in den Bootloadermodus zu kommen. Nach dem Flashen den Pin wieder auf HIGH! Ideal zum rumprobieren ist sowas: Link BG, aus dem EU Lager für 9 Euro. Damit geht das Flashen vollautomatisch wie beim Arduino.
Für die einfachen Sensoren gehen dann die 5er Pack! oder mit mehr GPIO und externer Antenne die hier

Hi EIEspaniol,

Leider funktionieren die Links nicht. Mir ist nicht ganz klar, wie ich so einen ESP8266 programmiere ohne USB Anschluss und GPIOs?

...ach ja, und wie installiere ich ein ESP8266 in der IDE?

Der Monteino scheint auch sehr interessant. Hat damit schon wer Erfahrungen gesammelt. Welcher von denen ist zu empfehlen, wenn man WLAN und ein paar GPIOs braucht?

Damit die Links funktionieren, musst du die www. im Link löschen und auf Enter drücken

... ich habe heute erste Versuche gemacht mit diesem Magnetschalter:

https://www.amazon.de/dp/B00GGFZ6XO/ref=cm_sw_r_cp_awd_cdAIwbEXNQV49

und diesem 433Mhz Receiver:

http://www.ebay.de/itm/RXB8-433Mhz-Superheterodyne-Wireless-Receiver-Module-Steady-for-Arduino-AVR-/231796160622?hash=item35f820b86e:g:x-kAAOSwZ1lWcm3v

Ich habe hierfür die Library "RCSwitch.h" eingebunden und mal mit einer einfachen Demo begonnen. Der Arduino empfängt tatsächlich sogar etwas, nur komme ich an dieser Stelle leider nicht so richtig weiter.

Ich bekomme bei jedem Schaltvorgang folgendes im Seriellen Monitor angezeigt (ca. 20x pro Schaltvorgang):

Received 13927926 / 24bit Protocol: 1

Wie genau gehe ich mit dieser Information um und wie könnte ein Weg aussehen, diese Information mit einem einfachen Vorgang, wie das Einschalten der LED an Pin 13, zu verknüpfen?

Wenn das als Zahlenwert in eingang vorliegt

if (eingang == 0xD485F6) {digitalWrite(13,HIGH);} else {digitalWrite(13,LOW);}

Hallo,

weil mir das so langsam auffällt. Hat von den ganzen Home Automatisierungsleuten hier im Forum schon mal jemand an die Sicherheit gedacht? Nicht das da die teuersten/sichersten Türschlösser, Türen und Fenster verbaut werden und dann will man auf modern machen. Schaltet mit Funk irgendwelche Rollläden usw. automatisiert und macht es den Einbrechern am Ende noch leichter wie vorher. Weil alles unverschlüsselt durch die Luft funkt. Mit weniger Einbruchsspuren.
Nur mal so als Gedankenspiel eingewurfen.

Einbrecher werden wohl kaum eine individuelle Steuerung ausspionieren, um in ein normales Haus einzubrechen. Da sind Standardlösungen wahrscheinlich wesentlich anfälliger. Die reissen einfacher einen Plastikrolladen raus und hebeln das Fenster mit dem Kuhfuss auf.

Und Leute, die die Fähigkeiten hätten, das alles auszuspionieren und analysieren, die verdienen ihre Brötchen garantiert nicht mit einfachen Einbrüchen.

touranie:
und diesem 433Mhz Receiver:

http://www.ebay.de/itm/RXB8-433Mhz-Superheterodyne-Wireless-Receiver-Module-Steady-for-Arduino-AVR-/231796160622?hash=item35f820b86e:g:x-kAAOSwZ1lWcm3v

Das war schon mal eine gute Wahl. :wink:

Ich habe hierfür die Library "RCSwitch.h" eingebunden und mal mit einer einfachen Demo begonnen. Der Arduino empfängt tatsächlich sogar etwas, nur komme ich an dieser Stelle leider nicht so richtig weiter.
Ich bekomme bei jedem Schaltvorgang folgendes im Seriellen Monitor angezeigt (ca. 20x pro Schaltvorgang):
Received 13927926 / 24bit Protocol: 1
Wie genau gehe ich mit dieser Information um und wie könnte ein Weg aussehen, diese Information mit einem einfachen Vorgang, wie das Einschalten der LED an Pin 13, zu verknüpfen?

Der Vorschlag von agmue ist schon mal richtig, ich habe den hier nur vervollständigt und mit dem richtigen Code versehen.

void loop() {
 if (mySwitch.available()) {
   int value = mySwitch.getReceivedValue();
   if (value == 13927926)
   {
     digitalWrite(13, HIGH);
   }
   else
   {
     digitalWrite(13, LOW);
   }
 }
 mySwitch.resetAvailable();
}