Hallo zusammen,
ich nutze einen Arduino Nano als Sender:
Sensor: DHT 11 an PIN 2
Sender: 433 mhz an PIN 8
Zurzeit möchte ich den Empfangenen Wert im Seriellen Monitor Anzeigen
und sie später auf einem OLED Display anzeigen. (das wird wohl noch
etwas dauen :-)
Auf dem Sender wird im Seriellen Monitor schon das richtige Angezeigt :
Temp:
29.00
C
HUM:
46.0
Auf dem Empfänger wird im Seriellen Monitor leider nur ein Punkt und ein
Quadrat angezeigt.
Liegt es daran das ich krampfhaft versuche den Wert direkt zu versenden
ohne Ihn in einen String umzuwandeln ? ( das habe ich noch nicht
bekommen).
Ich hoffe jemand kann mir bei meinem Problem Weiter Helfen.
Hier der Sketch des Senders:
1 | #include <dht11.h>
|
2 | #include <VirtualWire.h>
|
3 |
|
4 | dht11 DHT11;
|
5 | #define DHT11PIN 2
|
6 |
|
7 | void setup() {
|
8 |
|
9 |
|
10 | Serial.begin(9600);
|
11 |
|
12 | vw_setup(2000);
|
13 | vw_set_tx_pin(8);
|
14 |
|
15 | }
|
16 |
|
17 | void loop() {
|
18 |
|
19 | int chk = DHT11.read(DHT11PIN);
|
20 |
|
21 | Serial.println("Temp: ");
|
22 | Serial.println((float)DHT11.temperature, 2);
|
23 | Serial.println(" C");
|
24 | delay(500);
|
25 |
|
26 | Serial.println("HUM: ");
|
27 | Serial.println((float)DHT11.humidity, 2);
|
28 | Serial.println(" C");
|
29 |
|
30 | char msg[2] = {DHT11.humidity, 2};
|
31 | vw_send((uint8_t *)msg, 2);
|
32 | vw_wait_tx(); // Wait until the whole message is gone
|
33 |
|
34 |
|
35 | delay(5000);
|
36 |
|
37 |
|
38 |
|
39 | }
|
Hier der Sketch des Empfängers:
1 | #include <VirtualWire.h>
|
2 |
|
3 |
|
4 | int i;
|
5 | uint8_t buf[VW_MAX_MESSAGE_LEN];
|
6 | uint8_t buflen = VW_MAX_MESSAGE_LEN;
|
7 |
|
8 | void setup()
|
9 | {
|
10 | Serial.begin(9600);
|
11 | Serial.println("device is ready...");
|
12 |
|
13 | vw_set_rx_pin(12);
|
14 | vw_setup(2000); // bps
|
15 | vw_rx_start();
|
16 | }
|
17 |
|
18 | void loop()
|
19 | {
|
20 |
|
21 |
|
22 | if (vw_get_message(buf, &buflen)) { // überprüfen ob eine Nachricht eingegangen ist
|
23 | for (i=0;i< buflen;i++) {
|
24 | Serial.print((char)buf[i]); // Nachricht aus buf ausgeben
|
25 | }
|
26 | Serial.println(" ");
|
27 | }
|
28 | }
|
Langsam bin ich verzweifelt, massages wie Hallo oder ähnliches habe
bereits hinbekommen, aber einen ausgelesenen wert aus dem DHT 11 leider
noch nicht, zu mal er irgendwann auch beide werte übertragen sollte.
Wichtig ist vielleicht noch zu sagen das DHT 11 ohne Kommastellen die
werte ausgibt (erstmal schwierig genug :smiley-confuse: )