Home > Hausautomatisierung > Raspberry Pi Funksensoren und Empfänger selber bauen – Teil 3 Sender bauen

Raspberry Pi Funksensoren und Empfänger selber bauen – Teil 3 Sender bauen

Anleitung zum Selbstbau Übersicht

Den Sender Chip Programmieren (ATtiny 84)

Als erstes müssen wir den Chip für den Funksender entsprechend programmieren (auch Flashen oder Brennen genannt). Da wir zum Glück einen Raspberry Pi haben können wir das Programm über den Raspberry Pi auf den Chip brennen. Hier eine logische Ansicht auf den ATtiny, achtet beim Verkabeln darauf das die PINs richtig zugeordnet werden, erkennen könnt ihr das an der Kerbe auf dem Chip.

Wir verkabeln den ATtiny 84 entsprechend dieser Zuordnungstabelle mit unserem Raspberry Pi, diese Zuordnung kann sowohl für das Modell B als auch für den A+ und B+ verwendet werden. Schaltet euren Raspberry Pi zum Verkabeln aus! Ich verwende der Einfachheit halber ein Breadboard mit GPIO Breakout.

ATtiny-84 ATtiny-84-flashen Breakout-Programmieren

Sobald die Verkabelung abgeschlossen ist können wir mit der Einrichtung der Software auf dem Raspberry Pi befassen. Wir installieren erst via apt vorhandene Updates und alle notwendigen Tools. Alleine die Arduino Entwicklungsumgebung hat ca. 80MB, die Installation dauert also etwas.

Wir benötigen noch zwei zusätzliche Softwarepakete die sich nicht im Raspbian Repository befinden, daher laden wir uns diese via wget runter und installieren sie via dpkg. Avrdude ist die Programmiersoftware für den Atmel ATtiny Chip.

Dann legen wir uns einige Arbeitsverzeichnisse an, und clonen uns dort via git die Libraries für das RFM12 Modu, JeeLib (Treiber für Wireless Module) sowie die OneWire Library für das OneWire Protokoll und eine Temperatur Library für DS18B2x Sensoren. Die Libraries verwenden wir später in unserem Programm welches wir auf den ATtiny Chip schreiben.

Nun holen wir uns noch die Kernkomponenten des ATtiny Chips, diese benötigen wir das unser Programm (Sketch) später auf dem Chip überhaupt lauffähig ist. Darin enthalten ist der Bootloader des Chips und die PIN Definitionen.

Dann benötigen wir noch die “Sketches” für unseren Sender, das ist der eigentliche Programm Code der auf dem ATtiny ausgeführt wird. Die Entwicklungsumgebung “ArduinoIDE”, welche wir vorher installiert haben, sucht im Standard im Verzeichnis “/usr/share/arduino/” nach passenden Sketches, daher laden wir diese dort hin. Falls ihr einen anderen Sensor verwendet müsst ihr die URL im Wget Befehl entsprechend anpassen, ich verwende den DHT22.

  • DHT22 – http://raspberry.tips/wp-content/uploads/2014/11/Send_DHT22.ino
  • DHT22 als PCB-Version – http://raspberry.tips/wp-content/uploads/2014/12/DHT22-PCB-Version.txt
  • DS18B20 – http://raspberry.tips/wp-content/uploads/2014/11/Send_DS18B20.ino
  • Empfänger – http://raspberry.tips/wp-content/uploads/2014/11/Receiver_PI.ino
Testet noch ob euer ATtiny auch wirklich richtig verkabelt ist, dabei hilft uns der folgende Befehl, dieser muss avrdude: AVR device initialized and ready to accept instructions zurückgeben

 Den ATtiny Programmieren

Um den IC programmieren zu können müssen wir die ArduinoIDE aufrufen, allerdings ist dies nur auf der grafischen Oberfläche möglich. Falls ihr aufmerksam wart habt ihr vielleicht bemerkt das sich bei der Installation der Software ein xrdp untergemogelt hat, dieses verwende ich um von meinem Windows Rechner eine Remoteverbindung zum Raspberry Pi aufzubauen. Als alternative könnt ihr auch VNC benutzen oder direkt mit Bildschirm, Tastatur un Maus am RasPi arbeiten. Vergesst nicht via “raspi-config” den Statmodus auf “Desktop mit Automatischem Login von pi” umzustellen und den RasPi einmal neu zu starten.

