Übersetzungen dieser Seite:

Installation des Merkur-Connect Pi-Expansionboard am Raspberry Pi

Einleitung

An den Rapsberry Pi 3 Model B sollen Funksensoren angeschlossen werden, die mit dem 6loWPAN Protokoll und IPv6-Adressräumen arbeiten soll. Dafür wird an den Rasberry Pi das Merkur-Connect Pi-Expansionboard (6loWPAN-Modul über die UART-Schnittstelle angeschlossen. Dieses Funkmodul wird zu einem zweiten 6loWPAN-Funkmodul eine Verbindung herstellen und damit ein Wireless Sensor Network aufbauen. An den zweiten Sensor befindet sich ein Taster. Der Zustand des Tasters kann über CoAP-Anfragen über das Funknetzwerk abgefragt werden.

Bauteile

  • Raspberry Pi 3
  • 5 V, 2500 mA Micro-USB-Steckernetzteil
  • 1 x Merkur-Connect Pi-Expansionboard 6loWPAN-Modul
  • 1 x Merkur-Board 6loWPAN-Modul
  • 1 x USB-TTL-Adapter 3v3 zum Programmieren der 6loWPAN-Module
  • 1 x Batteriehalter für AA Zellen
  • 2 x 1,5 V AA Batterie zur Spannungsversorgung des zweiten Funkmodules

Arbeitsschritte

1. Das Merkur-Connect Pi-Expansionboad und die Merkur-Boards vorbereiten

Falls die Merkur-Boards noch nicht programmiert wurden, muß das Board noch geflasht werden. Dafür müssen folgende Tools installiert werden:

Installation der Softwareentwicklung für Contiki-OS

Zunächst mußt Du die notwendigen Programme und Dateien installieren, die Du für die Softwareentwicklung für Contiki-OS für das Merkur-Board benötigst. Eine Anleitung findest Du hier:

2. Das Merkur-Connect Pi-Expansionboard in den Raspberry einbauen

Vor dem Einschalten des Raspberry Pis wird das Merkur-Connect Pi-Expansion an die GPIO-Leiste des Raspberrys eingesteckt werden.

3. Raspberry Pi Edge-Router

Installiere Raspbian Jessie Lite 2016-05-27 auf deine SD Karte. Loge dich über ssh am Raspberry ein.

Folgende Befehle im Terminal eingeben:

wget https://github.com/osdomotics/smart-sarah/archive/master.zip
unzip master.zip
cd smart-sarah-master/raspi-edge/
sudo su
./edge_install_script.sh

4. Modul am Raspi ansprechen

Nun kann mit

/sbin/ifconfig

überprüft werden, ob die tun0-Schnittstelle vorhanden ist.

tun0      Link encap:UNSPEC  Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet Adresse:127.0.1.1  P-z-P:127.0.1.1  Maske:255.255.255.255
          inet6-Adresse: fe80::1/64 Gültigkeitsbereich:Verbindung
          inet6-Adresse: aaaa::1/64 Gültigkeitsbereich:Global
          UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:500
          RX bytes:0 (0.0 B)  TX bytes:228 (228.0 B)

Die IPv6-Adresse der tun0-Schnittstelle lautet aaaa::1.

Die IPv6-Adresse des Merkur-Connect Pi-Expansionboard am Raspberry Pi lautet aaaa::221:2eff:ff00:xxxx. Ob die Schnittstelle angesprochen werden kann, kann mit einem Ping überprüft werden:

ping6 aaaa::221:2eff:ff00:xxxx

Vorsicht: ersetzt xxxx mit den letzen 4 Ziffern der MAC Adresse die du am Modul findest.

Sobald das LED auf der Platine nicht mehr leuchtet läuft tunslip6, und dann kann man sich die Server Adresse auch aus dem Log holen:

sudo journalctl -u tunslip6 | grep -A1 'Server IPv6 addresses'

oder

grep -A1 'Server IPv6 addresses' /var/log/syslog

4. Routing-Tabelle des 6loWPAN-Netzes

Die Routing-Tabelle des Merkur-Connect Pi-Expansionboards am Raspberry kann mit folgendem Befehl ausgelesen werden

cd /usr/src

wget -6 "http://[aaaa::221:2eff:ff00:xxxx]"

Das Ergebnis wird in die Datei index.html geschrieben.

Als Ergebnis wird in unserm Beispiel folgendes angezeigt (ACHTUNG: Das zweite Merkur-Board, das als Funksensor verwendet werden soll, muß an Strom (Batterie) angeschlossen sein):

Neighbors
fe80::221:2eff:ff00:330e REACHABLE

Routes
aaaa::221:2eff:ff00:330e/128 (via fe80::221:2eff:ff00:330e) 16711391s

Daraus entnehmen wir, dass es einen weiteren Teilnehmer im 6loWPAN-Funknetz mit der IPv6-Adresse aaaa:221:2eff:ff00:330e gibt.

9. Installation eines Command-Line-Interfaces

Um auf dem Raspberry Pi über das Merkur-Connect Pi-Expansionboard auf das 6loWPAN-Netz über CoAP zugreifen zu können, müssen wir ein passendes Tool installieren:

10. Verwendung der CoAP-Command-Line-Interfaces

Knoten des Netzwerkes identifizieren

**tdb**

Ressourcen eines Konten identifizieren

Mit folgender CoAP-Abfrage können wir die Ressourcen (URI), die ein Knoten zur Verfügung stellt, erfragen:

node 
coap get coap://[aaaa::221:2eff:ff00:330e]:5683/.well-known/core

Als Antwort gibt es folgende Auflistung:

v:1 t:0 tkl:0 c:1 id:30513

</.well-known/core>;ct=40,
</info>;title="Info";rt="simple.dev.n"v:1 t:0 tkl:0 c:1 id:30514,
</s/button>;title="Event demo";obs,
</a/led>;title="LED: POST/PUv:1 t:0 tkl:0 c:1 id:30515 T mode=on|off";rt="simple.act.led",
</a/toggle>;title="Red LED";rv:1 t:0 tkl:0 c:1 id:30516 t="Control",
</s/battery>;title="Battery status";rt="Battery"

Zustand des Tasters am Sensor abfragen

Am ??? Eingang des Funksensors befindet sich ein Taster. Mit folgender Abfrage kann der Zustand des Tasters abgefragt werden:

node 
coap get -o coap://[aaaa::221:2eff:ff00:330e]:5683/s/button

Die Antwort sieht dann so aus:

v:1 t:0 tkl:0 c:1 id:42458

It's eventful!

wenn der Taster am Funksensor nicht gedrückt wurde und



wenn der Taster gedrückt wurde.

LED am Funksensor steuern

Mit folgenden CoAP-Befehlen kann der Zustand der LED am Funksensor gesteuert werden:

echo -n "mode=on"  | node coap post coap://[aaaa::221:2eff:ff00:330e]:5683/actuators/leds?color=r -f -
echo -n "mode=off" | node coap post coap://[aaaa::221:2eff:ff00:330e]:5683/actuators/leds?color=r -f -

Mit folgender CoAP-Abfrage kann der Zustand der LED am Funksensor ausgelesen werden:

node coal -o get coap://[aaaa::221:2eff:ff00:330e]:5683/a/led

de/tutorials/installation_merkur_connect_pi_expansionboard_software.txt · Zuletzt geändert: 2016/08/10 09:45 von harald42