[Projekt] Funksensornetzwerk für das RPi SmartHome Control

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hier geht es um die Entwicklung eines Funknetzwerkes für Sensoren für die RPi SmartHome Control Haussteuerungssoftware.

    Geplante Funktionen:
    - Sensorstationen mit Arduino Pro-mini oder Nano für einen oder mehrere Sensoren
    - Funkübertragung mittels 2,4GHz Funksendern
    - Unterstützung von möglichst vielen Sensoren pro Sensorpunkt (Anzahl und verschiedene Sensoren) [geplant DS18B20, DS18S20, DS1822, DTH11, DHT22, BMP085, LDR, PIR]
    - nach Möglichkeit Batteriebetrieben
    - Anbindung an das RPi SmartHome Control, über ein Python Skript welches die Sensordaten die über die Serielle Schnittstelle vom Arduino kommen für das SHC aufbereitet

    TODO:
    [+] Komponenten zum Testen und Entwickeln bestellen
    [+] DS18B20, DS18S20, DS1822 Sensoren testen (Temperatur)
    [+] DHT11, DHT22 Sensoren testen (Temperatur, Luftfeuchtigkeit)
    [+] BMP085 Sensoren testen (Temperatur, Luftdruck, Standorthöhe [errechnet aus Luftdruck])
    [+] LDR Sensoren testen (Lichtsensoren)
    [ ] PIR Sensoren testen (Bewegungssensoren)
    [+] Regensensor testen
    [ ] 2,4GHz Funkübertragung testen
    [ ] Schaltpläne entwickeln
    [ ] Komponentenlisten erstellen
    [ ] Konfigurierbaren Sketch erstellen (bzw. im Idealfall Sketch Konfigurator entwickeln der einen Sketch ausgibt der auf den jeweiligen Anwendungsfall zugeschnitten ist)
    [ ] Python Skript welches die Seriellen Daten vom empfangenden Arduino liest und für das SHC aufbereitet
    [ ] Stromverbrauch der Sensorpunkte ermitteln (Batteriebetrieb/Netzteil)?

    (+ bedeutet das der Punkt erledigt ist)

    Einmal editiert, zuletzt von agent47 (16. März 2014 um 13:58)

  • [Projekt] Funksensornetzwerk für das RPi SmartHome Control? Schau mal ob du hier fündig wirst!

  • Hi,

    interessant und deckt sich teilweise mit meinem aktuellen Monstervorhaben ( Die Idee -> hier <- und die aktuelle Stufe -> hier <- ).
    Im Moment habe ich mich allerdings an TFT-Displays und anderen Anzeigeteilen festgebissen.

    Ich bleib' aber hier mal dran und trete Dir - falls gewünscht und/oder notwendig - gerne hilfreich in die Seite.
    Ich hoffe, Du pflegst diesen Thread auch - also aktualisieren und so.
    Womit kann ich im Moment dienen?
    Arduino MEGA, Arduino UNO, Arduino Pro Mini, ATMEGA nativ (mit LUNA programmierbar),
    Sensoren zum "Sau fuadan",
    Ein bisschen Programmierfahrung allerdings Schwerpunkt C.

    Gutes Gelingen,
    -ds-

  • @dreamshader

    ganz so umfangreich habe ich das ganze nicht geplant. Aktuell ist hier noch nicht viel zu machen da ich noch auf die Lieferungen aus China warte und imo mehr Planungssachen mache und nach Möglichkeiten und Lösungen suche.

    @all

    Aktueller Stand/Vorüberlegungen:

    Momentan bin ich am überlegen und teilweise ausprobieren was die beste Konfiguration für die Funksender/Empfänger ist.

    Funktechnik:
    Variante 1:
    2,4GHz Transciver (ab etwa 1€ bei eBay erhältlich)[3,3V notwendig + Spannungswandler da der Arduino 5V hat]+ Stabilere Funkübertragung
    - anscheinend müssen die Antennen direkt aufeinander ausgerichtet sein
    - anscheinen können nur 5 Sender pro Antenne Empfangenen werden

    Variante 2:
    433MHz Sender/Empfänger (ab etwa 1€ bei eBay erhältlich) [5V oder mehr notwendig für eine saubere Funkübertragung]
    + einfachste Verbindungsart
    + keine Begrenzung der Senderanzahl pro Empfänger
    - eventuell reichen 5V nicht für eine saubere Sendeleistung aus (muss erst getestet werden)

    Sender:
    Variante 1:
    Arduino Nano (bei eBay ab etwa 6€ erhältlich)
    Rasierplatine mit Sensoren und Arduino (Preis hängt von den eingesetzten Sensoren ab)
    + USB Anschluss beim Arduino auf der Platine (Programm einspielen und Stromversorgung über USB Netzteil direkt möglich [z.B.: Netzteil vom Raspberry Pi])

    Variante 2:
    Arduino Pro Mini (bei eBay ab etwa 3€ erhältlich) + einmalig einen USB FTDI Adapter (bei eBay oder Amazon ab etwa 6€ erhältlich)
    Rasierplatine mit Sensoren und Arduino (Preis hängt von den eingesetzten Sensoren ab)
    + Batteriebetrieb eventuell möglich (allerdings unwahrscheinlich, aber das müssen ein paar Tests zeigen)
    - kein direkte USB Anschluss (für das einspielen von Programmen wird ein FTDI Adapter auf USB benötigt, Stromversorgung mit Netzteil wird aufwendiger)
    - keine 3,3V bei 5V Variante (zusätzlicher Spannungsregler nötig)

    Variante 3: (ähnlich wie im Projekt Batteriebetriebene Funksensoren beschrieben)
    ATtiny (bei eBay ab etwa 3€ erhältlich)
    Rasierplatine mit Sensoren und Arduino (Preis hängt von den eingesetzten Sensoren ab)
    + sehr kompakter Chip der kaum Strom benötigt
    + Batteriebetrieb möglich
    - Programm aufspielen verhältnismäßig aufwendig
    - verhältnismäßig wenige Anschlüsse für Sensoren (min. 4 sind aber möglich)


    Ich denke ich werden die Varianten 1 und 3 parallel weiter verfolgen für den Betrieb mit Netzteil und vielen Sensoren den Nano und für den Batteriebetrieb den ATtiny.
    Für mich selbst benötige ich 5 Sensorpunkte, 4 nur mit einem DHT22 Sensor und einen mit DHT22, LDR und BMP085, da würden denke ich beide Varianten laufen wobei beim Batteriebetrieb die frage ist ob da ein Jahr ohne Batteriewechsel möglich ist.

    Nachtrag:
    Zusätzlich werde ich noch die Möglichkeit für Regen und Feuchtigkeitssensoren einbinden, da bei mir immer die Blumen vertrocknen das mir das angezeigt wird wann ich gießen soll.

    Einmal editiert, zuletzt von agent47 (13. März 2014 um 05:17)

  • Es gibt noch eine Variante 4 bei den Sendern: Arduino Pro Mini in der 8 MHz, 3.3V-Version (leider sehr teuer und selten bei e*ay zu finden)

  • @eBiBy

    Deswegen habe ich den 3,3V Pro Mini raus gelassen, bei eBay find ich den nich und in deutschen Shops zahlt man 10€ und mehr dafür.

    Vorüberlegung Empfänger:
    Variante 1:
    Arduino Uno / Nano oder Mega per USB am RPi
    + billigste Lösung
    + keine extra Stromversorgung notwendig (Stromversorgung über USB vom RPi)
    - RPi und Empfänger müssen nah zusammen sein

    Variante 2:
    Arduino Uno oder Mega mit Ethernet Shield im Netzwerk
    + dezentrale Lösung
    - verhältnismäßig teuer min min. 30€

    Beim Empfänger bin ich noch unschlüssig welche Variante ich empfehlen kann.

  • Moin agent ...

    zu den 2.4GHz Transceivern kann ich im Moment leider noch nichts sagen.
    Der levelshifter ist imho auch nur zur besseren Übertragung notwendig (Du hast ja keine physikalische Verbindung zw. RPi und Arduino).

    die 433 MHz Variante funktioniert, das habe ich mit einem einfachen Programm mal ausgetestet. Allerdings liegst Du mit Deiner Annahme der Send-/Empfangsweite richtig. Ohne Antenne schaffte der bei mir noch nicht mal 4 Meter (allerdings durch eine Wand).
    Vorteile: es funktioniert
    Nachteil: es werden zwei Platinen (ein Sender/ein Empfänger) benötigt. Lt. einiger Hinweise die ich im Web gefunden habe, ist eine sehr stabile 5 V Spannungsversorgung notwendig.

    Alternativ fällt mir noch das Teil von meigrafd ein, zu dem Du -> hier <- nähere Informationen findest. Der ist zwar relativ teuer, scheint aber ganz passabel seinen Dienst zu versehen.

    Zu den µControllern: ich habe hier einen Arduino Pro Mini. Der ist ca 3,5 cm x 1,5 cm gross (oder klein) und stellt 24 Pins zur Verfügung von denen 6 PWM beherrsschen. Insgesamt hat der 14 digitale I/Os und 6 analoge Eingänge. Näheres ist -> hier <- zu finden, aber das weisst Du vermutlich alles. Ich habe die 5V Variante, die läuft 16 MHz bisher ohne Probleme.
    Zum flashen würde ich das FTDI Kabel nehmen. Das ist mittlerweile ziemlich billig zu kriegen.
    Ausserdem funktioniert die Arduino Umgebung damit einwandfrei.

    Zum ATTiny und dem ATNano kann ich ebenfalls leider nichts sagen. Den ATTiny setzt meigrafd ein (siehe obiger Link).

    cheers,
    -ds-

  • Das beim 433MHz zwei Platinen nötig sind ist denke ich egal, da die Kommunikation eh einseitig läuft und die Sender/Empfänegr meist im Set angeboten werden (bei eBay ab 1€ beim Chinese deines Misstrauens). Stabile 5V für den Empfänger denke ich ist auch kein Problem da ich den entweder mit Netzteil oder über die 5V vom USB betreiben würde. Was eher problematisch werden kann sind den Sender mit nur 5V zu betreiben aber das muss ich einfach austesten. Aber dafür muss ich erst mal auf meine ganzen Bestellungen aus China warten.

    Bestellt habe ich erstmal folgende Mikrocontroller:
    - 5 Arduino Nano (ca. 7€/Stück)
    - 5 Arduino Pro Mini 5V ATmega 328P (ca. 3€/Stück)
    - 5 ATtiny84 (ca. 3€/Stück)
    - 1 Arduino Mega 2560 (bei Amazon für 20€)

    Dazu noch:
    - 10 433MHz Sender/Empfänger
    - 10 2,4GHz Transciver
    - 5 Spannungsregler 5V auf 3,3V (für den Pro Mini)
    - 1 USB FTDI Adapter
    - diverse Sensoren wie DHT22, BMP085, Feuchtigkeitssensoren ...

  • Jetzt sind endlich erst mal alle Teile da um mit der Entwicklung zu beginnen. Als Empfänger gibt es ja noch die Möglichkeit den 433MHz Empfänger direkt an den RPi zu hängen. Dazu habe ich nur leider keine Libary finden können die mir dabei hilft die 433MHz Signale vom Arduino auf dem RPi mit Python o.ä. zu empfangen. Villeicht hat ja hier schon jemand erfahrung damit und kann mir einen Tipp geben.

  • Moin,

    sehe ich genau so wie dbv ;) ...
    Per TCP/IP oder alternativ RS232.
    Diese Schnittstellen funktionieren zuverlässig und Du kannst gleich mit der Kommunikation loslegen.

    Wenn Du da erst mit Funk rumhampelst und etwas nicht funktioniert, dann suchst Du Dir nen Wolf.

    Ich hab' das mit dem angepeilten Netzwerk so gestaltet, dass es eine Sende- und eine Empfansgroutine gibt, der es egal ist, was drunter liegt und davon auch nix weiss.


    cu,
    -ds-


  • Ein Socketserver(pi) nimmt die werte vom socketclient(arduino) entgegen. Das wäre mein erster Ansatz

    Das erfordert aber ein Ethernet oder WiFi Shield, ich habe jetzt folgendes gefunden -> http://www.homautomation.org/2013/09/21/433…d-raspberry-pi/
    Das werde ich mal ausprobieren und wenn das Funktioniert als Grundlage für den empfänger nehmen. Vorteil ist da das man nix weiter als einen Empfänger für 50cent und 3 Drähte, bei allen anderen Lösungen sind mehr Teile nötig und damit teurer.

    dreamshader
    Klar ist das eine stabile Lösung, aber ob ich nocheine zwischenstation beim empfangen habe oder nicht macht meiner Meinung nach nicht viel unterschied. Da die 433MHz Verbindung den schwächsten Teil darstellt.

    Einmal editiert, zuletzt von agent47 (30. März 2014 um 19:08)

  • Moin agent47, wie gehts denn hier bei dir vorran?
    Ich frage, weil mich die Funkthermomether mit dem Pi zusammen sehr interessieren und mir dein SHC echt gut gefällt.
    Wollte mir schon die Funksender von Meigraf bauen aber da hab ich dann wohl keine Chance auf Interaktionen mit deinem SHC nehme ich an?

  • Aktuell bin ich erst mal an der Fertigstellung der SHC Version 1.4.0 dran, wenn die raus ist mache ich hier weiter.
    So langsam sind auch alle Teile die ich dafür benötige angekommen und zwischendurch mache ich auch schon ein paar Tests, aber momentan gibt s noch nichts Handfestes.
    Ich hatte schon vor eine Schnittstelle zu dem System von meigrafd zu programmieren, dabei kommt es aber darauf an wie mein System ausfallen wird und wie sich das vereinen lässt. Dafür ist es aber noch zu zeitig um eine klare aussage treffen zu können.

  • Hi hi ...
    also so wie es aussieht redet mein UNO jetzt über 2.4 GHz mit meinem RPi :) ...
    Ich fass' die zugehörige(n) Anleitung(en) mal auf deutsch zusammen und mach dann ein kleines Tutorial daraus.
    Witzigerweise hat das jetzt praktisch ootb funktioniert ... mit den 433 MHz Modulen ( die Billigteile ) hab' ich mir einen abgebrochen und es bis dato nicht hinbekommen :fies:

    cu,
    -ds-

  • Hallo zusammen,

    die Funken fliegen ... klappt super mit den 2.4GHz Modulen.
    -> Hier <- hab' ich noch ein bisschen was dazu geschrieben.

    //EDIT:
    Hätte ich fast vergessen. Also das läuft auf Arduino UNO und Arduino MEGA2560. Auf einem Pro-Mini lief es nicht ootb - hat vielleicht was mit den 3V3 zu tun. Aber da bleib ich dran.
    Achtung: für den Mega müssen andere Pins angeschlossen werden wie für den UNO.

    cheers,
    -ds-

  • _ds_, hast Du einen 3.3V oder 5V Pro Mini in den Fingern gehabt?

    Wer die PIN-Belegungen sucht: KLICK

    Ich habe die Kommunikation mit dem UNO, dem MEGA 2560, dem Nano und den 5V Pro Mini hinbekommen.

  • Puh, gute Frage... Schon lange her...
    Ich denke schon, denn wo nur 3.3V rein dürfe, da jage ich keine 5 durch :D

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!