WICHTIG!
Ihr müsst unbeding bevor ihr mit dem Programmieren startet noch die UART Schnittstelle aktivieren.

Ich arbeite als Root auf meinem Desktop und verwende daher /root/sketchbook für die IDE als Ordner worin wir alle wichtigen Dateien gelegt haben. Falls ihr als Pi arbeitet müssen diese mit passendem Owner in eurem Home liegen. Anmelden könnt ihr euch als root indem ihr vorher das Passwort geändert habt. Erst “sudo su” und dann “passwd” in der Konsole.

Wir finden die Entwicklungsumgebung ArduinoIDE dann im Startmenu unter “Electronics”. Wir starten das Tool (das dauert einige Sekunden).

ArduinoIDE

Wir öffnen die das Programm “Send.ino” welches wir vorher nach “/usr/share/arduino/Send/Send.ino” kopiert habe. Den öffnen Dialog findet ihr im File Menu unter Open.. klickt dort auf File System und navigiert in den Ordner und öffnen die Send.ino (Klickt auf File System und dann unter /usr/share/arduino/Send )

send-ino-oeffnen-2

Achtung!
Wenn ihr mehrere Sender programmiert müssen diese mit einer jeweils andere NETWORKID besitzen sodass der Empfänger dies unterscheiden kann. Hierzu müsst ihr in der Send.ino die Definition für die Netzwork ID anpassen. Ebenfalls muss die GATEWAYID übereinstimmen. Die Definition findet ihr im oberen bereich. Schreibt euch die IDs am besten auf die Platine bzw. mit einem Klebezettel auf den Chip!

Hier die anpassbaren Definitionen:

Dann in der ArduinoIDE auf das Menü Tools -> Board gehen und dort ATtiny84 (internal 8 MHz clock) auswählen

select-board

 

Dann noch den richtigen Programmer auswählen “Raspberry Pi GPIO (on-board)” über Tools > Programmer

programmer

Wieder über das Menü Tools  den Bootloader installieren – Burn Bootloader 

burn-bootloader

Auf das Menü File -> Preferences gehen und dort einstellen: Show verbose output during: [x] compilation

debug-output

Wir starten nun die Überprüfung und die Erstellung unseres Programms, dazu klicken wir im Menu auf Sketch > Verify / Compile

compile-start

Das Erstellen dauert einige Sekunden, wenn alles funktioniert hat sehen wir im Ausgabefenster unten Done Compiling bei einem Fehler Error Compiling. Einige rote Warnmeldungen sind normal, ein Fehler sollte jedoch nicht auftauchen.

compile

Die Entwicklungsumgebung hat uns nun das Programm (Sketch) als Hex File erstellt welches wir auf den Chip schreiben können. Wir wählen über Tools > Programmer noch unseren RasPi als Ziel (haben wir mit dem Download der Datei programmers.txt definiert).

select target

Klickt abschließend auf File > Upload using Programmer um das Programm auf den Chip zu schreiben. ArduinoIDE meldet Done Uploading wenn alles geklappt hat.

Den Sender zusammenbauen

Das Stripboard Layout basiert auf dem Design von Nathan. Entsprechend eurem Sensor muss der Widerstand zwischen VCC (VDD) und DATA (DQ) entweder entfernt oder ausgetauscht werden. Details siehe Einkaufsliste. Bei meinem DHT22 tausche ich den 4,7k gegen einen 10k Widerstand und achte darauf die PIN richtig zuzuordnen.

Schaltplan-Sender DHT22-PINS  DHT22-Verkabelung

Beim Zusammenbau des Senders wie folgt vorgegangen:

 

1. Platine zuschneiden

Die Platine für den Sender ist 16 x 15 Löcher.

2. Buchsenleiste für den Sensor auflöten

Die 10er Buchsenleiste habe ich mir einfach passend zugeschnitten

3. Stift für die Antenne auflöten(Klingeldraht geht auch direkt am Board)

4. Buchsenleiste für den Batterie Halter auflöten

5. Buchsenleiste für den RFM12B auflöten

6. Die mit  einem roten X markierten Leiter unterbrechen (durchschneiden / abschaben mit scharfem Messer / Cutter)

7. Auflöten des IC Sockels

8. Auflöten des RFM12B

