Dataplicity.com and Resin.io are both fairly new services which help you to remotely connect to your Raspberry Pi over the internet. You might be used to connecting to your pi via SSH on your home network, but what if you want to access it over the internet, whilst traveling, or how about hooking up the pi to a network that doesn’t belong to you, e.g. at a Hackathon? In these cases you’d normally need to setup the router for port forwarding or use a VPN, which are not the easiest things to do. Dataplicity and Resin both provide alternative solutions by installing software on your Pi which connects directly to their online service without any other network configuration. Through this, you can remotely connect to you Pi anywhere on the internet. This is perfect for things like remote monitoring or IoT applications like controlling home devices over the internet.
With Dataplicity, setup is extremely simple. Assuming you’ve already got a Pi setup and Raspbian installed, simply go to the website, and enter your email address. You’ll immediately be given a unique url / cmd like this:
. You can enter this in the terminal of your Pi, and it will download and setup Dataplicity automatically. Just click ‘done’ on the next page and you’ll be prompted for a password, and a few minutes later your network connected Pi will appear in your dataplicity account.
curl https://www.dataplicity.com/zzzzzz.py | sudo python
Resin’s setup requires a little more effort. You’ll need to setup an account with a username and password, your real name and whether your are a personal or business user. After that you’ll need to enter (or first create) your own public SSH key. Next, you’ll be prompted to download your customised Resin image, after entering your raspberry pi’s network details (ethernet or wifi username/password). Finally you need to burn the image to your SD card, pop it into the Pi turn it on, and wait around 10 minutes or so for the automatic installation to complete and appear on the dashboard.
The Dataplicity Dashboard’s main feature is the web based terminal. Apart from this you can also, reboot, rename or delete your device or create a wormhole. A wormhole is dataplicity’s term for a opening up web access to you Pi, so you can access any web application running on port 80 at http://zzzzzz.dataplicility.io, and you turn this on and off with one click.
Resin’s features are much more comprehensive. In addition to those provided by dataplicity, you can see the location of your device, set environment variables, and see the logs provided by your application. Furthermore, you are provided with a git repo, which is automatically checked every minute for updates, and pull down onto your device – continuous integration built-in! The git repo should contain a dockerfile and your application source code, and unless you have an application setup, you can’t actually access the terminal through the resin website. This means in order to get started you’ll need to know (or learn) how to use Docker and git, although there are plenty of Python and Node.js examples and documentation to help you get started. Furthermore Resin is not just designed for the Raspberry Pi; there are over 20 different development boards / IoT devices that can be used with it.
Resin allows two factor authentication for your online account, and also asks you to upload your public SSH key so your connection when pushing code to your resin repo is encrypted.
Dataplicity doesn’t have two factor authentication, but the web app is secured over https. You can read a discussion of the security with the developer on the raspberry pi forum.
Dataplicity is free for the first device, and $2 per device per month after that. They also have and iOS and Android client if you don’t want to use it in a browser on your mobile device.
Resin is free for up to 5 devices, and after that there are paid plans, some of which included extended tech support.
Dataplicity and Resin are both fantastic platforms. If you are a Raspberry Pi beginner looking to work on your Pi remotely, or have a go at hosting a simple website or web application, Dataplicity is a good choice. If you can use git and Docker and you like the idea of being able to automatically deploy your app by simply pushing to your remote repo, or if you are a professional looking to deploy a fleet of IoT devices, then Resin is the way to go.