OpenHab e OneWire

Obiettivo: In questo articolo viene illustrato come collegare un sensore di temperatura tipo Dallas DS18B20 direttamente sui GPIO di RaspBerry3 e come leggere il valore di temperatura da OpenHab2

Il sensore DS18B20 ha il seguente pinout:

Necessità di alimentazione a 3,3 V e di una resistenza di pullUp da 4,7 o 10 K sul PIN centrale del dato.

Premesso di aver collegato il sensore opportunamente al PIN 7 (BCM 4) è necessario inserire la segunete riga alla fine del file /boot/config.txt:

# Enable 1Wire on GPIO
dtoverlay=w1-gpio,gpiopin=4

Salvare e riavviare RPI3

Nella path /sys/bus/w1/devices/ si vedrà una nuova directory con l'IDSensore del tipo 28-xxxxxxxxx

Nella nuova directory si troverà il file w1_slave che conterrà il valore di temperatura misurato dal sensore.

Provare il seguente comando per verificare:

watch cat /sys/bus/w1/devices/IDSensore/w1_slave

OpenHab

Per leggere il valore del sensore con OpenHab andremo ad utilizzare il Binding che ci permette di eseguire a tempo degli script.

Installare il BINDING Exec Binding

Scripts

Creare il file

/etc/openhab2/script/onewiretemp.sh

e scrivere le seguenti righe:

#!/bin/bash
wert=`cat /sys/bus/w1/devices/$1/w1_slave | tail -n1 | cut -d '=' -f2`
wert2=`echo "scale=3; $wert/1000" | bc`
echo $wert2

provare lo script lanciando il comando ./onewiretemp.sh IDSensore

Things

Creare il file

/etc/openhab2/things/onewire.things

e scrivere la seguente riga:

exec:command:onewiretemp1 [command="bash /etc/openhab2/scripts/onewiretemp.sh IDSensore", interval=60, timeout=5, autorun=false]

Items

Creare il file

/etc/openhab2/items/onewire.items

e scrivere la seguente riga:

String onewiretemp1Value "La temperatura del sensore 1 è [%s °C]" <temperature> {channel="exec:command:onewiretemp1:output"}

Aggiungere il sensore nel sitemaps inserendo il seguente:

Text item=onewiretemp1Value

Riferimenti

Massimiliano Casini (Coordinatore tecnico Service Assurance presso www.kenamobile.it)
Sono cresciuto nel modo IT di aziende ad alto contenuto tecnologico e da sempre ho acquisto esperienze nel settore della domotica e sicurezza residenziale
Sergio Tanzilli (Autore - Progettista hw & sw - Imprenditore - Musicista dilettante, classe 1964)
Fondatore di Area SX srl, Acme Systems srl e del TanzoLab, si occupa dal 1974 di elettronica digitale, dal 1978 di microprocessori, dal 1992 di microcontroller, dal 1995 di Linux e pubblicazioni su Web, dal 2005 di progettazione, produzione e commercializzazione di schede Linux Embedded.
http://www.tanzilli.com - http://www.acmesystems.it - https://github.com/tanzilli - sergio@tanzilli.com

The TanzoLab Project

Il TanzoLab è una iniziativa senza fini di lucro, nata da un'idea di Sergio Tanzilli socio fondatore di Acme Systems srl nel Novembre 2015, per trasferire ad appassionati di elettronica e informatica, professionisti e aziende nel settore, le conoscenze necessarie per poter creare prodotti embedded adatti per la produzione industriale.

Le attività del TanzoLab si svolgono ogni mercoledi sera, salvo casi speciali, dalle ore 18:30 presso i locali della Acme Systems srl e consistono in:

  • Talk monotematici a cura di professionisti in vari settori tecnologici
  • Workshop pratici su elettronica embedded, produzione e informatica
  • Progettazione e realizzazione di nuovi prodotti embedded per l'IT

Le attività vengono coordinate tramite questo sito, in cui vengono pubblicati tutti i lavori svolti o in via di sviluppo, e tramite un gruppo Telegram con cui per interagire direttamente via chat con gli altri membri.