Ein kleiner Tipp, wenn ihr Stiftleisten in euer Breadboard steckt, biegt und dann den Chip dazwischen klemmt könnt ihr einfach und sauber löten. Ihr bekommt das aber bestimmt schöner hin als ich, ich habe zwecks der Stabilität alle Beinchen angelötet (6 pro Seite), ihr könnt auch nur die benötigten 6 + 2 Pins anlöten um Material und Fummelei zu sparen.

  RFM12B-1 rfm12b_dil_x6 RFM12B-2 RFM12B-3

9. Verkabeln mit Klingeldraht

Bei mir sieht das Ergebnis so aus, ich habe noch eine LED für den Status (für Tests ganz gut) eingelötet.

Sender

Zum Testen kann noch eine LED zwischen PIN11 (+) und PIN14 (-) eine LED aufgelötet werden, diese blinkt dann bei den entsprechenden Zeilen im Code.

LED

Antenne

Als Antenne habe ich einen Kupferdraht benutzt den ich auf 165mm gekürzt habe. Dieser wird direkt an das RFM12 Board gelötet. Es ist auch möglich einen “Spirale” als Antenne zu benutzten die im Gehäuse Platz finden kann, das habe ich aber noch nicht ausprobiert und kann auch zu der Reichweite noch nichts sagen.

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (4 votes, durchschnittlich: 5,00 von 5)
Loading...

Über raspberry.tips

