ATTiny84-Sensorendaten per 433 Mhz an Arduino Ethernet übermitteln *update*

In meinen vorherigen Blogposts habe ich ja bereits angedeutet, wohin die Reise geht: Batteriebetriebene Sensoren die ihre Daten per Funk an eine zentrale Basis schicken, welche per Netzwerkkabel angebunden ist und die empfangenen Werte in einer MySQL-Datenbank speichern.

Momentan bin ich mit den kostengünstigen 433 Mhz-Sensoren von eBay an eine physische Grenze gestoßen: Zwar reicht die Reichweite der Sensoren für meine 80qm-Wohnung (wobei der Sender am anderen Wohnungsende steht), jedoch komme ich nicht auf meinen Balkon; und die Werte im Außenbereich interessieren mich natürlich genauso.

Aus diesem Grund habe ich mir RFM12B-S1-Sender bestellt, deren Reichweite höher liegen soll. Meine bisherigen Erkenntnisse und Sketches möchte ich mit euch teilen, bevor ich notgedrungen den Wechsel zu diesen neuen Sendern durchführe.

*Update 29.12.2013*: Ich habe mir zwar besagte RFM12B-Tranceiver besorgt, sie jedoch nicht eingesetzt. Momentan verwende ich die 433 Mhz-Sender weiter, und bin dazu übergegangen die Daten von einem Arduino UNO empfangen, und per RS232/COM an einen Raspberry Pi zu übergeben, der diese dann weiterverarbeitet.

Da der Raspberry per WLAN-Stick angebunden ist, kann ich diese Empfängereinheit frei in der Wohnung platzieren – komme also auch näher an den Balkon und erhalte so doch noch meine Außentemperaturwerte. Näheres folgt bald! */update*

Okay, zuerst benötigen wir mal eine kurze Teileliste der von mir eingesetzten Komponenten:

  • ATTiny84V-10PU (LowPower-Version, bekommt ihr auf reichelt.de für etwa 2,7€)
  • 433 Mhz-Sender/Empfänger-Paar (bekommt ihr am günstigsten auf eBay für etwa 1,5€ pro Paar; jedoch lange Lieferzeit von ~6 Wochen)
  • DS18S20 Temperatursensoren, oder DHT22 Temperatur/Luftfeuchtigkeitssensoren (~3-4 €) – ebenfalls günstig per eBay aus China zu erwerben
  • Einen Arduino Uno oder einen USBTiny-Programmierer zum Flashen der Sketches auf den ATTiny84
  • Kleinteile, je einen Widerstand für die Sensoren, etc.

Vorbereitungen

  • Damit wir loslegen können, müsst ihr den ATTiny84 auf einem Steckboard mit eurem Programer verkabeln und den Bootloader (8 Mhz Clock! Mit 1 Mhz passiert zumindest bei mir nichts…) flashen. In diesem Artikel habe ich das bereits beschrieben.
  • Zusätzlich müsst ihr natürlich noch den Sensor anschließen. Ich habe beispielhaft einen DS18S20 und DHT22 genommen und je ein Fritzing-Schaltbild erstellt. Das schöne dabei: Wir nutzen die freien PINs zum Anschluss des Sensors – daher können wir Sketchänderungen direkt hochladen und testen, ohne irgendetwas an der Verkabelung ändern zu müssen:
    *UPDATE* Fehlerteufel! VCC des Sendemoduls muss natürlich auf den PLUS-Pol der Stromversorgung und NICHT auf GND gehen!
    ATTiny84 mit DS18S20
    Attiny84 mit DHT22
  • Als Empfänger verwende ich einen Arduino Ethernet, der per Netzwerkkabel an meinen Switch angeschlossen ist. Am Arduino Ethernet hängt lediglich der 433 Mhz-Empfänger über einen einzigen Data-Pin – im Sketch weiter unten ist das entsprechend aufgeführt und sollte ohne große Erklärung umzusetzen sein.
  • Ihr benötigt, je nachdem, welchen Sensor ihr einsetzt, zusätzliche Bibliotheken für die Arduino IDE. In den Sketchen sind Verweise zu den jeweiligen Libs hinterlegt, in jedem Fall jedoch benötigt ihr die VirtualWire– (für den Datenaustausch über die Funk-Verbindung) und die JeeNode-Lib (für die Sleep-Funktionen). Beide Libs bekommen sich in die Haare; einen Workaround findet ihr im Arduino.cc-Forum
  • Zusätzlich, verstehe wer will, erhalte ich mit den WinAVR-Tools von 2008, die bei der Arduino IDE mitgeliefert werden, Fehlermeldungen beim Upload der Sketche auf den ATTiny84 per Arduino Uno als Programer:

    Die Lösung sieht ebenfalls relativ einfach aus: Ladet euch die aktuelle WinAVR-Suite (aktuell von 2010) von SourceForge herunter, installiert sie – z.B. nach c:\WinAVR, benennt den Ordner „avr“ im Verzeichnis „C:\Program Files (x86)\Arduino\hardware\tools“ in „avr.old„um, erstellt das Verzeichnis „avr“ neu und kopiert dorthin alle Dateien und Ordner unterhalb von c:\WinAVR\.
    Zusätzlich muss die Datei avrdude.conf aus C:\Program Files (x86)\Arduino\hardware\tools\avr\bin in das Verzeichnis C:\Program Files (x86)\Arduino\hardware\tools\avr\etc kopiert werden.
    Danach funktioniert auch das kompilieren der Sketches wieder!

