Archiv der Kategorie: Raspberry Pi

TMP36 LoRa Node

architecture

Die aus einem Arduino Uno und Dragino LoRa Shield V1.2. aufgebaute TMP36 LoRa Node misst die Aussentemperatur und überträgt die Messdaten (drahtlos) an das im Inneren platzierte LoRa Gateway.

Über dieses Gateway ist die TMP36 LoRa Node  in das TTN LoRaWAN integriert. Das LoRa Gateway besteht aus einem Raspberry Pi 3 mit einem Dragino LoRa /GPS HAT.

Dieses einkanalige LoRa Gateway hat nicht die Möglichkeiten eines voll ausgebauten LoRa Gateways, trotzdem ist es für diese einfache Aufgabenstellung geeignet. Das TTN Gateway ist bestellt und wird erwartet.

Die gemessenen Daten werden vom LoRa Gateway via Internet an den TTN Server übertragen. Zugriff auf die Daten ist über die TTN Console möglich.

Um die Daten auch anderen Anwendungen zur verfügung zu stellen, kann auf diese via MQTT zugegriffen werden. Ich verwende Mosquitto auf einem anderen Raspberry Pi, um die Daten zu abonnieren und zur Visualisierung an den Thingspeak Server zu senden. In die Website ckuehnel.ch/TMP36_LoRa_Node.html habe ich diese Grafik eingebunden.

Die für dieses Anwendungsbeispiel verwendete Software ist auf  Github abgelegt.

Advertisements

ASUS bietet leistungsstarken Raspberry Pi Clone an

sc14363-40

Zahlreiche Online Medien habe in den letzten Tagen die neueste Erweiterung der Raspberry Pi Familie herausgestellt. ASUS erweitert mit dem Tinker Board die Familie hinsichtlich Performance deutlich.

Den Kern des Systems ist eine Quad-Core ARM Cortex A17-CPU mit  1,8 GHz Taktfrequenz und eine Mali-T764 GPU dar. Die Speicherausstattung des Systems liegt bei 2 GB. Für die Ausgabe kann wahlweise ein HDMI-Port mit einer maximalen Auflösung von 3840 x 2160 Pixel (4K) oder ein 15-Pin MIPI DSI dienen. Bei der Soundausgabe setzt das System auf einen Realtek-Chip mit 192 KHz/24-Bit Audio. Für den Anschluss einer Kamera steht ein CSI Port zur Verfügung. Als Betriebssystem wird Debian mit KODI eingesetzt.

Bestellt kann das Tinker Board derzeit nur über Farnell Irland zum Preis von ca. € 55,00.

 

LoRa Gateway aktiv…

Heute habe ich zu Testzwecken ein LoRa Gateway installiert. Im TTN Mapping (TheThingsNetwork) ist es als „CK LoRa Gateway“ markiert.

Ein LoRa Concentrator iC880A ist bei IMST bestellt, dann wird das Gateway LoRaWAN kompatibel.

ck-lora-gateway

In den nächsten Tagen bekommt die eingesetzte LoRa Node (Dragino Lora Shield & Arduino Uno) noch einen Temperatursensor, dessen Daten dann übermittelt werden. Es folgen später stromsparende Varianten auf Basis des  LoRa Transceiver RFM95W & Arduino Pro Mini, Raduino32 SX1272 und LoPy.

Raspberry Pi 2 und Real-Time Linux

Das Echtzeitverhalten des Single-Core Raspberry Pi wurde im Beitrag Echtzeitfähiger Raspberry Pi untersucht. Der RT Patch des Kernel wurde beschrieben.

Mittlerweile sind auch Ergebnisse für den Quad-Core Raspberry Pi 2 verfügbar. In der QA-Farm von OSADL wird das Real-Time Verhalten einem ständigen Monitoring unterzogen. Bei Interesse sollte unbedingt der betreffende Beitrag in den OSADL News gelesen werden.

Mit dem RT Patch des Kernels werden nunmehr die folgenden Latenzzeiten erreicht.

rbs3s

 

IoT Projekte mit Cayenne erstellen

Cayenne bezeichnet sich selbst als den ersten  Drag & Drop IoT Builder in der Welt. Grund genug das Ganze auszuprobieren. Details sind unter http://www.cayenne-mydevices.com/ zu finden.

Was wird benötigt?

  1. Eine mit dem Internet verbundene Hardware (Raspberry Pi oder Arduino)
  2. Smartphone mit iOS oder Android oder ein Browser auf dem PC
  3. Ein Cayenne Account

Am Einfachsten ist die Installation mit dem Smartphone. Nach Auswahl des hier verwendeten Raspberry Pi werden Libraries und ein Agent auf den Raspberry Pi installiert und nach ca. 10 Minuten kann das erste Projekt gestartet werden.

Ich habe hier einen mit einem Enviro pHAT von Pimoroni ausgestatteten Raspberry Pi Zero wegen des dort vorhandenen AD-Converters ADS1015 verwendet und an diesen einen Temperatursensor TMP36 angeschlossen. Dieser liefert eine zur Temperatur proportionale Ausgangsspannung.

enviro-phat

Zuerst fügt man auf dem Cayenne Desptop den ADC hinzu und bekommt damit das Feld Analog Input, selektiert den ADC-Kanal und verbindet dann den Sensor TMP36 mit diesem. Daraufhin erhält man das Feld TMP36. Die anderen Felder werden defaultmäßig bereitgestellt. Die Anzeigen lassen sich konfigurieren.

cayenne-desktop

