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. Negli ultimi dieci anni ho acquisito competenze specifiche nel campo delle TLC in particolare sulla rete GSM e sui protocolli ad essa collegati.
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



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.