Hallo Leute,
ich bin noch relativ neue in dem Bereich und habe einige Fragen. Vielleicht könnt ihr mir helfen Licht ins Dunkle zu bringen.
Also mein Ziel ist es einen Arduino UNO mit einem Raspberry PI 3 zu vernetzen. Das ganze soll über den AT86RF233 Transceiver passieren diesen habe ich auf beiden Seiten. Das ganze soll dann auf IEEE802.15.4 laufen. An dem Arduino sollen dann verschiedene Sensor angebracht werden um zum Beipiel die Temperatur zu übertragen.
Den Transceiver verwende ich:
http://openlabs.co/OSHW/Raspberry-Pi-802.15.4-radio
Was ich schon zum laufen bekommen hab ist das der Arduino Daten von dem Raspberry empfängt. Dank git Hub:
Mein Problem ist das Senden von Daten. Es gibt den Befehl Send nur muss dieser den Header von IEEE802.15.04 im Anfang stehen haben nur verstehe ich nicht wie dieser aufgebaut sein muss.
Der Befehl Daten senden vom AT86RF233:
/**
* @brief Convenience function for simply sending data
*
* @note This function ignores the PRELOADING option
*
* @param[in] data data to send (must include IEEE802.15.4 header)
* @param[in] len length of @p data
*
* @return number of bytes that were actually send
* @return 0 on error
*/
size_t send(uint8_t *data, size_t len);
Der Raspberry PI benutzt IPV6 über UDP zum Senden von Daten an einen 3 PI:
Das ist der Code dafür:
import socket
5 import time
6 import Adafruit_DHT
7
8 UDP_IP = 'ff02::1'
9 UDP_PORT = 1234
10
11
12def data_DHT11():
13 humidity, temperature = Adafruit_DHT.read_retry(11, 4)
14 measure = ('Temp: {0:0} C Humidity: {1:0} %'.format(temperature, humidity))
15 textmeasure = str(measure)
16 return textmeasure
17
18
19def main():
20 interface = socket.if_nametoindex('lowpan0')
21 sock = socket.socket(socket.AF_INET6,socket.SOCK_DGRAM)
22 sock.bind((UDP_IP, UDP_PORT, 0, interface))
23
24 while True:
25 sock.sendto(data_DHT11().encode(),(UDP_IP,UDP_PORT))
26 time.sleep(10)
27
28
29if __name__ == '__main__':
30 main()
Kann mir hier jemand helfen das ich das auch auf dem Arduino zum laufen bekomme?
Oder mir erklären wie ich Daten per AT86RF233 senden kann.
Jede Hilfe ist willkommen!