Arduino und RasPi drahtlos koppeln

LLAP

Zwar erleichtert WIK den Einstieg in den Umgang mit dem RasWIK-Paket, hat aber nur begrenzten praktischen Nutzen. Erfreulicherweise beherrschen das Slice of Radio und der XinoRF das Lightweight Local Application Protocol (LLAP), über das sie drahlos Nachrichten austauschen können. Im Endeffekt bedeutet das, dass Sie bei Bedarf den XinoRF vom RasPi aus mittels Python-Skript steuern. Listing 1 demonstriert das anhand des bereits beschriebenen LED-Versuchs – diesmal aber ohne WIK und mit drahtloser Steuerung.

Listing 1

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Einfaches Python-Skript zur LED-Ansteuerung
import serial
from time import sleep
port = '/dev/ttyAMA0'
baud = 9600
serial_connection = serial.Serial(port=port, baudrate=baud)
sleep(0.2)
serial_connection.write('a--D11HIGH--')
sleep(3)
serial_connection.write('a--D11LOW--')
serial_connection.close

Das Skript definiert zunächst den Port und dessen Geschwindigkeit. Anschließend öffnet es eine serielle Verbindung und schickt Nachrichten an den XinoRF. Die lauten hier a--D11HIGH-- und a--D11LOW-- und setzen Pin 11 auf HIGH respektive LOW, was die LED ein- und ausschaltet.

Das Auslesen eines Pin-Werts auf dem XinoRF gestaltet sich ähnlich simpel. Die beiden Anweisungen aus Listing 2 lesen 12 Zeichen über den seriellen Port ein und geben diese aus.

Listing 2

 

reading = serial_connection.read(12)
print (reading)

Ans Eingemachte

Die Möglichkeit, programmgesteuert Werte über die XinoRF-Pins einzulesen, eröffnet ein weites Feld an Einsatzmöglichkeiten. So können Sie beispielsweise den mitgelieferten Fotowiderstand (Light-dependent Resistor, LDR) und einen normalen 10K-Widerstand mit dem Board verbinden, die gelieferten Werte kontinuierlich einlesen und in eine Textdatei schreiben.

Dazu verbinden Sie zunächst einmal, wie in Abbildung 7 gezeigt, die Widerstände mit dem Board. Dann tippen Sie den Code aus Listing 3 ab, speichern ihn als read_write_values.py und machen die Datei über das Kommando chmod +x read_write_values.py ausführbar.

Abbildung 7: Verkabelungsdiagramm für den Fotowiderstand.

Wie der Code aus dem vorigen Beispiel initialisiert auch dieses Skript zunächst eine serielle Schnittstelle und stellt die Verbindung zum XinoRF her. Über eine Endlosscheife liest es dann die Werte von Pin 0 aus. Die zurückgelieferten Rohdaten der Form a--A0+593— parst es dann, indem es die ersten sechs Zeichen verwirft und alle Minus-Zeichen entfernt.

Übrig bleibt der Messwert, den das Skript dann an die Datei values.txt anhängt. Die sleep-Befehle innerhalb der Schleife definieren die Intervalle zwischen den einzelnen Lese- und Schreibvorgängen. Das Skript arbeitet die Schleife so lange ab, bis ein Fehler auftritt, wie etwa eine Unterbrechung per Tastatur mit [Strg]+[C].

Listing 3

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import serial
import sys
from time import sleep
port = '/dev/ttyAMA0'
baud = 9600
serial_connection = serial.Serial(port=port, baudrate=baud)
sleep(0.2)
while True:
  try:
    serial_connection.write('a--A00READ--')
    sleep(0.2)
    rawdata = serial_connection.read(12)
    value = rawdata[7:]
    value = value.strip('-')
    print value
    with open("values.txt", "a") as f:
      f.write(value +"\n")
    sleep (3)
  except KeyboardInterrupt:
    sys.exit(0)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

12/2019
RasPi-Alternativen

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Grußbotschaften

    Mit Sonic Pi zaubern Sie komplexe Sounds, die Sie bei Bedarf sogar noch während des Abspielens modifizieren.

  • Das Runde und das Eckige

    Mit dem MCP4725 ergänzen Sie einen RasPi um einem D/A-Wandler, der bei Bedarf noch weitere Funktionen erfüllt.

  • Alles unter Kontrolle

    Schon ein einfaches Mikrocontrollerboard wie das CY8CKIT-049-42xx bietet erstaunlich viele Möglichkeiten beim Ansteuern von Hardware.

  • Viele Kerne

    Das Spresense Development Board von Sony lässt sich mit der Arduino IDE programmieren und bringt auch ein eigenes Entwickler-SDK mit.

  • Exotische Früchte

    Der aus China stammende Orange Pi positioniert sich mit einem guten Preis und interessanten Features gegen die RasPi-Truppe. Kann er sich auch behaupten?

  • Flexibler Surfer

    Mit dem neuen RasPi 4 setzen Sie einen öffentlichen Webkiosk schnell und kostengünstig auf.

  • Auskunftsfreudig

    Viele Devices, so auch der E.ON-Aura-Controller, verwenden eine Schnittstelle namens REST, um Zustandsdaten zu übermitteln. Mit ein wenig Bastelei lesen Sie diese auch über Ihr Smartphone aus.

  • Doppelt gemessen

    Mit wenig Aufwand und einem Pi Zero realisieren Sie einen mobilen Zweikanal-Spannungsprüfer.

  • Elegant zusammengeführt

    Tizonia streamt Musik von Online-Quellen und lokalen Sammlungen. Die schlanke Architektur macht den Player zur guten Wahl für den Einsatz auf dem RasPi.

  • Kommunikativ

    Nicht jeder traut sich zu, sein eigenes Smartphone zu bauen. Allerdings kann jeder Linux-Nutzer den Raspberry Pi im Handumdrehen zu einem VoIP-Telefon aufrüsten.