Arduino Ethernet-Empfänger

Die Basis-Station, die die Daten der einzelnen Sensoren empfängt und an ein PHP-Webscript übergibt, ist relativ einfach gestrickt und basiert auf meinem HowTo der VirtualWire-Library.

Ich habe – so hoffe ich – mir Mühe bei der Kommentierung der Sketches gegeben, sodass ich nicht viel dazu erklären muss:

Wenn ihr nebenher den seriellen Monitor laufen habt, erscheint bei jedem Empfangenen Datenpaket eine kurze Statusausgabe und die URL, die aufgerufen wird:

Hier sieht man auch schon, was passiert: Der Arduino Ethernet nimmt die empfangenen Daten und ruft damit ein WebScript auf, dass die Daten per $_GET[] entgegen nimmt. Dabei verwende ich als „einfachen Schutz“ einen „key„, den ihr von SECRETKEY auf etwas anderes ändern solltet – damit eben nicht irgendwelche Bots o.ä. meine SQL-Datenbank vollaufen lassen.

ATTiny84-Sender: DS18S20 & DHT22

Kommen wir nun zum Sensordaten-Sender. Zu beachten ist, dass das Setup ohne weiteres funktioniert, wenn Sender/Empfänger max. 50 cm voneinander entfernt sind. Erhöht sich die Reichweite, oder sollen die Sender in einem anderen Raum platziert werden, müssen externe Antennen an die ANT-Pins der 433 Mhz Sender/Empfänger angelötet werden.

Hierzu verwende ich ein 17,34cm (lambda/4) langes Kabel (eine Ader aus einem CAT7-Verlegekabel, Vollkupfer, 1 Kern), das SENKRECHT in die Luft schaut. Beim Ausloten der Reichweite hat sich gezeigt, dass spiralförmig gewickelte Antennen – egal bei welcher Ausrichtung – weniger gute Empfangsraten zeigen als ein Kabel das Senkrecht nach oben steht – kann sich natürlich bei euch anders verhalten.

Der Sketch schickt etwa alle 5 Minuten ein Signal zum Empfänger. Dabei ist es so aufgebaut, dass es vom Empfänger direkt als Parameter an das PHP-Webscript übergeben werden kann, ohne noch einmal zerlegt werden zu müssen.

Wir ihr im Sketch seht, verschicke ich nicht nur die Temperatur, sondern auch eine eindeutige ID des Senders (damit die Daten später z.B. einem Raum zugeordnet werden können) und die aktuelle Spannung der Stromversorgung in mV.

Alle Kommawerte (22,95°) kommen dabei *100-multipliziert (2295) beim Webscript an, müssen dort also durch 100 geteilt werden, um wieder auf das korrekte Ergebnis zu kommen (22,95).

Das PHP-Webscript

Das Script, dass vom Arduino Ethernet mit den Daten versorgt wird, ist ebenfalls keine Meisterleistung: Es prüft, ob der Secretkey stimmt, spielt ein wenig mit den empfangenen Sensordaten und speichert diese in einer MySQL-Tabelle:

