Overview
The Raspberry Pi is a popular, low-cost mini computer running Linux. It is ideally suited for prototyping machine-to-machine solutions through its GPIO pins and USB support.
In this section, we describe how to install a Device Integration Platform agent with all relevant drivers on the Raspberry Pi to be able to remotely manage the Raspberry Pi and its connected sensors and controls. This allows you to
- Take advantage of all the basic agent features such as availability management, connectivity management and software management.
- Identify individual Raspberry Pis remotely based on their hardware serial number.
- Update the Pi's firmware remotely through the firmware repository on GitHub.
- Use the PiFace Digital adapter board from the cloud.
- Use TinkerForge sensors and controls from the cloud.
Prerequisites
To install the agent, you need a Raspberry Pi with an installation of Java SE, Version 7 or later. Java SE is pre-installed in recent distributions of Raspbian, the default Linux distribution of the Raspberry Pi. To verify, simply type
$ java -version
java version "1.7.0_40"
You also need to know the serial number of your Raspberry Pi to register it with Device Integration Platform:
$ cat /proc/cpuinfo
Processor : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 464.48
Features : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2708
Revision : 000e
Serial : 0000000017b769d5
Write down the number in the line "Serial". Make sure that your power supply matches the power demands of the Raspberry Pi and its connected devices. A standard USB charger may not be sufficient to connect additional devices as well as a modem. The most simple solution is to use a USB hub that provides power on both the host and client ports, such as this one. Connect the Raspberry Pi to the host side and all other devices to the client sides.
Installation and registration
Log in to the Raspberry Pi and install the agent.
$ wget http://resources.cumulocity.com/examples/cumulocity-rpi-agent-latest.deb
$ sudo dpkg -i cumulocity-rpi-agent-latest.deb
Open Device Integration Platform in a web browser and go to the "Registration" page. Enter the serial number that you wrote down in the previous step and click "Register Device".
Restart the Pi.
$ sudo reboot
Restarting the Pi can take up to two minutes, depending on installed software, connected sensors and network type. When the restart is completed, accept the registration.
Click on "All devices" to manage the Raspberry Pi. It is by default visible as "RaspPi <
Using Tinkerforge bricks and bricklets
The agent supports Tinkerforge devices out of the box, provided the Tinkerforge daemon for Raspberry Pi is installed. For more information about using Tinkerforge with Device Integration Platform, see the Tinkerforge section.
Using PiFace Digital
The agent includes a simple PiFace Digital driver. The driver will create events when switches are pressed and will react to remote control commands to the relays.
Before using your PiFace Digital make sure you have tested it following the instructions on the official website. You don't have to go through the whole guide. Following it up to the "Testing your PiFace" part is enough.
Installing a 3G modem
There are numerous descriptions available for installing a 3G modem on a Raspberry Pi. An affordable 3G modem that works with Linux and that we tested with the Raspberry Pi is the Telekom Speedstick Basic (Huawei E3131).
When using a 3G modem with a Raspberry Pi Model B, a powered USB hub is required. Some modems will not read connectivity statistics concurrently to being dialed up to the Internet on the Raspberry Pi. Hence, this functionality is disabled by default in the Device Integration Platform Linux modem driver.
Remote firmware upgrade
The agent permits you to upgrade the firmware of a Raspberry Pi through the rpi-update tool. To configure a firmware version:
- Open Device Integration Platform and click on "Firmware".
- Click "Add Firmware".
- Enter a name for the firmware. As URL, use the Git hash of the firmware version at https://github.com/Hexxeh/rpi-firmware. (I.e., click on commits and select a particular version there. The hash is the weird garbage at the end of the URL.)
- Save the firmware version.
To roll out the firmware to a Raspberry Pi:
- Click on the "Software" tab of the Raspberry Pi.
- Click "Install firmware".
- Select the firmware version to install.
- Click "Install".
The Raspberry Pi will install the firmware and will reboot. Go to the "Control" tab to follow the upgrade process. After reboot, the operation will be either "Successful" or "Failed". Good luck.
Troubleshooting
The agent writes debug information to the Pi's syslog. To troubleshoot, for example, connectivity problems, use:
$ tail -f /var/log/syslog
Developing the agent
If you would like to connect other devices to the Raspberry Pi and manage these from Device Integration Platform, check the Java agent documentation.