Forum: Mikrocontroller und Digitale Elektronik 433Mhz RF Wireless Transmitter + Receiver


von Holger W. (mb_holger)



Lesenswert?

Hallo ich habe ein Projekt mit dem Atmega 32 und den DS 1820 mit 
Temperatur Ausgabe und Aufzeichnung auf SD Karte. Es funktioniert alles 
perfekt. 1 Wire.

Einen Sensor DS 1820 möchte ich mit einen 433Mhz RF Wireless Transmitter 
+ Receiver einbinden.

Kann ich den Sensor direkt an das Sendemodul anschließen? Kann mir 
jemand helfen? Ich finde keine anwendbare Anleitung dazu.

Holger Weiß

von Harry L. (mysth)


Lesenswert?

Holger W. schrieb:
> keine anwendbare Anleitung dazu.

Weil es so einfach nicht möglich ist.

von Simon (Gast)


Lesenswert?

Wie willst du denn den Sender direkt an den Sensor anschließen ?

Du meinst doch Sender und Sensor an den Mikrocontroller anschließen ?

Wenn nicht bitte einmal erklären.

Gruß

Simon.Sp

von Wer B. (Gast)


Lesenswert?

PS: Ich kann dir helfen den Sender normal anzuschließen, aber nicht so 
wie du meinst.

von Holger W. (mb_holger)


Lesenswert?

Schade. Ich finde auch kein Beispielprojekt. Ist so ein Funkthermometer 
so ungwöhlich. Ich dachte ich kann einfach den Datenstrom 1 : 1 
übertragen.

Holger

von Holger W. (mb_holger)


Lesenswert?

Simon schrieb:
> Wie willst du denn den Sender direkt an den Sensor anschließen ?
>
> Du meinst doch Sender und Sensor an den Mikrocontroller anschließen ?
>
> Wenn nicht bitte einmal erklären.
>
> Gruß
>
> Simon.Sp

Ja ich will den Sensor direkt an den Sender anschließen und den 
Empfänger an das Projekt. ( Daten 1 wire ), also die Funkstrecke einfach 
wie ein Kabel verwenden.

Geht das so einfach? Wenn nicht bin ich für deine Hilfe  dankbar.

In dem Projekt ist nur ein Sensor eingebunden, ein LCD und ein SD 
Kartenmodul.

Holger

von Holger W. (mb_holger)


Lesenswert?

Simon S. schrieb:
> PS: Ich kann dir helfen den Sender normal anzuschließen, aber nicht so
> wie du meinst.

Ich brauche deine Hilfe.

Vielen Dank Holger

von Holger Z. (boomboommagic)


Lesenswert?

> Ja ich will den Sensor direkt an den Sender anschließen und den
> Empfänger an das Projekt. ( Daten 1 wire ), also die Funkstrecke einfach
> wie ein Kabel verwenden.
>
> Geht das so einfach? Wenn nicht bin ich für deine Hilfe  dankbar.
>

Ja , ....  aber nur mit den "richtigen" Modulen für direkten 
Datenaustausch , nicht mit diesen  .... ähm .... "netten ASK 
Spielereien"  ;-)

von Wer B. (Gast)


Lesenswert?

Holger W. schrieb:
> Simon schrieb:
>> Wie willst du denn den Sender direkt an den Sensor anschließen ?
>>
>> Du meinst doch Sender und Sensor an den Mikrocontroller anschließen ?
>>
>> Wenn nicht bitte einmal erklären.
>>
>> Gruß
>>
>> Simon.Sp
>
> Ja ich will den Sensor direkt an den Sender anschließen und den
> Empfänger an das Projekt. ( Daten 1 wire ), also die Funkstrecke einfach
> wie ein Kabel verwenden.
>
> Geht das so einfach? Wenn nicht bin ich für deine Hilfe  dankbar.
>
> In dem Projekt ist nur ein Sensor eingebunden, ein LCD und ein SD
> Kartenmodul.
>
> Holger

