Entwicklung: Temperatur Funk Sensor

  • Da hast du was falsch verstanden.


    Der HC-SR04 benötigt mindestens 4.5V auf VCC, typischerweise 5V und maximal 5.5V.
    Der TRIGGER pin funktioniert auch mit 3V3.
    Das LOW Signal aus dem ECHO pin ist < 1.0V. Das HIGH Signal entspricht dem des VCC's also typischerweise 5V aber mindestens 4.5V.


    Das steht auch so ähnlich in deiner Anleitung.


    Da es in deiner Beschreibung/Anleitung um den Anschluss an den PI geht - du aber den ATtiny84A hast, kannst du diese Spannungs Geschichte ignorieren. Der ATtiny84A verträgt maximal 5,5V aber der PI verträgt maximal 3V3.


    Quellen:
    http://www.mikrocontroller.net…lmodul_beschreibung_3.pdf
    https://docs.google.com/docume…9RsB-x2qR4vP8saG73rE/edit



    Die folgenden Pins des ATTiny84A sind PWM fähig:
    pin#5 , D2
    pin#6 , D3
    pin#7 , D4
    pin#8 , D5

    Code
    .
    +-\/-+
    VCC 1| |14 GND
    (D0) PB0 2| |13 AREF (D10)
    (D1) PB1 3| |12 PA1 (D9)
    (PB3) RESET 4| |11 PA2 (D8)
    INT0 PWM (D2) PB2 5| |10 PA3 (D7)
    PWM (D3) PA7 6| |9 PA4 (D6) SCK
    SDA PWM (D4) PA6 7| |8 PA5 (D5) PWM
    +----+


    Hierbei muss man beachten das bei sowohl TinyTX3 als auch TinyTX4 nur der D3 oben zugänglich ist. Also muss dieser pin zwangsläufig dafür genutzt werden.
    Den VCC pin macht man auch schaltbar über z.B. D10.
    Den Trigger pin brauch nur ein digital output sein, dafür bietet sich D9 an.


    Was auch noch zu beachten wäre ist dass der HC-SR04 eine maximale Distance von 400cm hat, also sollte man in dem Sketch dies auch kontrollieren und dann zB " -1 " ausgeben um "out of range" zu signalisieren. Ebenso wie mindestens 2cm, näher ran kann er ebenfalls nicht erkennen.


    Versuch es mal mit folgendem Sketch:
    (untested)

  • Danke, habe mir gerade mal welche über Amazon aus China bestellt.
    Werde das mal testen. In den Kundenrezensionen steht, dass das Modul auch wohl unter 4V noch funktionieren soll...

    Edited once, last by giovanne ().

  • Hallo Zusammen,



    ist es auch möglich zum Betrieb der Sender Duracell Ultra Power AAA 1,5V LR3 zu nehmen, oder müssen es unbedingt die aufgeführten Batterien sein?


    Danke!

  • Welche Marke oder Elektrochemisches System ist wurscht :D


    Wichtig ist nur das die Gesamtspannung von 5,5V nicht überschritten wird - und dabei gilt es auch zu beachten das manche Batterien/Akkus im geladenen Zustand minimal voller sind also zB 1,6V anstatt exakt 1,5V
    In Reihe geschaltet: Spannung addiert sich.


    Wie viel Kapazität die Stromversorgung hat spielt ebenfalls kaum eine Rolle - nur insofern als dass mehr Kapazität auch eine längere Laufzeit bedeuten würde.

  • Ich muß für eine Heizungssteuerung vier Relais über Funk (eine Etage tiefer) ansteuern. Die Temperaturen sollen über die Sendermodule empfangen werden. Kann ich die Relaissteuerung vielleicht auch über die Tiny Module realisieren?

  • Da es möglich ist, eine LED anzusteuern, könnt man auch ein Relais schalten.
    Dazu müssen aber Tranreseiver (RFM12b) verwendet werden, da der Sender auch Empfänger und umgekehrt sein muss.
    Und ich glaube, dass der Tiny84 zu wenig Beine hat um mehr als eine LED bzw. Relais zu schalten.

  • Theoretisch ja. Allerdings käme es auf ein paar Dinge an:

    • Möchtest du dass das Sendermodule direkt das Relais schaltet
    • Oder möchtest du vom PI aus das Schaltsignal schicken?

    In jedem Fall müsstest du den Sketch anpassen.


    Wenn 1. dann wäre das nur eine sehr kleine Änderung
    Wenn 2. dann wäre der Aufwand schon etwas größer, aber vorallem dürften die Sendermodule dann nicht Schlafen gehen was zwangsläufig bedeutet das die Module über Batterie/Akku nicht allzulange halten würden.. Du bräuchtest dann also ggf. eine stationäre Stromversorgung.


    Auch könnte es bei Verschlüsselung und einem "falschen" Sensor passieren das der Sketch zu groß wird, dann müsstest du halt auf Verschlüsselung verzichten - was aber eigentlich auch kein Problem wäre ;) Deshalb nur vorsichtshalber nebenbei erwähnt.


    Am Sender sind jedenfalls 4 Ports frei, also 2x für'n Sensor (VCC und DATA) und dann wären noch 2 weitere frei.


  • Wenn 2. dann wäre der Aufwand schon etwas größer, aber vorallem dürften die Sendermodule dann nicht Schlafen gehen was zwangsläufig bedeutet das die Module über Batterie/Akku nicht allzulange halten würden.. Du bräuchtest dann also ggf. eine stationäre Stromversorgung.


    Fall Nr. 2 trifft hier zu. Die Temperaturen müssen in 8 Räumen erfaßt werden, 4 um EG und 4 im OG. Den RPi bringe ich im Verteilerkasten im OG unter; dort liegen auch 230V für die Ventilstellmotoren, die momentan von schrottigen Honeywell Thermostaten gesteuert werden. Zu steuern sind jeweils 4 Relais im EG (per Funk) und 4 im OG (direkt durch GPIO). Meine Idee ist, jeweils einen Sender und einen Empfänger am RPi zu betreiben. Den Sender um die Relais (EG) zu steuern und den Empfänger, um die Temperaturen aus den 8 Räumen zu erfassen. Klingt das realistisch? Oder brauche ich ein Tranceiver-Modul?



    Auch könnte es bei Verschlüsselung und einem "falschen" Sensor passieren das der Sketch zu groß wird, dann müsstest du halt auf Verschlüsselung verzichten - was aber eigentlich auch kein Problem wäre ;) Deshalb nur vorsichtshalber nebenbei erwähnt.


    Ich habe gerade erst begonnen mich mit dem Thema zu beschäftigen und habe hier noch einen Arduino Uno R3 seit Ende letzter Woche liegen. Faszinierend wie einfach es geht, so ein Teil zu programmieren. Leider bin ich aber noch nicht dazu gekommen, mich eingehender mit ihm zu beschäftigen. Daher weiß ich noch nicht so gut Bescheid über die Grenzen, die solche Lösungen aufweisen. Glaube aber nicht, dass Verschlüsselung hier Priorität Nr. 1 ist, da es sich nicht um eine sicherheitsrelevante Lösung handelt.



    Am Sender sind jedenfalls 4 Ports frei, also 2x für'n Sensor (VCC und DATA) und dann wären noch 2 weitere frei.


    Klingt ja als ob es reicht... :)


    Danke schonmal für die Hilfe!


  • Meine Idee ist, jeweils einen Sender und einen Empfänger am RPi zu betreiben. Den Sender um die Relais (EG) zu steuern und den Empfänger, um die Temperaturen aus den 8 Räumen zu erfassen. Klingt das realistisch? Oder brauche ich ein Tranceiver-Modul?


    Wenn du den RFM12B verwendest hast du einen Transceiver, also ein RF Module welches sowohl senden als auch empfangen kann. Ob du daneben dann noch ein TinyTX legst spielt keine Rolle - wobei du ja auch direkt an den PI einen Sensor anschließen könntest ;)


    Daher weiß ich noch nicht so gut Bescheid über die Grenzen, die solche Lösungen aufweisen. Glaube aber nicht, dass Verschlüsselung hier Priorität Nr. 1 ist, da es sich nicht um eine sicherheitsrelevante Lösung handelt.


    Die Grenze beim ATtiny84A besteht in der Flash Größe von 8 kB. Normalerweise reicht das, aber manche Sensoren benötigen mehr Platz als andere...
    Beispielsweise der Sketch für:
    DS18B20 ist kompiliert 7.342 Bytes ohne Verschlüsselung, mit Verschlüsselung passt aber nicht mehr da der Sketch 768 Bytes zu groß wäre.
    DHT22 ist kompiliert 5.254 Bytes ohne Verschlüsselung, mit Verschlüsselung 6.896 Bytes.
    ReedSwitch ist kompiliert 4.312 Bytes ohne Verschlüsselung, mit Verschlüsselung 5.954 Bytes.


    Klingt ja als ob es reicht... :)


    Ja - Spielraum ist auf jeden Fall vorhanden ;)


  • Wenn du den RFM12B verwendest hast du einen Transceiver, also ein RF Module welches sowohl senden als auch empfangen kann. Ob du daneben dann noch ein TinyTX legst spielt keine Rolle - wobei du ja auch direkt an den PI einen Sensor anschließen könntest ;)


    Hilfe... :s. Wie stell ich es denn an, den RFM12B zu verwenden? Ich dachte eigentlich, dass die TinyTX das gleiche Modul verwenden...



    DS18B20 ist kompiliert 7.342 Bytes ohne Verschlüsselung, mit Verschlüsselung passt aber nicht mehr da der Sketch 768 Bytes zu groß wäre.
    DHT22 ist kompiliert 5.254 Bytes ohne Verschlüsselung, mit Verschlüsselung 6.896 Bytes.


    Hat der DHT22 einen Nachteil gegenüber dem DS18B20 abgesehen von den größeren Abmessungen und höherem Preis? Dann nehme ich einfach den und bekomme die Feuchtigkeit noch dazu...

  • Quote

    Wie stell ich es denn an, den RFM12B zu verwenden? Ich dachte eigentlich, dass die TinyTX das gleiche Modul verwenden...


    TinyTX verwenden RFM12b...


    Quote

    Hat der DHT22 einen Nachteil gegenüber dem DS18B20 abgesehen von den größeren Abmessungen und höherem Preis?


    Meiner Erfahrung nach ist der DHT ungenauer von der Messung her, kann dir jetzt aber keine absolute Zahlen liefern...

  • Hilfe... :s. Wie stell ich es denn an, den RFM12B zu verwenden? Ich dachte eigentlich, dass die TinyTX das gleiche Modul verwenden...


    Ja, eigentlich verwende wir auf allen Platinen das RFM12B Modul.
    Es besteht aber auch die Möglichkeit nur mit RFM01 und RFM02 zu arbeiten - das hatte kolja angesprochen.
    Ich bin aber generell der Meinung das man lieber RFM12B verbauen sollte, da man dann nach einem Jahr zumindest wenn man wollte ohne Probleme auch mit dem Senderboard etwas Empfangen kann ohne das ganze auszutauschen.


    Also: Normalerweise verwenden wir hier auf allen Platinen Transceiver.


    Hat der DHT22 einen Nachteil gegenüber dem DS18B20 abgesehen von den größeren Abmessungen und höherem Preis? Dann nehme ich einfach den und bekomme die Feuchtigkeit noch dazu...


    Das Gehäuse des DHT22 ist in der Tat größer und verbraucht auch etwas mehr Strom, was aber eigentlich nicht erwähnenswert ist. Ich habe hier fast ausschließlich DHT22 im Einsatz, und weiß mittlerweile von einem Sensor nicht mals wo der liegt (der war mal oben im Baum, wo er aber rausgeweht wurde... Sendet aber seit ca. 6 Monaten munter weiter also who cares :D)
    Die Genauigkeit ist vom DHT22 vielleicht auch etwas geringer, aber wers nicht auf 1°C Unterschied anlegt ist trotzdem gut bedient


  • Hat der DHT22 einen Nachteil gegenüber dem DS18B20 abgesehen von den größeren Abmessungen und höherem Preis? Dann nehme ich einfach den und bekomme die Feuchtigkeit noch dazu...


    Soweit ich mich erinnern kann, kann der DHT Keinen negativ Bereich messen.



    Edit:
    OK man sollte erst nachschauen bevor Vermutungen angestellt werden. DHT22 bis - 40°C. Der dht11 kann dies nicht.

    Edited once, last by Aim ().

  • Hallo,


    ich habe mal eine Frage zu dem Projekt.
    Ich bin gerade am versuchen den Attiny zu flashen. Das möchte ich über den Raspi machen. Attiny ist soweit angeschlossen und die Signatur wird auch erfolgreich ausgelesen.
    Muss ich denn die ganzen Befehle zur Paketinstallation immer als "sudo" ausführen? Mein Problem ist schon, das ich die Verzeichnise
    (mkdir -p /root/sketchbook/hardware/tiny/variants/tiny8
    mkdir -p /root/sketchbook/hardware/tiny/variants/tiny14
    mkdir -p /root/sketchbook/libraries)
    mit sudo mkdir angelegt habe, aber mit dem "pi" user die verzeichnisse nicht sehen kann. Ich finde auch nicht die send.ino und receive.ino Dateien von denen in der Anleitung die Rede ist. Desweiteren wird mir in der ArduinoIDE unter Boards nicht der Attiny angeboten. Kann mir hier vielleicht jemand etwas auf die Sprünge helfen bei meinen Problemen?

  • Du kannst das sketchbook auch im Homedir des 'pi' Benutzers anlegen - musst dann aber die Einstellung in der ArduinoIDE entsprechend ändern..


    Die Send_*.ino und Receive_PI.ino findest in dem Beitrag zu den Sketches (ist im Index verlinkt)


    ArduinoIDE musst du neu starten nachdem du die attiny Dateien ins Sketchbook kopiert hast.

  • Hallo in die Runde,


    weil ich ein paar Beiträge vorher etwas von "Senden mit dem Empfänger" und "Empfangen mit dem Sender" gelesen habe.
    Ich habe ganz aktuell für ein Projekt an der Uni die Sketches umgeschrieben, damit der Empfänger der via UART am Raspberry hängt parallel auch senden kann und ein Sender sowohl empfängt als auch Daten sendet.


    Hier mal die Sketches (sind noch nicht ganz sauber und ordentlich, funktionieren aber fürs erste ;) )


    Receiver (+ UART lesen & Funk senden)


    Externer Sender / Empfänger (wird bei mir zur Steuerung der Kaffeemaschine verwendet, empfängt Daten, reagiert darauf und meldet Daten zurück)



    Vielleicht hilft es ja jemandem weiter, habe zuvor noch keine Sketches gefunden die diese Anforderungen erfüllen.


    Die Stromversorgung für den externen Sender (der nun auch empfängt) ist ein echter Knackpunkt. Da er nicht schlafen geht wird er wesentlich mehr Strom ziehen. Das muss ich nun mal beobachten.


    Für Verbesserungsvorschläge bin ich immer dankbar.


    Beste Grüße


    bigdane


  • Die Stromversorgung für den externen Sender (der nun auch empfängt) ist ein echter Knackpunkt. Da er nicht schlafen geht wird er wesentlich mehr Strom ziehen. Das muss ich nun mal beobachten.


    Für Verbesserungsvorschläge bin ich immer dankbar.


    Ohne jetzt wirklich verstanden zu haben, worum es genau geht: :blush:
    (Definition: Sender = extern = das Ding mit der Batterie, Empfänger = Pi = Netzteil)


    Wie wäre es denn, wenn Du am Empfänger sowas wie einen Trigger setzt, wenn Du was senden willst.
    Der Empfänger steht auf dauerlauschen.
    Der Sender sendet alle 1/10/100 sec/min/std und schaltet danach für einen definierten Zeitraum auf empfangen.
    Sollte am Empfänger der Trigger gesetzt sein, sendet er das an den "Sender", und dann kann das übertragen werden, was übertragen werden soll.
    Daß sich dadurch natürlich eine gewisse Verzögerung ergibt, ist klar, aber besser als dauernd Batterie leer.


    Gute Idee oder Schwachfug? :huh: