« Back to all blog posts

Raspberry Pi demo updates

24.10.2013


Our Raspberry Pi weather station demo has been upgraded. The system has been enclosed in a box and cables have received threaded cover layer. Two DS18B20 external temperature sensors have been added, one of them can be removed if needed (by a DB9 connector, with custom soldering). Three buttons have been added for adding interaction for exhibition visitors.

Raspberry Pi

Updates: box, buttons and external DS18B20 temperature sensors (inside the threaded cover layer)

Autostarting the Server

Originally there was a start-up script that was needed to run as root after the system started. This was unpractical in demo usage; just plugging the power is much more convient. The startup script was moved to /etc/init.d/weatherstation, seen below:

#!/bin/bash

function do_start() {
#START THE WEATHER STATION OPC UA SERVER
modprobe i2c-dev
/home/prosys/java/jdk1.8.0/bin/java -jar /home/prosys/weatherstation/weather
station.jar >> /home/prosys/weatherstation/log 2>&1 &
echo $! > /var/run/weatherstation.pid
}

function do_stop() {
kill -TERM `cat /var/run/weatherstation.pid`
}

case "$1" in
start)
do_start
;;

stop)
if [ ! -f /var/run/weatherstation.pid ]; then
echo "weatherstation: not running"
exit 1
fi

do_stop
;;

restart)
if [ -f /var/run/weatherstation.pid ]; then
do_stop
fi
do_start
;;

*)
echo "Usage: /etc/init.d/weatherstation {start|stop|restart}"
exit 1
;;

esac

exit 0

We tried starting the script by using rcX.d method but but for some reason it did not work. Therefore a line

/etc/init.d/weatherstation start

was added to /etc/rc.local and that did work.

Time

The Raspberry Pi does not have a real-time clock onboard, instead it emulates it using software. If left without power for some time, the clock isn’t accurate anymore. This is problematic as secure UA connections require that the devices have their clocks synchronized (with minor offset allowed). Currently the Pi is keeping it’s clock up to date using ntp, but that’s not practical in demo usage where ntp server might not be present. As a future improvement, we will use the real-time clock that is available on the PiWeather board.

Public URI

The Server can now be accessed via the public URI: opc.tcp://212.68.9.58:48401

AddressSpace of the Server

The address space of the server has several variables corresponding to the weather measurements, 3 Booleans for the buttons and 3 temperature readings. Internal Temperature uses the PiWeather board’s internal sensor. External Temperature uses sensor placed outside the box. The internal temperature is of course a couple of degrees higher than outside of the box, due heating from the proccessor. Outside Temperature variable will display outside temperature as soon as we figure out how to put the sensor outside. There is also a Humidity and Pressure variables, displaying the data from PiWeather board’s internal sensors. All variables provide history data.

Raspberry Pi second sensor

Second external temperature sensor can be detached
Bjarne Boström

Bjarne Boström

Software Engineer

Email: bjarne.bostrom@prosysopc.com

Expertise and responsibility areas: OPC UA product development and project work

Tags: ARM, Demo, Embedded, Java, OPC UA, Raspberry Pi, Development, Hardware

comments powered by Disqus

About Prosys

Prosys is a leading provider of professional OPC software and services with over 10 years of experience in the field. OPC and OPC UA (Unified Architecture) are communications standards used especially by industrial and high-tech companies.

Read more about us »

Newest blog posts

OPC UA Manger's Attack Exploit

Security vulnerability in Java based OPC UA applications.

Azure and Power Bi - Updated Weather Station Demo

Azure and Power Bi offer a straightforward and powerful way to visualize data from your OPC UA servers.

OPC UA Getting Real and Real-time - Report from OPC Day Finland 2018

OPC UA is getting popular in real-world installations and also going towards real-time with the latest announcements about support for field level.

View all blog posts »