Mit wenigen Schritten hat man erreicht, dass auf dem Dashboard eine funktionierende Anzeige der gemessenen Temperatur erscheint.

Ebenso kann der Verlauf des Messwerte über einer vorwählbaren Zeit als Graph dargestellt werden.

tmp36_verlauf

Die Cayenne Plattform ist noch in Entwicklung. Neue Devices, wie bspw. LoRa, kommen hinzu. Die Palette der Sensoren und Aktoren wird erweitert etc. Diesen Entwicklungsstand spürt man an der einen oder anderen Ecke. Ein Blättern im Forum hilft den Eindruck etwas abzurunden. Interessant bleibt der Ansatz aber allemal.

 

Nextcloud/ownCloud

ownCloud als Universal File Access Plattform hat nicht nur für Unternehmen eine starke Verbreitung gefunden und kann sowohl auf eigenen Servern als auch in externen Rechenzentren gehostet werden. Ein Überblick über die Möglichkeiten und die Architekture von ownCloud ist hier zu finden.

Zu den Hintergründen, warum es nun Nextcloud und ownCloud gibt, möchte ich auf einen Beitrag im Linux-Magazin verweisen.

Will man sich nicht die Mühe machen, ownCloud auf einem eigenen System zu installieren, dann bieten sich externe Anbieter an, die Transparenz und Datensicherheit garantieren.

Für erste Test bietet u.a. der Schweizer Anbieter woelkli.com einen Gratiszugang mit 500 MB an. Die zur Verfügung stehenden Pakete und die Features sind detailliert beschrieben. Für alle möglichen Geräte sind ownCloud Clients vorhanden.

Der Zugriff auf die Daten kann aber auch über ein Webinterface oder WebDAV erfolgen.

Auf einem Linux-Device (hier ein Raspberry Pi 3) ist dazu das WebDAV Filesystem zu installieren und ein Directory für das Mounting einzurichten:

apt-get install davfs2
mkdir /mnt/DAV
mount -t davfs cloud.woelkli.com/remote.php/webdav /mnt/DAV

Alle ins Directory /mnt/DAV geschriebenen Dateien werden dann auf dem ownCloud-Server und den mit ihm synchronisierten Clients zur Verfügung stehen.

Wie man Dropbox, Box und 4share einbinden kann, ist hier beschrieben.

Mit der Nextcloud Box steht nun auch eine vorbereitete Hardware zur Verfügung.

Enviro pHAT am Raspberry Pi (Zero)

Die englische Firma Pimoroni bietet sogenannte pHATs (HAT = Hardware at Top) für den Raspberry Pi an. Von den Abmessungen her orientieren sich diese am Raspberry Pi Zero. Das Interface ist aber durch den 40-poligen GPIO-Stecker definiert, so dass ein solches pHAT auf jeden, diesen Stecker aufweisenden Raspberry Pi installiert werden kann.

Enviro pHAT umfasst vier unterschiedliche Sensoren, die die Messung von Temperatur und Druck, Licht und Farben (RGB), Bewegung in drei Achsen, Ausrichtung des Magnetfelds (Compass) und Gleichspannung über vier Analog-Eingänge ermöglichen. Ausserdem befinden sich zu Beleuchtungszwecken zwei weisse LEDs auf diesem pHAT.

Enviro pHAT Features:

  • LSM303D accelerometer/magnetometer sensor (I2C Slave Addr 0x1d)
  • TCS3472 light and RGB colour sensor (I2C Slave Addr 0x29)
  • ADS1015 4-channel 3.3v, analog to digital sensor (ADC) (I2C Slave Addr 0x48)
  • BMP280 temperature/pressure sensor (I2C Slave Addr 0x77)
  • Two LEDs for illumination (GPIO4)

i2c map

Eine Python Library unterstützt eine komfortable Programmierung in Python. Installation und Inbetriebnahme sind im Dokument „Getting started with Enviro pHAT“ beschrieben.

Bei der Inbetriebnahme blieben die LEDs dunkel. Es muss sicher gestellt sein, dass GPIO4 frei zur Verfügung steht und das Script setup.py gestartet wurde. Danach sollte alles problemlos laufen.

Mit dem Script test_all.py kann nun jede Funktion des Enviro pHAT getestet werden. Der Screenshot zeigt die Ausgabe über die Console.

Unbenannt

#!/usr/bin/env python

import sys
import time
import datetime

from envirophat import light, weather, motion, analog, leds


def write(line):
 sys.stdout.write(line)
 sys.stdout.flush()

write("--- Enviro pHAT Monitoring ---")

try:
 while True:
 leds.on()
 time.sleep(0.02)
 leds.off()
 rgb = light.rgb()
 analog_values = analog.read_all()

output = """
Date : {n}
Temperature: {t} grd C
Pressure : {p} hPa
Light : {c}
RGB : {r}, {g}, {b} 
Heading : {h}
Analog : 0: {a0}, 1: {a1}, 2: {a2}, 3: {a3}
""".format(
 n = datetime.datetime.now(),
 t = round(weather.temperature(),2),
 p = round(weather.pressure(),2),
 c = light.light(),
 r = rgb[0],
 g = rgb[1],
 b = rgb[2],
 h = motion.heading(),
 a0 = analog_values[0],
 a1 = analog_values[1],
 a2 = analog_values[2],
 a3 = analog_values[3]
 )
 output = output.replace("\n","\n\033[K")
 write(output)
 lines = len(output.split("\n"))
 write("\033[{}A".format(lines - 1))

time.sleep(10)
 
except KeyboardInterrupt:
 pass