Hallo liebe Mikrocontroller-Comunity,
vorab zu mir, ich habe seit ca. 3 Monaten das Hobby Raspi und alles
mögliche was dazu gehört. Leider hilft mir mein Maschinenbaustudium hier
recht wenig^^. Programmierkenntnisse sind aber vorhanden bzw. mein
geringstes Übel. Zur Hardware die ich benutze:
Raspberry Pi 2 B mit ARM Cortex A7 Quad-Core-Prozessor (4x 900 MHz)
Arduino Uno R3
AM Transmittermodul TX-SAW MID/5V (Conrad: 191525)
AM Empfängermodul RX-4M50RR30SF (Conrad: 190264)
Soweit hoffe ich habe ich die grundlegenden Sachen gesagt. Nun zu meinem
Problem. Mir ist es momentan nicht vergönnt irgend ein Signal vom
Transmitter zum Receiver zu schicken. Mein Ziel ist es einen Sensor per
Funk auszulesen und dann die Daten mittels Raspi in einen Webserver
einzupflegen. Das ganze drumherum funktioniert soweit bei mir, nur an
der Funkverbindung haperts und auch nach langer Suche komme ich nicht
vorwärts. Achja, die Sensoren befinden sich in einem Labor, sollen
Batteriebetrieben werden und an eine zentrale Station ihre Daten liefern
(max ca. 20m entfernt). Darum auch die Kabellose Kommunikation ;)
Mein Transmitter ist wie folgt verbunden:
Sender -> Arduino
Pin1 -> Pin10
Pin2, Pin7, Pin9 -> GND
Pin10 -> 5V
Receiver:
Receiver -> Arduino
Pin2, Pin7, Pin11 -> GND
Pin10 -> 5V
Pin14 -> Pin2
Ich denke dies sollte soweit richtig sein. Als nächstes habe ich in der
Arduino IDE die entsprechenden Programme geschrieben:
Transmitter
1 |
|
2 | #include <VirtualWire.h>
|
3 |
|
4 | #undef int
|
5 | #undef abs
|
6 | #undef double
|
7 | #undef float
|
8 | #undef round
|
9 |
|
10 | void setup()
|
11 | {
|
12 | vw_set_ptt_inverted(true);
|
13 | vw_setup(2000);
|
14 | vw_set_tx_pin(7);
|
15 | }
|
16 |
|
17 | void loop()
|
18 | {
|
19 | const char *msg = "Testnachricht";
|
20 | vw_send((uint8_t *)msg, strlen(msg));
|
21 | vw_wait_tx();
|
22 | delay(200);
|
23 | }
|
Receiver
1 | #include <VirtualWire.h>
|
2 |
|
3 | #undef int
|
4 | #undef abs
|
5 | #undef double
|
6 | #undef float
|
7 | #undef round
|
8 |
|
9 | void setup()
|
10 | {
|
11 | Serial.begin(9600);
|
12 |
|
13 | vw_set_ptt_inverted(true);
|
14 | vw_setup(2000);
|
15 | vw_set_rx_pin(8);
|
16 | vw_rx_start();
|
17 | }
|
18 |
|
19 | void loop()
|
20 | {
|
21 | uint8_t buf[VW_MAX_MESSAGE_LEN];
|
22 | uint8_t buflen = VW_MAX_MESSAGE_LEN;
|
23 |
|
24 | if (vw_get_message(buf, &buflen)) {
|
25 | int i;
|
26 | for (i = 0; i < buflen; i++) {
|
27 | Serial.print((char)buf[i]);
|
28 | }
|
29 | Serial.println("");
|
30 | }
|
31 | }
|
Ich habe dabei die VirtualWire Library verwendet. Soweit so gut, keine
Fehlermeldungen oder dergleichen.
Nur bekomme ich nichts angezeigt oder übertragen etc....
Stehe gerade total aufm Schlauch. Hoffe ihr könnt mir da weiterhelfen
und sage ob ich irgendwo was vergessen habe, falsch gedacht oder nen
Fehler ist :)
Falls noch irgendwelche Infos fehlen bescheid sagen ;)
Gruß Fr1tz3