Das geht aus folgendem Grund nicht:

Die Signale die der Sensor sendet müssen ja ausgewertet werden.
Stellt die vor als würdest du ein Entfernungssensor an eine Radioantenne 
anschließen und verlange, dass diese jz die Entfernung sendet.

Ich kann dier wiegesagt mit dem Sender helfen, dazu bräucht ich nur den 
Skecht den du bis jz hast inklusive dem neuen Sensor.

Vorausgesetzt du nutzt einen Arduino oder Klon.

von Holger W. (mb_holger)


Lesenswert?

Ist das Funkmodul für die runde Ablage?? Oder ist es für 1 wire 
Übertragung verwendbar? Brauche ich einen zweiten Atmega für den Sender 
?

Holger

von Wer B. (Gast)


Lesenswert?

Benutzt du den Chip in einer Fassung (Arduino Uno) oder separat 
(Breadboard).

Wenn ja, besteht ein Unterschied in der Programmierung ?

von Wer B. (Gast)


Lesenswert?

Holger W. schrieb:
> Ist das Funkmodul für die runde Ablage?? Oder ist es für 1 wire
> Übertragung verwendbar? Brauche ich einen zweiten Atmega für den Sender
> ?
>
> Holger

Ich verstehe deine Frage nicht ganz.

Aber grundsätzlich, du brauchst du nur einen PWM-Pin für den Sender.

Warum also die Frage mit dem 2 Chip ?

von Martin K. (Gast)


Lesenswert?

Holger W. schrieb:
> Ich dachte ich kann einfach den Datenstrom 1 : 1
> übertragen.

Das machen diese Billigst-Teile bis zu einer gewissen Frequenz.
Also H-Pegel am DATA-Eingang anlegen, dann kommt H-Pegel am DATA-Ausgang 
raus (Ohne DC-Anteil). Ich kenne deinen Sensor nicht. Falls 1-wire dann 
muss Strom in Spannung gewandelt werden.

von Holger W. (mb_holger)


Lesenswert?

Simon S. schrieb:

>
> Ich kann dier wiegesagt mit dem Sender helfen, dazu bräucht ich nur den
> Skecht den du bis jz hast inklusive dem neuen Sensor.
>
> Vorausgesetzt du nutzt einen Arduino oder Klon.

Das vorhandene Projekt ist mit einen Atmega 32.
Welche Funkmodule kann ich einfach wie eine Datenleitung verwenden?
Holger

von Wer B. (Gast)


Lesenswert?

Entschuldigung das war etwas falsch erklärt.

Ich habe auch nicht soviel Fachwissen, jedoch die Teile schon mal 
genutzt.

Also zu Verwendung benötigt man:
- PWM-Pin
- +5V
- GND

Mit entsprechender Library ist die Ansteuerung dann einfach.

von Wer B. (Gast)


Lesenswert?

> Welche Funkmodule kann ich einfach wie eine Datenleitung verwenden?
> Holger

Wie ist das zu verstehen ?

von Holger W. (mb_holger)


Angehängte Dateien:

Lesenswert?

Martin K. schrieb:
> Holger W. schrieb:
>> Ich dachte ich kann einfach den Datenstrom 1 : 1
>> übertragen.
>
> Das machen diese Billigst-Teile bis zu einer gewissen Frequenz.
> Also H-Pegel am DATA-Eingang anlegen, dann kommt H-Pegel am DATA-Ausgang
> raus (Ohne DC-Anteil). Ich kenne deinen Sensor nicht. Falls 1-wire dann
> muss Strom in Spannung gewandelt werden.

Der Sensor ist ein DS 1820. Dieser Sensor gibt die Pegel als Spannung 
aus. Der Sensor gibt den 1 wire Datenstrom direkt aus.

von Wer B. (Gast)


Lesenswert?