52 Kommentare

  1. Wie hast du dich am Raspberry als root angemeldet?

  2. Hi,
    danke für die sehr verständliche Anleitung! :)
    Da ich auch oft zu hohe Luftfeuchtigkeit habe, werde die nächsten Tage alle Teile bestellen, um dieses Projekt mit meinem Pi selbst zu bauen.

    Eine Sache ist mir leider noch unklar… wo genau muss die 10mH Spule hin, die in der Einkaufsliste steht? Diese ist auf der Skizze nicht mit eingezeichnet… oder habe ich diese übersehen? Auch auf deinen fertigen Bildern kann ich diese nicht erkennen.

  3. Hi,
    anstatt der 433MHz RFM12B habe ich nur 868MHz Module bekommen können.
    Im Sketch des Senders und Empfängers muss ich doch sicherlich auch noch einer Änderung durchführen, oder gibt es in den Sketches keinen Unterschied?

    Und noch eine kleine andere Frage. Die Sender habe ich auf den PCB Platten erstellt. Kann man dort auch eine LED zur Funktionsüberprüfung anbringen? Wenn ja, könntest du mir einen Tipp geben wo ich die platzieren kann?

    Bin leider noch nicht all zu fit in der Ganzen Thematik.

    Danke.

    Gruß
    Tom

    • Hallo Tom,

      schau Dir mal die RFM12B.cpp an.

      Dort stehen ein paar Kommentarzeilen, wie initialisiert wird.
      // Call this once with params:
      // – node ID (0-31)
      // – frequency band (RF12_433MHZ, RF12_868MHZ, RF12_915MHZ)
      In der Send.ino müsste der Parameter dann so aussehen:

      radio.Initialize(NODEID, RF12_868MHZ, NETWORKID);

      und beim Empfänger ebenfalls analog dazu.

      Gruß Arne

  4. Hallo,

    ich habe Sender und Empfänger wie in dieser Anleitung nachgebaut, allerdings noch ohne die Spule zwischen +5V und Vcc vom ATTiny. Trotzdem habe ich arge Probleme bei der Funkübertragung. Das Signal scheint echt schlecht zu sein!

    Zum Testen habe ich die Skripte leicht umgeschrieben, so dass ich die Übertragung ohne Sensor testen kann und eine Testzeichenkette übertragen wird. Beim Empfänger habe ich hinzugefügt, dass das Empfangene trotzdem ausgegeben wird, auch wenn es zu CRC-Fehlern kommt.
    Das ist nun leider jedes Mal der Fall. Teilweise werden die ersten Zeichen korrekt übermittelt, mal kommt nur Zeichenmüll an….
    Die µCs hab ich schon neu beschrieben und die RFM12B getauscht, daran kann es wohl nicht liegen! :/
    Ich habe als Antenne einen Kupferlackdraht verwendet, auch in richtiger Länge, mal gerade, mal gewickelt. Gleiches Ergebnis…

    Hat vielleicht irgendjemand eine Idee, woran es sonst liegen könnte?

    Gruß, Benny

    • Hallo Benny,

      ich habe absolut keinerlei Probleme, selbst über zwei Stockwerke hinweg (Kellerdecke mit Stahlbeton).

      Als Annäherung an die Ursache könntest unter Umständen erstmal deinen Sensor als Ursache ausschließen und den Code so umschreiben das immer die selbe Zeichenkette übertragen wird.

      Achtung! Wenn sender und Empfänger zu nahe bei einander stehen kommt es zu einer “Overload” Situation beim Empfänger, der die zu starken Signale nicht verarbeitet werden. Ebenfalls musst du sicherstellen das die Spannung am Sender passt, wenn die Batterien zu stark entladen sind kommt es ebenfalls zu Übertragungsfehlern.

      Welche RFM12B Module verwendest du genau?

    • Hallo und danke erstmal für die Antwort!

      Den Sonsor habe ich bereits ausgeschlossen, ich sende nur eine Testzeichenkette.
      In der Anleitung steht etwas von einer Spule… kann das die Situation verbessern?
      Ich habe es mit zwei AA und drei AA Batterien versucht, immer das gleiche Ergebnis.

      Wie weit sollten die denn auseinander liegen? Hab es bisher nur mit max. 2 Metern probiert…

      Genau sind es die RFM12BSP Rev. 1.0 433MHz.

      Gruß, Benny

    • Guten Morgen,

      Die Entfernung ändert leider auch nichts an dem Resultat! :(

      BAD-CRC
      ��@À`@`@À�@À@pÀ`pà 00@Ð8
      �@ð

      Ich fasse mal zusammen:
      – Die Schaltung habe ich geprüft und durchgemessen, keine versehentlichen Verbindungen oder lockere Lötstellen
      – Die µCs habe ich mehrfach neu beschrieben und tun auch das, was sie sollen, sowohl auf Empfänger- als auch auf Senderseite
      – Die RFM12B-Module habe ich bereits auf beiden Seiten getauscht, um auszuschließen, dass die beschädigt wurden
      – Auf Empfängerseite wird die Schaltung mit 3,3V betrieben, auf Senderseite habe ich 3V und 4,5V probiert. Kein Unterschied

      Langsam weiss ich nicht mehr weiter!

      Ich hatte gesehen, dass es für den RasPi auch eine Art Frequenzanalizer gibt für das RFM12B-Modul. Hat das schonmal jemand getestet? Spectrum Analizer

      Gruß, Benny

    • Vermutlich ist das dein Thread?
      http://www.forum-raspberrypi.de/Thread-gpio-uebertragungsprobleme-mit-rfm12b-crc-fehler

      Hast du die Antenne des Senders angepasst? Ebenfalls scheint mir der Sender Code modifiziert worden zu sein, evtl ist das ein Problem? Ist absichtlich kein Sensor am Sender? Ich hatte mit den Standard Settings den größten Erfolg:

      #define NODEID 20 //network ID used for this unit
      #define NETWORKID 210 //the network ID we are on
      #define GATEWAYID 22 //the node ID we’re sending to
      #define ACK_TIME 2000 // # of ms to wait for an ack
      #define SENDDELAY 300000 // wait this many ms between sending packets. 300000ms = 5min
      #define requestACK false // request ACK? (true/false)

    • Als Alternative kannst du auch mal das Sketch der PCB Version nehmen und anpassen, das benutzt die JeeLib uns evtl. etwas Stabiler.

      http://cdn.raspberry.tips/2014/12/DHT22-PCB-Version.txt

    • Hallo,

      ja, die Antenne habe ich schon in unterschiedlichen Varianten probiert…
      Und danke für den Tipp, werde ich mal ausprobieren! Gibt es auch einen passenden Code für den Empfänger mit JeeLib?

      Gruß, Benny

    • Hab den Code schon gefunden!
      Habe jetzt sowohl den Sender-, als auch den Empfängercode ersetzt, aber das Ergebnis bleibt das gleiche!
      Wenn das Problem eine zu starke Sendeleistung sein könnte, kann man die Leistung des RFM12B reduzieren per Befehle?

      Gruß, Benny

      • Ich nehme stark an, dass die Frequenz des Oszillators stark abweicht und deshalb die Übertragungsrate nicht passt. Versuche auf beiden Seiten auf 300 bps runter zu gehen…

  5. Falls Jemand beim bootloader schreiben immer ein gpio/direction Permission Denied erhält hilf das:

    sudo chmod 4755 /usr/bin/avrdude

  6. Ich bekomme bei installieres des Bootloaders immer die Fehler Meldung:
    “java.lang.NullPointerException”

    Wer kann mir Helfen.

    • Speicher deine send.ino mal im sketchbook Ordner ab. Starte dann mal die Arduino IDE neu. Checke zudem die Lese und schreibrechte auf den Ordner.

  7. Hi Leute,

     

    Kann mir wer bitte helfen, was ich ändern muss um ein RFM69CW Modul verwenden zu können?

    RFM12 wird ja nicht mehr produziert. Bitte dringend. Brauch es nur für den Sender.

  8. Ich hab das Proglem, Dass ich jetzt keine 1^Wire Sensoren direkt mehr am RASP. PI2 anschließen kann.
    Woran oder kann das mit den Schritten oben etwas zu tun haben ????

    • Hi, Hab alles aufgebaut wie oben jedoch hab ich auch das fertige RFM69PI gekauft für den Empfänger! Was muss ich Programmtechnisch anpassen? bitte um Hilfe!!! Bei Abfrage mit dem PI sind
      V i22 g210 @ 433 MHz

  9. Hi,
    ich habe die Software wie beschrieben installiert. Bin auf zwei Hindernisse gestoßen. Das erste habe ich beheben können. Wenn ich UART in Betrieb nehme und die beschriebenen Änderungen vornehme, bekommt der Raspi beim Booten einen Kernel Panic. Habe ich mehrfach versucht, aber ohne Erfolg. Hat nur geholfen ein shutdown mit reparatur des Filesystems. Dann war Ruhe.
    Das Problem was mich immer noch plagt ist dieses. Wenn ich die Arduino IDE starte und auf Boards gehe sind keine Tiny Boards vorhanden. Habe ich auch mehrfach neu installiert, aber ohne Erfolg. Der Attiny wird mit dem Befehl avrdude -P gpio -c gpio -p attiny84 erkannt. Was soll ich machen.

    • Hi,

      komme gerade nicht dazu das bei mir nach zu bauen, was aber sein kann ist das beim Umzug des Blogs oben der ein oder andere links zu Bruch gegangen ist, daher müsstest du oben die ganzen wget befehle, über welche die Konfiguration für die Software kommen, bitte noch mal durchführen und überprüfen das auch wirklich alle Files runtergeladen wurden.

      • Ja habe alle Befehle abgeschrieben. Gib mal Tip wo es fehlen könnte, und was.

        • raspberry.tips

          Also,

          zuerst solltest du, da du mit UART ein Problem hattest mal das neue Device Tree Modell deaktivieren um sicher zu sein das überhaupt auf den Attiny geschrieben werden kann. Siehe hier:

          http://raspberry.tips/faq/raspberry-pi-device-tree-aenderung-mit-kernel-3-18-x-geraete-wieder-aktivieren/#Device_Tree_deaktivieren

          Dann hast du vermutlich den alles entscheidenden Hinweiß übersehen:

          “Ich arbeite als Root auf meinem Desktop und verwende daher /root/sketchbook für die IDE als Ordner worin wir alle wichtigen Dateien gelegt haben. Falls ihr als Pi arbeitet müssen diese mit passendem Owner in eurem Home liegen.”

          Um dich als root anzumelden musst du vorher das Root Passwort setzen (sudo passwd root) und dich dann mit dem Benutzer root und dem Passwort auf dem Desktop anmelden. Wenn du die Befehle oben Stück für Stück mit Copy & Past durchgeführt hast funktioniert innerhalb der IDE auch alles (bitte nicht mehrere Befehle mit C&P auf einmal ausführen). Beim ersten Start der IDE als root darauf achten das auch wirklich /root/sketchbook/ ausgewählt wird…

          • Danke für die Tips.
            Habe Teilerfolge. Ich sehe in der Arduino IDE jetzt den Tiny. Aber beim installieren des Bootladers bekomme ich die wie weiter oben beschriebene Fehlerausschrift “java.lang.NullPointerException at . . .”, habe die dort beschriebene Fehlerbeseitigung durchgeführt, aber ohne Erfolg. Was nun?

          • Jetzt die Erfolgsmeldung, ich habe es hinbekommen. Im Arduino IDE muss man unter Tools – Programmer – Raspberry Pi GPIO anklicken und damit aktivieren. Danach konnte ich Bootlader installieren, kompilieren und Upload mit Programmer ohne Fehler durchführen.
            Also erst mal alles OK.

  10. Hey Ho!
    Ich hoffe du hast die Nase von Fragen zu deinem Projekt noch nicht voll :P
    Voller Euphorie habe ich mir sämtliches Material bestellt ohne bis zum ende zu lesen…
    Jetzt wo es quasi zu spät ist habe ich nur eine ganz kleine Frage – ich denke deinem Tutorial mit allen Schritten durchzuführen sollte kein Thema sein, aber ich habe mir anstatt den Sensor DHT 22 den nachfolgenden bestellt: http://www.amazon.de/dp/B00K67Z76O

    Als ich die Liste durchgegangen bin habe ich keine Sekunde darüber nachgedacht, dass es sein kann dass der Sensor angesprochen werden muss. Ich war mehr oder weniger der Meinung, dass jeder Sensor “gleich arbeitet” – übertrieben gesagt.
    Kannst du mir verraten was ich ändern muss, damit mein Sensor arbeitet? Wahrscheinlich einfach gesagt oder?

    Hm hoffe du kannst mir helfen, und sorry das ich so plump frage…

    Gruß Chris

  11. Hallo Philipp,

    das ist eine super Anleitung (hätte ich gebraucht bevor ich mir meine TX 29-IT bestellt habe :-( )!

    Frage: Ich möchte eigentlich nur “digitale Zustände” erfassen und via Funk übertragen, hast Du da eine Idee?

    Gruß
    Kalle

  12. Hallo,
    erstmal eine Top Anleitung.
    Nur verstehe ich nicht wie man die Funkmodule mit 5V betreiben kann.
    Diese sind doch nur bis 3V ausgelegt oder ?

    Diese wollte ich bestellen:
    https://www.pollin.de/shop/dt/Njg4OTgxOTk-/Bausaetze_Module/Module/Funkmodul_RFM12B_433_S_Sende_Empfangsmodul.html

    Zitat von:http://www2.htw-dresden.de/~wiki_sn/index.php5/RFM12
    “Die RFM12B Module arbeiten mit einer Betriebsspannung von 2.2 bis 3.8 V”

    Danke im Vorraus für die Hilfe.
    Gruß,
    Lars

  13. Hallo Phillipp,

    Vorweg eine Klasse Anleitung.
    Meine Frage, wenn ich ein Sender FS1000A und Empänger RF-5V habe, wie schließe ich dann den DHT22 an??? Geht das überhaupt? Bin ziemlich nooby auf dem Gebiet Microcontroller.

    Gruß MoD

  14. Ich grüße euch!

    mir wird in der grafischen Oberfläche von Arduino IDE unter Tools> Board
    der Attiny84 nicht angezeigt.

    weiß jemand woran das liegen könnte?

  15. Würde der Sender auch mit einer “Alkaline Batterie MN21-12V” laufen, oder würde die nicht lange halten?

  16. Hi,

    bei mir wird in der ArduinoIDE leider kein ATiny angezeigt.
    Ich bin als Root angemeldet und habe UART aktiviert. Device Tree Model habe ich deaktiviert.

    Gruß,
    Björn

  17. Guten abend.
    Ich hab sow eit alles zusammen gelötet und btreibe zZ einem BMP 085 und einen DHT22 an einem Tiny. der DHT gibt aber nur -9950 als Luftfeuchtigkeit aus. die temp hab ich aus dem Sketch raus gehauen weil sonst der Speicher auf dem Tiny nicht passt. Ne ahnung woran das liegen könnte?

  18. Hi Falko,

    ich habe das gleiche Problem. Hast du schon eine Lösung bzw. einen Ansatz?

  19. Hallo,

    habe auch das Problem, dass ich beim Installieren des Bootloaders immer eine Nullpointer Exception bekomme.

    Egal, ob ich die Installlation als pi oder root ausführe (mit dem Umkopieren der Dateien bei Benutzung von pi als user und dem Einstellen der Rechte).
    Auch ein kopieren der send.io nach /sketchbook/send ändert nichts.
    Hat jemand einen Tip für mich?

    Gruß,
    Patrick.

    java.lang.NullPointerException
    at processing.app.debug.AvrdudeUploader.getProgrammerCommands(AvrdudeUploader.java:228)
    at processing.app.debug.AvrdudeUploader.burnBootloader(AvrdudeUploader.java:222)
    at processing.app.Editor$47.run(Editor.java:2496)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

    • Hallo Patrick,

      konntest du eine Lösung für das Problem finden? Bin nämlich gerade auch auf selbe Fehlermeldung gestoßen.

      VG,
      Fabian

  20. Hallo alle zusammen. Erstmal vielen Dank für da tolle Tutorial! Bis jetzt klappt alles supper, allerdings hängt sich der ATTiny84 bei Senden.io immer an der Zeile ” radio.Initialize(NODEID, RF12_433MHZ, NETWORKID);” auf. Das hab ich durch die LED rausgefunden.
    Jetzt ist die Sache die, das ich auch als “LEDpin” die 2 genommen habe und nicht wie in der Anleitung die 8. Anders hat es bei mir mit der LED nicht funktioniert. Kann es sein das es deshalb die Zeile “radio.Initialize(NODEID, RF12_433MHZ, NETWORKID);” nicht funktioniert?

  21. Kann mir einer sagen wieso das Recive.ino folgende Map verwendet
    VCC 1| |14 GND
    (D0) PB0 2| |13 AREF (D10)
    (D1) PB1 3| |12 PA1 (D9)
    RESET 4| |11 PA2 (D8)
    INT0 PWM (D2) PB2 5| |10 PA3 (D7)
    PWM (D3) PA7 6| |9 PA4 (D6)
    PWM (D4) PA6 7| |8 PA5 (D5) PWM

    und das eigentliche pins_arduino.h folgende:

    // VCC 1| |14 GND
    // (D 10) PB0 2| |13 AREF (D 0)
    // (D 9) PB1 3| |12 PA1 (D 1)
    // PB3 4| |11 PA2 (D 2)
    // PWM INT0 (D 8) PB2 5| |10 PA3 (D 3)
    // PWM (D 7) PA7 6| |9 PA4 (D 4)
    // PWM (D 6) PA6 7| |8 PA5 (D 5)

    weil aufgrund dieser map, blink meine Led auch nicht :/

  22. Guten Tag,

    ersteinmal: Super Anleitung. Hat in der Umsetzung wunderbar geklappt.
    Jedoch habe ich Probleme mit der Spannungsversorgung.
    Ich habe die Schaltung etwas abgeändert. Ich verwende nun 2 Sensoren, einen DS18B20 und einen HIH6130(Luftfeuchte). Diese werden beide über den Mikrokontroller mit Spannung versorgt. Dazu muss die Wartezeit, bis die Sensoren einsatzbereit sind auf 2 Sekunden verlängert werden (der HIH braucht was länger musste ich feststellen). Zusätzlich wird dieser Sesnor über I2C angesprochen, sodass ich zwei freie Ports via SoftI2C eingerichtet habe als SCL und SDA nehmen musste (andernfalls Konflikte mit RFM12B).

    Ich weiss nun selsbt nicht genau wieso, aber die Batterielaufzeit ist nicht gerade optimal. Nach ungefähr 2 Wochen kann ich bereits die Batterien Wechseln. Ich meine in der Anleitung war irgendwo die Rede von einer deutlich länegeren Laufzeit. Dies dürfte wahrscheinlich an dem anderen Sensor liegen (die einzige Änderung).

    Hat jemand eine Idee, wie ich die Laufzeit erhöhern/den Stromverbrauch reduzieren kann?

    Gruß
    Alex

    • Hallo,

      ich würde das Projekt gern ohne den Raspi nachbauen. Allerdings brauche ich dazu die HEX Dateien,
      da ich ohne den Raspi ja nicht kompilieren kann. Kann mir jemand helfen ?

      Danke

      Stephan

  23. Hi,

    ch habe folgende Frage . Gerne möchte ich den BMP180 einsetzten (https://www.adafruit.com/product/1603)
    Ist das auch möglich, oder besser den DHT22 benutzten ?

    VG
    Sascha

  24. Halli hallo,

    ich hätte das gerne mal ein Problem….es hat alles sehr gut funtionert…schön Schritt für Schritt die Anleitung durchgegangen, aber beim Kompiliieren stoße ich auf ein Problem. Es gibt haufenweise Fehlermeldungen. Ich nutze die Send.ino in originaler Version, aber irgendwo gibt es ein Problem. Hat jemand eine Idee?

    In file included from /root/sketchbook/hardware/tiny/cores/tiny/Stream.h:24:0,
    from /root/sketchbook/hardware/tiny/cores/tiny/TinyDebugSerial.h:31,
    from /root/sketchbook/hardware/tiny/cores/tiny/WProgram.h:18,
    from /root/sketchbook/hardware/tiny/cores/tiny/Arduino.h:4,
    from /root/sketchbook/libraries/RFM12B/RFM12B.h:15,
    from Send.ino:7:
    /root/sketchbook/hardware/tiny/cores/tiny/Print.h:37:0: warning: “BIN” redefined [enabled by default]
    #define BIN 2
    ^
    In file included from /usr/lib/avr/include/avr/iotn84.h:38:0,
    from /usr/lib/avr/include/avr/io.h:434,
    from /root/sketchbook/libraries/RFM12B/RFM12B.h:10,
    from Send.ino:7:
    /usr/lib/avr/include/avr/iotnx4.h:71:0: note: this is the location of the previous definition
    #define BIN 7
    ^
    In file included from Send.ino:7:0:
    /root/sketchbook/libraries/RFM12B/RFM12B.h:200:136: error: ‘SLEEP_MODE_STANDBY’ was not declared in this scope
    void SendStart(uint8_t toNodeId, const void* sendBuf, uint8_t sendLen, bool requestACK=false, bool sendACK=false, uint8_t waitMode=SLEEP_MODE_STANDBY);
    ^
    /root/sketchbook/libraries/RFM12B/RFM12B.h:202:113: error: ‘SLEEP_MODE_STANDBY’ was not declared in this scope
    void Send(uint8_t toNodeId, const void* sendBuf, uint8_t sendLen, bool requestACK = false, uint8_t waitMode=SLEEP_MODE_STANDBY);
    ^
    Send.ino: In function ‘long unsigned int now()’:
    Send.ino:89:20: error: too many arguments to function ‘long unsigned int millis()’
    In file included from /root/sketchbook/hardware/tiny/cores/tiny/WProgram.h:12:0,
    from /root/sketchbook/hardware/tiny/cores/tiny/Arduino.h:4,
    from /root/sketchbook/libraries/RFM12B/RFM12B.h:15,
    from Send.ino:7:
    /root/sketchbook/hardware/tiny/cores/tiny/wiring.h:173:15: note: declared here
    unsigned long millis(void);
    ^
    Send.ino: In function ‘void setup()’:
    Send.ino:129:21: warning: large integer implicitly truncated to unsigned type [-Woverflow]
    Send.ino: In function ‘void loop()’:
    Send.ino:157:66: error: call to ‘void RFM12B::Send(uint8_t, const void*, uint8_t, bool, uint8_t)’ uses the default argument for parameter 5, which is not yet defined

  25. Hallo,

    sehr gute Anleitung. Ich habe folgende Fragen:
    – kann ich die Signale mit einem vorhandenen Jeelink / CUL empfangen
    – was müßte ich machen wenn ich anstatt des Sensors einen Kontakt auswerten möchte

    Danke und Gruß

  26. Hallo,

    Ich fand das Projekt super, also habe ich sogleich damit begonnen, es nachzubauen. Nun ist die Harware fertig und ich wollte den ATTiny84 flashen.

    Folgendes Problem: als ich die Libraries von github.com clonen wollte, kam folgene Fehlermeldung:

    Das war bei allen libraries (RFM12B, DHT22…)

    Ich habe jetzt schon tagelang gegoogelt, was gnutls ist, was TLS connection… bin aber nicht weitergekommen.
    Ich weiss nun wirklich nicht mehr weiter. Wird wohl auch ein Problem sein, da ich noch nicht lange mit dem Raspberrypi herumspiele.

    Ich wäre sehr froh über eine Antwort!

    danke und Grüsse Micha
    fatal: unable to access ‘https://github.com/LowPowerLab/RFM12B/RFM12B.cpp/’: gnutls_handshake() failed: The TLS connection was non-properly terminated.

    • Das ist die fehlermeldung:

      “fatal: unable to access ‘https://github.com/LowpowerLab/RFM12B/’ : gnutls_handshake() failed: The TLS connection was non-properly terminated.”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.