Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info
iconfalse
Excerpt

The Raspberry Pi is a hugely popular, inexpensive, credit card-sized Linux computer. We detail how we've used it as a Gateway for a SmartMesh IP network.

Gliffy
imageAttachmentIdatt110306861
namesetup_rpi
diagramAttachmentIdatt110306857


Table of Contents

Prepare the Raspberry Pi

  • We use the Raspberry Pi model B
  • Install Raspbian (as part of NOOBS, we use NOOBS 1.3.9)
  • If are connecting your SmartMesh IP Manager through the UART pins:

    Tip

    You do not need to do these steps if you plan on connecting your SmartMesh IP Manager over USB.


    By default, the Raspberry Pi uses the UART pin as a command line interface for Linux. After the first boot, you need to configure Linux to not use those pins:

    • In /etc/inittab, replace

      No Formatcode
      T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

      with

      noformat

      Code Block
      #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
    • In /boot/cmdline.txt, replace

      No Format

      with

      No Formatcode
      dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

      with

      Code Block
      dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    • Reboot the Raspberry Pi so these changes take effect

      Code Block
      sudo shutdown -r now

Hardware Connections

Tip

You do not need to do these steps if you plan on connecting your SmartMesh IP Manager over USB.

We are connecting the serial API port of the SmartMesh IP manager to the UART on the Raspberry Pi.

Pinout of the Raspberry Pi header:

3.3V125V
I2C0 SDSA34DNC
I2C0 SCL56GND
GPIO478UART TXD
DNC910UART RXD
GPIO 171112GPIO 18
GPIO 211314DNC
GPIO 221516GPIO 23
DNC1718GPIO 24
SP10 MOSI1920DNC
SP10 MISO2122GPIO 25
SP10 SCLK2324SP10 CE0 N
DNC2526SP10 CE1 N

Connections between the Raspberry Pi and DC9003 SmartMesh IP Manager

Raspberry Pi pinDN9903 pin name (silkscreen)
GNDGND
3.3VVBAT
UART TXDRX
UART RXDTX
GNDTX CTSn
GNDRX RTSn


Happy together

Install DustLink

The Raspberry Pi comes with Python 2.7, so you can run any application developed using the SmartMesh SDK. Here, we will run DL:

  • Download the latest release from https://github.com/dustcloud/dustlink/releases on your computer, as a zip file.
  • Transfer it to your Raspbery Pi, for example using SCP.
  • Enter the following commands to install DustLink (you only need to do this once)

    Code Block
    pi@raspberrypi ~ $ unzip dustlink-REL-1.0.2.63.zip
    pi@raspberrypi ~ $ cd dustlink-REL-1.0.2.63/
    pi@raspberrypi ~/dustlink-REL-1.0.2.63 $ sudo apt-get install python-setuptools
    pi@raspberrypi ~/dustlink-REL-1.0.2.63 $ sudo easy_install pip
    pi@raspberrypi ~/dustlink-REL-1.0.2.63 $ sudo pip install -r requirements.txt
  • Start DustLink

    Code Block
    pi@raspberrypi ~/dustlink-REL-1.0.2.63 $ cd bin/dustLinkFullWeb/
    pi@raspberrypi ~/dustlink-REL-1.0.2.63/bin/dustLinkFullWeb $ sudo python dustLinkFullWeb.py
  • In your browser, open http://<your_raspberry_pi_ip_address>:8080/

Configure DustLink

  • Log into the web interface using:
    • username: admin
    • password: admin
  • Navigate to Managers
  • Under the Add section, enter /dev/ttyAMA0 and press Enter. After 10s, this connection is active
  • Refer to the DL documentation for information on using DustLink.

Start DustLink on boot

  • Install screen:

    Code Block
    sudo apt-get install screen
  • Create file /home/pi/startDustLink.sh with the following content:

    Code Block
    #!/bin/bash
    
    cd /home/pi/dustlink-REL-1.0.2.63/bin/dustLinkFullWeb
    python dustLinkFullWeb.py
  • Change ownership and permission for that file and the DustLink folder:

    Code Block
    sudo chown pi:pi /home/pi/startDustLink.sh
    sudo chmod 744 /home/pi/startDustLink.sh
    sudo chown -R pi:pi /home/pi/dustlink-REL-1.0.2.63/
  • Have cron start DustLink on reboot:

    Code Block
    crontab -e

    then, add the following line:

    Code Block
    @reboot screen -dmS DustLink bash -c "/home/pi/startDustLink.sh"
  • Reboot the Raspberry Pi

    Code Block
    sudo shutdown -r now


Tip
titleNote Well

 Raspberry Pi is a trademark of the Raspberry Pi Foundation. See http://www.raspberrypi.org/ for details.