Holger W. schrieb:
> Martin K. schrieb:
>> Holger W. schrieb:
>>> Ich dachte ich kann einfach den Datenstrom 1 : 1
>>> übertragen.
>>
>> Das machen diese Billigst-Teile bis zu einer gewissen Frequenz.
>> Also H-Pegel am DATA-Eingang anlegen, dann kommt H-Pegel am DATA-Ausgang
>> raus (Ohne DC-Anteil). Ich kenne deinen Sensor nicht. Falls 1-wire dann
>> muss Strom in Spannung gewandelt werden.
>
> Der Sensor ist ein DS 1820. Dieser Sensor gibt die Pegel als Spannung
> aus. Der Sensor gibt den 1 wire Datenstrom direkt aus.

Also um ehrlich zu sein muss ich jz passen.

Aber nochmal zum Verstädniss:
Du willst den Output des Sensors (Data) direkt an den Empfangspin 
(DatgaIn) vom Sender anschließen ?

von Holger W. (mb_holger)


Lesenswert?

Simon S. schrieb:
>> Welche Funkmodule kann ich einfach wie eine Datenleitung verwenden?
>> Holger
>
> Wie ist das zu verstehen ?

Bei 1 wire gibt es eine Datenleitung. Also das Kabel zum Sensor im 
Projekt auftrennen und die Funkmodule dazwischen schalten und fertig.

Holger

von Martin K. (Gast)


Lesenswert?

Martin K. schrieb:
> Das machen diese Billigst-Teile bis zu einer gewissen Frequenz.

Transferrate 4kbit/s soweit ich das mal gelesen habe. Falls dein Sensor 
mehr bit/s ausgibt, gehts nicht.

von Wolfgang (Gast)


Lesenswert?

Holger W. schrieb:
> Ist das Funkmodul für die runde Ablage?? Oder ist es für 1 wire
> Übertragung verwendbar? Brauche ich einen zweiten Atmega für den Sender
> ?

Das Funkmodul hat keine 1-wire Schnittstelle und schon gar nicht ist es 
ein 1-wire Master. Du kannst folglich nicht den DS1820 direkt mit dem 
Modul verbinden und erwarten, dass dann irgendwelche Daten übertragen 
werden. Du könntest aber 1,50€ investieren und eine Arduino Pro Mini 
o.ä. zwischen Sensor und Funkmodul schalten, der sich um die 
Kommunikation kümmert.
(z.B. ebay 301723336845)

von Dieter S. (Gast)


Lesenswert?

Um das Thema hier zu verdeutlichen.

Du kannst nicht einfach den Sensor mit dem Sender direkt verbinden.

Du musst den Sensor DS1820 per OneWire an einen Controller (z.B. Atmel) 
anschließen und die so ermittelten Daten per VirtualWire an dein 
SenderModul geben.

So sendet der Sender das Signal (wenn möglich nur alle 30 sek.) aus.

Diese Signal kann dann wiederum von einem Empfänger am Atmega 32 
empfangen werden.

von Holger W. (mb_holger)


Lesenswert?

Simon S. schrieb:

> Aber nochmal zum Verstädniss:
> Du willst den Output des Sensors (Data) direkt an den Empfangspin
> (DatgaIn) vom Sender anschließen ?

Ja , die Funkstrecke müßte bidirektional übertragen. Wahrscheinlich 
macht das dieses Modul nicht und der Sender sendet nur und empfängt 
nichts. Welche bidirektionalen Funkmodule sind verwendbar für 1 wire und 
preislich im Rahmen.
danke Holger

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Holger W. schrieb:
> Der Sensor gibt den 1 wire Datenstrom direkt aus.

Der Sensor macht gar nichts.  Der sitzt in der Ecke und wartet, bis
ihn jemand abfragt.  Dieser „jemand“ ist gewiss nicht dein Sender,
denn woher zum Geier™ sollte der denn erraten, dass an seinem
Datenanschluss nun gerade ein Dallas-1-wire-Chip dran ist?