Hier sind noch einige Debugging-Zeilen inbegriffen; zum Test kann das Webscript natürlich manuell im Browser mit Parametern aufgerufen und die Insert-Funktionen getestet werden.

Dabei werden die empfangenen Werte nicht einfach direkt gespeichert, sondern – wie im Fall der Temperatur – erstmal geprüft: Wenn der empfangene Wert um 10° + oder – vom Durchschnitt der letzten 5 empfangenen Sensorwerte abweicht, werden die Daten nicht gespeichert. Damit verhindere ich, dass mal ein falsch erhaltener Temperaturwert meine Statistiken zerhaut.

Auch zu erwähnen: Ich habe eine separate MySQL-Tabelle (sensor_settings) in der ich Infos zu den Sensoren gespeichert habe (etwa die Sensor-ID, die Sender-Bezeichnung oder Lokation, etc.) – unter anderem ein „lastupdate“-Feld, das immer aktualisiert wird, wenn Sensordaten empfangen und gespeichert wurden.

Das dient mir dann später in den Statistiken als Hilfe um zu deuten, ob der Sensor die letzten male überhaupt Werte übertragen hat, oder ggf. nicht mehr funktioniert.

Die MySQL-Tabelle zur Speicherung der Daten

Als Randnotiz noch das Tabellenlayout meiner sensor_data-Tabelle:

Die Auswertung

Nun habe ich eine tolle Datenbank, in der die ganzen Werte für Temperatur, Luftfeuchtigkeit und Spannungsversorgung reinwandern – aber was fange ich damit nun an?

Zuerst habe ich mich auf die Suche nach einer PHP-Library gemacht, die mir das Erstellen von Charts oder Statistiken vereinfacht und ermöglicht. Fündig wurde ich bei „pChart„, das mit einer verdammt guten Dokumentation – aber anscheinend keinerlei Community aufwartet. Es ist kostenlos für private Zwecke – also prima für mich geeignet.

Ich habe lange nichts mit PHP programmiert, und früher schon gar keine Statistiken, sodass ich mich erstmal einfinden musste. Was mir dabei half waren zum einen die Beispiele, die gute Dokumentation, und die pChart-Sandbox, quasi eine Web-Oberfläche mit der man sich GUI-basiert ein Demo-Chart zusammenstellen und den Quellcode anzeigen lassen kann. Die Sandbox erreicht ihr, in dem ihr die pChart-Lib entpackt, auf einen Webspace hochladet und das Verzeichnis ..\pChart\examples\ im Browser aufruft.

Den Code meiner Statistiken werden ich erstmal nicht veröffentlichen, da ich daran noch aktiv arbeite.

Der aktuelle Stand sieht so aus, dass ich mir Charts in einer MySQL-Tabelle anlege (Welcher Sensor, welche Werte werden empfangen (Temp/Humi/Vcc), wie soll der Hintergrund des Charts aussehen, etc. pp.). Jeder Chart erhält eine ID, und beim Aufruf des generator.php-Scripts mit Übergabe der ID wird mir eine Statistik zurückgeliefert, die ich als Bild einbinden kann:

pChart Demo-Pic

Sobald ich neue Infos habe, aktualisiere ich diesen Artikel.

 

Bastian

Seit 2006 bin ich täglich im IT-Umfeld unterwegs und interessiere mich für technische Lösungen im Hard- und Softwarebereich, die einem den Alltag erleichtern. Zu meinen Hobbies zählt ein 3D-Drucker, das auch (handwerkliche) Tüfteln, Scripten sowie der unqualifizierte Umgang mit dem Lötkolben.

Das könnte Dich auch interessieren …