Der Sender hat rein gar nichts an „Intelligenz“, der ist strohdoof.
Sonst wäre er nicht so billig.

Du musst da schon einen Controller dazwischen hängen, der einerseits
deinen Sensor per 1-wire-Protokoll abfragt und andererseits einen
Datenstrom für den Sender generiert.  Dieser Datenstrom muss bestimmten
Bedingungen genügen beispielsweise bezüglich der maximalen Frequenz,
die in ihm enthalten ist, außerdem muss er sehr wahrscheinlich
gleichspannungsfrei sein, damit er im Empfänger rekonstruierbar ist
(=> Manchester-Code).

Wenn man halt das Allerallerbilligste an HF-Technik wählt, dann muss
man den Aufwand woanders spendieren.

Ja, es gibt auch Funkmodule, die einen RS-232-Datenstrom (einigermaßen)
1:1 übertragen können, aber die sind deutlich teurer.  (Wenn mich
nicht alles täuscht, dürfte Xbee in diese Kategorie fallen, die habe
ich aber selbst nie benutzt.)

von Dieter S. (Gast)


Lesenswert?

Holger W. schrieb:

> Ja , die Funkstrecke müßte bidirektional übertragen. Wahrscheinlich
> macht das dieses Modul nicht und der Sender sendet nur und empfängt
> nichts. Welche bidirektionalen Funkmodule sind verwendbar für 1 wire und
> preislich im Rahmen.
> danke Holger

Was ist dein preislicher Rahmen?

Und warum bidirektional?

Und für OneWire gibt es keine direkten Sendemodule auf 433 MHz.

von W.A. (Gast)


Lesenswert?

Holger W. schrieb:
> Ich dachte ich kann einfach den Datenstrom 1 : 1 übertragen.

Welchen Datenstrom? Ein DS1820 ist von sich aus mucks­mäus­chen­still. 
Der sagt erstmal gar nichts, sondern möchte über seine 1-wire 
Schnittsteller erstmal zum Messen und einige Zeit später zum Übertragen 
der Daten aufgefordert werden. Wie willst du das alleine mit einer 
Simplex-Funkstrecke realisieren.

Du solltest dich ein bisschen mehr mit dem 1-wire Bus und dem DS1820 
beschäftigen, wenn du damit mehr als schlüsselfertige Konzepte nachbauen 
möchtest. Schon ein Blick ins Datenblatt würde helfen.

von Holger W. (mb_holger)


Lesenswert?

Dieter S. schrieb:
> Um das Thema hier zu verdeutlichen.
>
> Du kannst nicht einfach den Sensor mit dem Sender direkt verbinden.
>
> Du musst den Sensor DS1820 per OneWire an einen Controller (z.B. Atmel)
> anschließen und die so ermittelten Daten per VirtualWire an dein
> SenderModul geben.
>
> So sendet der Sender das Signal (wenn möglich nur alle 30 sek.) aus.
>
> Diese Signal kann dann wiederum von einem Empfänger am Atmega 32
> empfangen werden.


OK, danke. Gibt es ein Beispiel in C, dass ich einbinden kann,  in mein 
Projekt mit dem Atmege 32 ?  Einen Attiny85 oder 13 habe ich für die 
Sensorstelle. Ich finde nur Code für Arduinos.

Danke Holger

PS hier seit ja schnell hier. Ich bin mit meinen Antworten immer schon 
zu spät.

von Dieter S. (Gast)


Lesenswert?

Und warum nimmst du keinen Arduino?
Z.B. wie schon vorgeschlagen, den ProMini. Das macht es dir einfacher.

Ich bin nicht sicher, ob der komplette Code auch in den ATtiny85 
reinpasst. In den ATtiny13 sicher nicht.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Dieter S. schrieb:
> Ich bin nicht sicher, ob der komplette Code auch in den ATtiny85
> reinpasst.

Ein bisschen 1-wire und eine Manchester-Codierung sollte kein
Problem sein.  Die aufwändige Baumsuche bei 1-wire kann man sich
ja sparen, wenn man weiß, dass es nur genau einen Teilnehmer am
Bus gibt.

Hab' gerade mal nachgesehen, ich habe irgendwo noch eine uralte
Portierung eine 1wire-Codes rumliegen, das sind reichlich 700 Bytes
(einschließlich einiger Strings).  Passt also sogar noch in einen
ATtiny25. :)

von Holger W. (mb_holger)


Lesenswert?

Dieter S. schrieb:
> Und warum nimmst du keinen Arduino?
> Z.B. wie schon vorgeschlagen, den ProMini. Das macht es dir einfacher.
>
> Ich bin nicht sicher, ob der komplette Code auch in den ATtiny85
> reinpasst. In den ATtiny13 sicher nicht.

Einen ProMini habe ich auch da. Ich dachte ich kann es mit Atmega`s 32 
oder 8 lösen, für die kann ich habwegs in C Programme schreiben und 
fertige Code anpassen für meine Projekte. Ich war glücklich, dass ich 
das 1 wire und die Aufzeichnung auf SD Karte geschaft hatte.

Holger Weiß

von Dieter S. (Gast)


Lesenswert?

Jörg W. schrieb:
> Dieter S. schrieb:
>> Ich bin nicht sicher, ob der komplette Code auch in den ATtiny85
>> reinpasst.
>
> Ein bisschen 1-wire und eine Manchester-Codierung sollte kein
> Problem sein.  Die aufwändige Baumsuche bei 1-wire kann man sich
> ja sparen, wenn man weiß, dass es nur genau einen Teilnehmer am
> Bus gibt.
>
> Hab' gerade mal nachgesehen, ich habe irgendwo noch eine uralte
> Portierung eine 1wire-Codes rumliegen, das sind reichlich 700 Bytes
> (einschließlich einiger Strings).  Passt also sogar noch in einen
> ATtiny25. :)

Ja, ok.
Das kann gut sein, das es passt. Ich habe das solo noch nicht probiert 
und somit nur die Befürchtung ausgesprochen.

Bei mit arbeitet auch die VirtualWire, die selbst auch ca. 4 kB braucht.
Bei der OneWire kann ich es akt. nicht sagen. Aber es könnte auch mit 
den Libraries passen.

von Dieter S. (Gast)


Lesenswert?

Holger W. schrieb:

> Einen ProMini habe ich auch da. Ich dachte ich kann es mit Atmega`s 32
> oder 8 lösen, für die kann ich habwegs in C Programme schreiben und
> fertige Code anpassen für meine Projekte. Ich war glücklich, dass ich
> das 1 wire und die Aufzeichnung auf SD Karte geschaft hatte.

Ja, wenn die Hardware vorhanden ist, sollte es doch damit kein Problem 
sein. Das funktioniert und läuft bei mir seit ca. 1 Jahr problemlos mit 
der Übertragung.

Und das Programmieren bekommst du auch hin, ist kaum anders.

von Holger W. (mb_holger)


Lesenswert?

Jörg W. schrieb:

>
> Hab' gerade mal nachgesehen, ich habe irgendwo noch eine uralte
> Portierung eine 1wire-Codes rumliegen, das sind reichlich 700 Bytes
> (einschließlich einiger Strings).  Passt also sogar noch in einen
> ATtiny25. :)

Ja ist nur ein Teilnehmer am 1 wire. Vom 1 wire her ganz einfach.
Für deine Hilfe bin ich dankbar.
Holger

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Holger W. schrieb:
> Für deine Hilfe bin ich dankbar.

Bin bei deinen Fragen inzwischen etwas skeptisch … „Hilfe“ wird in
diesem Forum verstanden als: „Ich helf' dir, es zu lernen“ und nicht
„Ich gebe dir stöpselfertige (Software)Baugruppen“.  Ein wenig solltest
du dich also schon in die Protokolle einarbeiten, die da benutzt
werden und verstehen, wie was zusammenspielt.