38 Antworten

  1. devid sagt:

    Hey,
    coole Seite! Gefällt mir!

    Tipp für den Sender: Je höher die Spannung desto größer die Reichweite (Der Sender hält bis zu 12 V aus)

    und http://board.homecontrol4.me/viewtopic.php?f=7&t=16 hier wird ebenfalls etwas für die Verbesserung des Senders beschrieben. Meiste hast du ja schon richtig!

    Die Seite könnte dich auch interessieren!: http://www.homecontrol4.me/

  2. Stefan sagt:

    Hallo,
    erstmal ein dickes Lob !!! Tolle Seite !!
    Habe alles ohne große Probleme nach gebaut.

    Habe aber eine Frage, weil ich nicht weiß, wie man das berechnet bzw. rausbekommt.
    Kann ich die hier stellen oder lieber per Mail ?
    Ist ein bischen länger…

    Vielen Dank.
    Gruss
    Stefan

  3. Joerg sagt:

    Hi

    erst einmal Kompliment für diese Seite.

    Ich bekomme aber immer die Fehlermeldung
    can’t open config file „C:\Arduino\arduino-1.5.5-r2/hardware/tools/avr/etc/avrdude.conf“: No such file or directory

    was kann ich tun ?
    Cu
    Joerg

    • Bastian sagt:

      Hi,
      hast du die WinAVR-Tools installiert + drübergepackt?
      Immer, wenn irgendetwas beim Kompilieren nicht ging, lag mein erster Verdacht auf meinem Virenscanner. Einfach mal den Echtzeitschutz ausmachen und nochmal versuchen :)

      • joerg sagt:

        Hi Bastian,
        Danke für die schnelle Antwort . Das Problem war das es gar kein etc Verzeichnis gab.ich habe einfach eins erstellt und die avrdude.conf aus dem bin Verzeichnis hinein kopiert. Und siehe da es geht ;-)
        Danke nochmal
        Joerg

  4. Marcel sagt:

    Moin Bastian,

    first things first, danke für diese Klasse Anleitung. Sie hat dazu geführt das ich mir jetzt ein Set an Arduino + den vielen tollen anderen besorgt habe. Kurz mal mein Setup:

    Arduino Uno, Attiny84V-10PU, XY-FST 433 MHz Transmitter, XY-MK-5V Receiver.

    Nun mein Problem: Wenn ich die VirtualWire.h verwende ist es mir nicht möglich von meinem Attiny84 mit dem Arduino zu kommunizieren über die Transmitter & Receiver Kombination. Habe natürlich erstmal klein Angefangen und ein einfaches ‚Hello there‘ versucht zu übetragen. Aber es kommt Partout nichts beim Receiver an. Der Attiny tut was an dem Pin den ich gesetzt habe (12). LED zwischen geklemmt und jedes mal wenn er ‚vermeintlich sendet‘ blinkt es schön ;) Selbiges auf der Receiver Seite. Kommt dort ein Signal an flackert eine weitere LED ebenfalls.

    Verwende ich nun die RCSwitch.h library ist es mir möglich den Attiny zu programmieren und mit erfolg zu senden. Auf dem Serialmonitor bekomme ich dann tatsächlich Ausgaben zu Gesicht.

    Was ich mich nun Frage, warum die VirtualWire.h nicht mit dem Arduino kommunizieren möchte.

    VirtualWire.h „$Id: VirtualWire.h,v 1.12 2014/02/24 09:07:58 mikem Exp mikem $“
    RCSwitch.h 2.51 (Januar 2013).

    VirtualWire sketches:
    Transmitter: http://pastebin.com/SW5eKXNy
    Receiver: http://pastebin.com/wGLhBUuM

    RCSwitch sketches:
    Transmitter: http://pastebin.com/PGsNpbb8
    Receiver: http://pastebin.com/cDbjqzpS

    Irgendwelche Ideen?! Ich bin hier momentan Betriebsblind glaube ich.

    Danke!

  5. Zorro sagt:

    Hallo,

    schöner Artikel, der eigentlich das macht, was ich auch möchte. Nur die Ansteuerung des Senders verstehe ich nicht. Da wird der Datenpin mit dem Atmel verbunden und alle anderen Pins auf Masse gelegt. Wo bekommt das Sendemodul den Strom her? So wie es in den Beispielen gesteckt ist, funktioniert es meiner Meinung nach nicht. Mein Modul hat drei Pins: GND, VCC und RX.

    Bin ich da jetzt zu dumm oder ist die Abbildung fehlerhaft? Danke für eine kurze Rückmeldung.

  6. Wasti sagt:

    Super Projekt!
    Nach dem ersten Lesen habe ich alle Teile bestellt und nachdem alle da waren, direkt angefangen zu basteln. Hatte hi und da einige Schwierigkeiten, aber nichts, was sich nicht lösen ließe ;-)

    Ich habe mittlerweile einen Sender via DHT22 sowie einen Empfänger (Arduino Uno + ethernet shield).
    Nur wo packe ich das php / mysql zeugs hin, damit ich die Website mit den Werten anzeigen lassen kann?
    Der Empfang klappt übrigens schon einwandfrei!

    • Wasti sagt:

      Habe nen webserver unter 192.168.178.34 am laufen. Auch ne mysql datenbank. Habe den Server im Empfänger angepasst:
      char server[] = „192.168.178.34“;

      sowie das
      client.println(„GET /temp/arduino.php?“+payload+“&r=“+RECEIVERID+“&key=SECRETKEY HTTP/1.0“);

      (die empfänger php liegt unter 192.168.178.34/temp/arduino.php)

      Die Daten für die mysql Datenbank stimmen auch, da ich beim aufrufen der arduino.php keine DB Fehlermeldung erhalte. Nur werden keine Daten an die Datenbank übergeben… Bin mir sicher, es ist lediglich ein typo irgendwo. Steh aber gerade extrem auf der Leitung :-)

      • Bastian sagt:

        Hallo,

        versuche doch einfach mal zu prüfen ob der Arduino überhaupt Daten an das PHP-Script übergibt. Z.b. beim Aufruf der passenden URL einen Eintrag mit Datum/Uhrzeit in eine TXT-Datei auf dem Webserver speichern.
        Auch hat mir geholfen die Antwort der GET-Abfrage vom Arduino auszuwerten (mein PHP-Script hat bei Erfolg immer ein OK zurückgegeben). Ich habe da gerade keinen passenden Code zur Hand; schau mal in die Webserver-Abfrage-Exampels vom Arduino und erweitere damit deinen Code, damit du die Webserver-Antwort anzeigen lassen kannst.

    • Bastian sagt:

      Hallo,

      freut mich, dass ich jemandem weiterhelfen konnte :)
      Die Website/den Webserver musst du natürlich irgendwo anders laufen lassen. Entweder bei z.B. dir lokal am PC (XAMPP) oder auf einem dedizierten Gerät – das könnte ein Raspberry oder eine halbwegs brauchbare NAS sein. Alternativ natürlich auch ein normaler Webhoster, der dir eine Domain+Webspace zur Verfügung stellt.

  7. Wasti sagt:

    Klaro, läuft auch bereits alles. ;-)

    Kann es sein, dass wenn keine sauberen Daten vom Sensor kommen, garnichts in die Datenbank eingetragen wird?
    Empfange nämlich nur folgendes:

    Daten empfangen: s=1&t=0&h=0&v=5275
    Daten schicken:
    GET /temp/arduino.php?s=1&t=0&h=0&v=5275&r=1&key=SECRETKEY HTTP/1.0
    Daten geschickt.

    Sehr komisch das Ganze…

    • Wasti sagt:

      Gut, der Kommentar kann getrost gelöscht werden.
      Memo an mich Selbst, Breadboard-Verkabelung dreifach checken. ;-)

      Jetzt bekomme ich saubere Werte. Leider wird dennoch nichts an meine Datenbank übergeben…

      • Wasti sagt:

        Tut mir Leid, dass ich hier so spamme.
        Ich bekomme nun saubere Werte vom DHT22.

        Daten empfangen: s=1&t=2250&h=4640&v=5301
        Daten schicken:
        GET /temp/arduino.php?s=1&t=2250&h=4640&v=5301&r=1&key=SECRETKEY HTTP/1.0
        Daten geschickt.

        Wenn ich den Befehl manuell in die Browserleiste eintrage, erhalte ich folgende Fehlermeldung:
        Keine SensorID gesetzt oder Sender nicht dem Empfänger zugeordnet

        Wobei die SENSORID = 1 und RECEIVERID = 1;
        Und übertragen wird ja auch die 1 (s=1) So what?!

  8. Egaw sagt:

    Es fehlen die Namen der Libraries in meinem Text. Leider kann ich ihn nicht editieren, daher nochmal:

    Hallo,
    sehr anschauliche Beschreibung. Habe alles wunderbar nach basteln können. Leider habe ich jedoch mit dem Code für den Sender (DHT22) ein Problem.
    Ich habe alle benötigten Libraries runter geladen und in den entsprechenden Ordner kopiert. Die VirtualWire.h und DHT22.h werden beim Einbinden auch wie gewünscht durch das Highlighting erkannt. Jedoch die JeeLib.h nicht. Ich bin bei allen drei Libraries gleich vorgegangen und habe die JeeLib auch mehrfach überprüft. Das Programm lässt sich auf den Controller überspielen, jedoch werden bei der Ausführung des Programms scheinbar die Sleepzeiten übersprungen und ca. alle drei Sekunden Daten gesendet. Was könnte ich übersehen/ falsch gemacht haben? Würde mich über eine Lösung oder einen Hinweis freuen, danke!

    • Bastian sagt:

      Hallo,
      hört sich doch so an, als wäre mit der JeeLib etwas nicht in Ordnung.
      Versuchs doch mal mit einer älteren JeeLib-Version, bzw. lade einen JeeLib-Demo-Sketch, hänge eine LED an den Arduino, lade den Blink-Sketch und tausche dort Sleep() gegen das Pendant der JeeLib aus.
      Das wäre ein guter Test mit wenig Aufwand :)

      • Egaw sagt:

        Danke für die schnelle Antwort!
        Das Problem scheint unabhängig vom Skript zu sein. Das JeeLib.h bleibt in der Includezeile schlicht schwarz. Bei den anderen Libraries wird der Name farbig markiert. Die JeeLib wird wohl gar nicht erkannt.
        Mein Vorgehen: Downloaden der Zip-Datei von Github, entpacken, umbenennen in jeelib (vorher jeelib-master) und kopieren in den Arduino Libraries-Ordner. Beim anschließenden Start der Arduino IDE taucht JeeLib im entsprechenden Menü auf. Gibt es noch Alternativen zu diesem Vorgehen, oder habe ich etwas vergessen?

  9. Max sagt:

    Hey Bastian,

    sehr starker Artikel. Danke schon einmal dafür.
    Ich habe nur ein Problem, welches ich gerne verstehen würde. Wenn ich die VirtualWire Lib nach dem erstellen der Ethernetverbindung initialisiere funktioniert die Ethernetverbindung nicht richtig. Setze ich den Code für vw allerdings darüber geht alles. Komme nicht ganz dahinter wieso. Vielleicht kannst du mir ja helfen. :)

    Beste Grüße

    • Bastian sagt:

      Hallo,
      ich hatte genau das gleiche Problem und mich quasi totgesucht, bis ich auf die Idee kam, die include’s zu tauschen.
      Wieso weiß ich leider selbst nicht so genau – die VirtualWire wird ja mittlerweile nicht mehr entwickelt (und durch RadioHead ersetzt); wir werden da vermutlich nie eine Antwort drauf bekommen.
      Ich vermute, irgendetwas wird „doppelt gesetzt“ in den beiden Libs – und eine funktioniert dann eben nicht mehr richtig.

  10. Dominik sagt:

    Hallo

    super Seite!
    Leider hab ich ein Problem der sender Sketch klappt bei mir auf einem Arduino Nano aber auf dem Attiny84 klappt er einfach nicht egal für welchen sensor ich ihn nehme er sendet einfach nicht.
    Woran kann das liegen?

    • Bastian sagt:

      Naja das ist jetzt eine wirklich sehr pauschale Frage. Es kann an vielem liegen; falscher Core auf dem ATTiny84, ATTiny84 kaputt, 433Mhz-Sender am ATTiny84 falsch angeschlossen, etc.
      Was hast du schon getestet?

  11. Dominik sagt:

    Hallo

    also ich hab es mit dem Attiny84 bei 1MHz und bei 8MHz versucht ebenfalls beide Farianten mit jeweils beiden Sender Sketches.
    Wenn ich das ganze mit einem Arduino Nano mache klappt es und wenn ich den gleichen 433MHz Sender bei Attiny84 benutze klappt es nicht. Hab auch schon eine LED an die Senderdatenleitung angeschlossen beim Arduino Nano Leuchtet Sie wenn er Sendet aber beim Attiny84 eben nicht und es wird auch nichts Empfangen auf der Gegenseite. Also geh ich stark davon aus das er gar nicht Sendet.
    Ich bin echt radlos und weis nicht was ich noch versuchen könnte hast du vielleicht eine Idee?
    PS der Attiny kann eigentlich nicht defekt sein wenn ich den Blink Sketch drauf mach klappt alles.
    Hab es auch schon mit einem anderen Attiny84 versucht genau das gleiche. Ist echt komisch. Beim Sketch hochladen klappt auch alles.
    Manchmal is halt der Wurm drin :/

  12. Dominik sagt:

    Es klappt!! Gott ich hab schon lang nicht mehr so gegrinst :-)
    Ich hab den Attiny mal nach deiner Anleitung Programiert und siehe da es geht!

    Ist aber echt komisch davor hat ja das Blinken auch geklappt.

    Vielen vielen Dank für deine Seite.

  13. Dominik sagt:

    Eine Frage hätte ich da noch, wie müsste ich den Sketch abändern das ich im Seriellen Monitor die Daten anderst anzeigen lassen kann z.b.
    Sensor:
    Temperatur:
    Luftfeuchtigkeit:
    Ist das ohne weiteres möglich?
    Ich muss das praktisch im Empfänger Sketch abändern bzw. umrechnen aber die frage ist wie?

    • Bastian sagt:

      Hi,
      naja, die Daten kommen ja in der Form t=12&h=xx&v=1234 an. Im Empfänger-Sketch musst du eben erst nach „&“ splitten, und dann nach „=“. Und das gibst du dann aus…

  14. jörg sagt:

    hi ich hab mal eine frage:
    woraus ergibt sich der wert 26 im befehl char msg[26] beim sender script für den dht 22
    danke schon mal im voraus
    Mfg jörg

    • Bastian sagt:

      Hm, bin mir nicht sicher worauf du raus willst. Dort wird die Char-Variable mit 26 Zeichen Platz deklariert – mag sein, dass da „noch etwas Luft ist“ und nicht jede Stelle benötigt wird. Meintest du das?

      • jörg sagt:

        ja das meinte ich dachte das muss optimal abgestimmt sein habs jetzt in nem ähnlichen projekt angewendet und hab auch einfach paar stellen mehr genommen hat super gefuntzt danke für die anleitung hat mir sehr geholfen

  15. Simon sagt:

    Wie lange hebt denn dieser kleine Temperatursensor mit den batterien?

  16. Simon sagt:

    Hi Ist es möglich die Fritzing datei von dir zu bekommen mir sind da einige anschlüsse noch nicht so ganz klar, ich versuch das so ähnlich nachzubauen. wäre super wenn man die bekommen könnte. Da ich für zuhause eine ähnliche konstellation vor habe.

  17. Lufi sagt:

    Sollte das auch mit einem attiny85 funktionieren ?

  18. Benny sagt:

    Hi Bastian,

    super Seite und eine klasse Anleitung zu dem Thema. Was mich interessieren würde: welche Batterie-Laufzeiten erreichst du beim DHT22-Sender?

    Danke und Grüße
    Benny

  19. Bob sagt:

    Hi, great project. I am a bit baffled by your pins. Could someone please send pictures of your finished breadboard? What I don’t understand is this:
    For DHT22 you define these pins:
    const int DHT22_DATA_Pin = 0; // PIN, an den das DATA-Bein des DHT-Sensor angeschlossen ist
    const int DHT22_VCC_Pin = 1; // PIN, an den das VCC-Bein des DHT22-Sensors angeschlossen ist
    const int TX_Pin = 3; // PIN, an den der 433 Mhz Sender angeschlossen ist

    But on the Fritzing schema DHT’s VCC (first leg) is connected to Atmel’s PIN 9 (third on left-hand side), sensor’s DATA is connected to Atmel’s PIN10 (secon on left-hand side) and 433’s VCC pin is connected to PIN7 (PWM)… Could you please help me out here with a picture? Simply pins in your source and those on the picture do not correlate.

    Also, is it possible to create the sketch in Arduino and then upload the .hex file via usbasp, thus skipping arduino as ISP programmer? Or will arduino set some funky fusebits without which the processor will be dead? I tried different cabling but it is doing nothing so I got pins wrong or my hex from Arduino bured via ExtremeBurner is not doing anything (fusebits?)

    Would love to build this for my parents. Thanks anyone for any help.

Schreibe einen Kommentar

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