Aber da meine 1-wire-Implementierung ohnehin schon eine “beerware
license” drüberstehen hat, kann ich sie hier auch zum Besten geben.

In "project.h" steht dazu noch folgendes:
1
/* 1wire definitions */
2
#define OW_PORT         G
3
#define OW_PIN          5
4
5
extern bool ow_reset(void);
6
extern void Print_ROMCode(void);
7
extern double Read_Temperature(void);

OW_PORT und OW_PIN musst du natürlich auf deine Hardware anpassen,
und Print_ROMCode brauchst du vielleicht auch gar nicht.

p.s.: "hif.h" und "board.h" können wohl auch raus.

: Bearbeitet durch Moderator
von Holger W. (mb_holger)


Lesenswert?

Der Profi bin ich nicht und muss noch mal fragen.
Das Auslesen der Temperatur per 1 wire vom Sensor funktioniert im 
Projekt.
Das kann ich auch für den Atmega 8 oder ATtiny 85 programmieren auf der 
Sensdestelle. Ich habe dann die Temperatur in einer Variablen oder in 2 
Byte. Diese Variabe möchte ich dann zb. aller 1 min über den Sender an 
den Empfänger senden und in den Atmega 32 meines Projekts einlesen.



Mein Problem ist der C Code Teil für die  Ansteuerung des Senders  und 
ein  C Code Teil für das Empfangsteil. Ich brauche einen Ansatz für eine 
einfache Lösung zum Übertragen einer Variaben, oder der 2 Byte  vom 
Sensor aller ZB. 1 min. Ich komme hier nicht weiter. Gibt ein Protokoll 
und c Code dafür, oder müsste man ein eigenes entwickeln. zb. mit einen 
Interrupt am Emfänger.

oder gibt es eine andere einfache Lösung dafür.

Holger Weiß

von Holger W. (mb_holger)


Lesenswert?

Wie wäre dieser einfache Lösungsansatz. Ich erzeuge auf der Sendeseite 
eine Frequenz, die sich aus der  Temperatur berechnet. Diese Frequenz 
sende ich aller 1 min für zb. für 1 Sekunde über das Modul und lese die 
Freuenz am Empfänger Atmega ein und rechne die Temperatur zurück. Müsst 
dann mal sehen wie ich einfach die Frequenz am Eingang des Empfänger 
Atmega messen kann.

Holger

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Holger W. schrieb:
> Gibt ein Protokoll und c Code dafür,

Nun, ich würde die Sachen in einen String umwandeln und den dann
senden.  Das lässt sich immer recht einfach debuggen, einfacher
als eine Binärübertragung, und auf eine Millisekunde kommt es hier
nicht an.

Den Manchester-Code würde ich mit einem Timerinterrupt erzeugen:
In der ISR musst du in einer (statischen) Variablen 16 Takte abzählen.
Beim jeweils ersten (geradzahligen) Interrupt wird das aktuelle Bit
direkt ausgegeben, beim ungeradzahligen wird es invertiert ausgegeben
und das nächste Bit weitergeschoben.  Ungefähr so:
1
#define DATAPORT PORTB
2
#define DATABIT  (1 << 0)
3
4
uint8_t current_char;
5
volatile bool tx_busy;
6
7
ISR(TIM0_COMPA_vect)
8
{
9
  static uint8_t cnt;
10
11
  if ((cnt & 1) == 0)
12
  {
13
    /* even clock phase */
14
    if (current_char & 1)
15
      DATAPORT |= DATABIT;
16
    else
17
      DATAPORT &= ~DATABIT;
18
  }
19
  else
20
  {
21
    /* odd clock phase */
22
    if (current_char & 1)
23
      DATAPORT &= ~DATABIT;
24
    else
25
      DATAPORT |= DATABIT;
26
    /* shift next databit */
27
    current_char >>= 1;
28
  }
29
  if (++cnt == 16)
30
  {
31
    /* end of transmission */
32
    tx_busy = false;
33
    TIMSK &= ~(1 << OCIE0A);
34
  }
35
}

In der übergeordneten Routine muss man dann den Timer starten und
den Overflow-Interrupt freigeben sowie tx_busy setzen, nachdem man
das current_char beschrieben hat.  Danach warten, bis tx_busy wieder
frei ist.

Im Epfänger kann man die Taktflanken mit dem input capture ausmessen
und danach dann bestimmen, ob es eine 0 oder 1 ist.

von W.A. (Gast)


Lesenswert?

Bevor man irgendwelche Daten überträgt, wird man dem Empfänger eine 
Chance geben mussen, sich den Schlaf aus den Augen zu reiben, i.e. man 
muss Synchronisationsbits sende, damit die AGC vom Empfänger sich ggf. 
einpegeln kann. Auch wird man auf der Empfangsseite dafür sorgen müssen, 
dass in den Sendepausen das Rauschen der Welt die Empfangsroutine nicht 
irritiert.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

W.A. schrieb:
> Bevor man irgendwelche Daten überträgt, wird man dem Empfänger eine
> Chance geben mussen, sich den Schlaf aus den Augen zu reiben, i.e. man
> muss Synchronisationsbits sende, damit die AGC vom Empfänger sich ggf.
> einpegeln kann.

Ja, diese Idee hatte ich auch schon.  Man könnte das ja mit einer
anderen Frequenz senden und im Empfängerinterrupt dann nur Flanken
akzeptieren, die sauber ins Timing passen.

Wie ich oben schrieb: das soll eher eine Hilfe sein, wie man sich
dem Problem nähert denn eine schlüsselfertige Lösung.  Die habe ich
nicht, ich benutze sonst nur Transceiver mit hinreichender
„Intelligenz“, die all diesen Krams bereits in der Hardware erschlagen.

> Auch wird man auf der Empfangsseite dafür sorgen müssen,
> dass in den Sendepausen das Rauschen der Welt die Empfangsroutine nicht
> irritiert.

Das würde man durch so ein Zeitfenster ja auch mit erledigen.

von Holger W. (mb_holger)


Lesenswert?

Jörg W. schrieb:
  Die habe ich
> nicht, ich benutze sonst nur Transceiver mit hinreichender
> „Intelligenz“, die all diesen Krams bereits in der Hardware erschlagen.

Welche Transceiver sind das? Würden diese die Sache vereinfachen.
Muss denn die Funkstrecke neu erfunden werden. Ist mein Wunsch die 
Temperatur
drahtlos zu übertragen und mit in mein  Atmega 32 Projekt einzubinden 
so exotisch.

Ich habe das blink blink schon hinter mir, aber das ist mir jetzt doch 
zu hoch. Das habe ich mir einfacher vorgestellt.

Holger

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Holger W. schrieb:
> Welche Transceiver sind das?

In meinem Falle diverse Atmel-Transceiver für IEEE 802.15.4.  Die
gibt's teilweise auch mit integriertem AVR (ATmega128RFA1,
ATmega256RFR2).  Als komplette Module ist das bei Dresden Elektronik
zu haben.

Vorsicht, halbe Eigenwerbung: Das µracoli-Projekt bietet dafür eine gute
Infrastruktur für Datenübertragung und alles mögliche rundrum.  Damit
könntest du in der Tat an einen Modul deinen 1-wire-Sensor hängen und
den die Daten zum anderen Modul übertragen lassen, der sie vielleicht
per RS-232 (OK, Pegelwandler oder USB-Wandler brauchs du noch) zum
PC überträgt.

von Holger W. (mb_holger)


Lesenswert?

Ich habe die Internetseite Dresden Elektronik angesehen. Interssante 
Sachen aus Sachsen. Ich bin auch aus der Gegend, aber leider kein 
IT-Spezialist.



Mein Projekt zeichnet bis zu 8 Temperaturen auf SD Karte, zur Auswertung 
von Bauteilen und deren Wärmedämmeigenschaften und 
Speichereigenschaften, sowie deren Sommerlichen Wärmeschutz in Exel. Für 
die Außentemperaturen Luft und Oberflächentemperatur habe ich zwei 
Sensoren. Die 8 möglichen Sensoren sind über einzelne 1 wire mit dem 
Atmega 32 angeschlossen.

Was ich gesucht habe für mein fertiges Projekt mit dem Atmega 32:
1 wire Leitung auftrennen - zwei Funkmodule dawischenschalten - und 
fertig.
alles ohne Programmierung und Codeänderungen.

Holger

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Holger W. schrieb:
> 1 wire Leitung auftrennen - zwei Funkmodule dawischenschalten - und
> fertig.
> alles ohne Programmierung und Codeänderungen.

Das geht leider so nicht.  Abgesehen davon, dass es ziemlich
umständlich zu realisieren wäre, rein technisch würde dir die
Latenz der Datenübertragung über die Funkstrecke ausreichend in
die Suppe spucken, dass man das 1-wire-Protokoll darüber nicht
1:1 umsetzen könnte.

Aber es genügt ja völlig, das 1-wire-Zeug am Sensorknoten zu haben.
Der Empfängerknoten (Datenkonzentrator) muss sich dann mit dem
Lowlevel-Kram des Protokolls gar nicht erst rumschlagen, sondern
bekommt fix und fertig aufbereitete Daten als Zeichenstrom zugesandt.

von Holger W. (mb_holger)


Lesenswert?

Holger W. schrieb:
> 1 wire Leitung auftrennen - zwei Funkmodule dawischenschalten - und
> fertig.
> alles ohne Programmierung und Codeänderungen.

geht nicht, dass habe ich dank eurer Geduld nun verstanden. Hat lange 
gedauert.

Den Manchester-Code oder VirtualWire (VirtualWire.h)werde ich einbinden 
müssen, und am Sensor einen Atmega anschließen.

Wird die VirtualWire.h 
https://www.pjrc.com/teensy/td_libs_VirtualWire.html
auch für den Atmega 32 funktionieren, oder gibt es Manchester-Code 
Library in c für die Atmega´s oder habt ihr einen Tipp für eine 
verwendbare Library.

Holger

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Holger W. schrieb:
> Wird die VirtualWire.h
> https://www.pjrc.com/teensy/td_libs_VirtualWire.html
> auch für den Atmega 32 funktionieren

Da die Megas in so ziemlich jeder Hinsicht eine Obermenge an Funktionen
gegenüber den Tinys bieten, sehr wahrscheinlich.  Den Code habe ich mir
aber jetzt nicht angesehen.

von Holger W. (mb_holger)


Lesenswert?

Die VirtualWire.h  https://www.pjrc.com/teensy/td_libs_VirtualWire.html
ist ein Projekt für den Arduino, deshalb meine Frage.

Holger

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Holger W. schrieb:
> Die VirtualWire.h  https://www.pjrc.com/teensy/td_libs_VirtualWire.html
> ist ein Projekt für den Arduino, deshalb meine Frage.

Ja, und?  Ein Arduino ist einfach ein AVR (oder mittlerweile ein
Cortex-M0), der in C++ programmiert wird.

Allerdings bringt die Arduino-Umgebung einige Bibliotheksfunktionen
mit.  Da musst du dann sehen, ob du die Aufrufe im Code drin lassen
willst und die Funktionen für deine Hardware nachbaust, oder ob du
die entsprechende Funktionalität anderweitig ersetzen willst.

Da die Programmiererei ja für dich eher nur der Weg zum Ziel ist, wäre
es natürlich am einfachst, du würdest irgendeine Arduino-kompatible
Hardware nutzen, denn dann hast du den Teil schon mal plug&play.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.