This library provides a simple device independent interface for interacting with Adafruit IO using Arduino. It allows you to switch beween WiFi (ESP8266, M0 WINC1500, & WICED), Cellular (32u4 FONA), and Ethernet (Ethernet FeatherWing) with only a two line change in your sketch.
This library requires the latest version of the Arduino IDE (tested with v1.6.10).
- Latest version of the ESP8266 Arduino Core
- Latest version of the Adafruit MQTT Library
- Latest version of the Arduino HTTP Client Library
- Latest version of the ESP32 Arduino Core
- Latest version of the Adafruit MQTT Library
- Latest version of the Arduino HTTP Client Library
- Latest version of the Arduino SAMD Arduino Core
- Latest version of the Adafruit SAMD Arduino Core
- Latest version of the Adafruit MQTT Library
- Latest version of the WiFi101 Library
- Latest version of the Arduino HTTP Client Library
You will also need to add the SSL certificate for io.adafruit.com
using the guide on the Adafruit Learning System.
- Latest version of the Arduino SAMD Arduino Core
- Latest version of the Adafruit MQTT Library
- Latest version of the WiFi101 Library
- Latest version of the Arduino HTTP Client Library
You will also need to add the SSL certificate for io.adafruit.com
using the MKR1000 SSL utility.
- Latest version of the Adafruit WICED Arduino Core
- Latest version of the Adafruit MQTT Library
- Latest version of the Arduino HTTP Client Library
- Latest version of the Adafruit AVR Arduino Core
- Latest version of the Adafruit MQTT Library
- Latest version of the Adafruit FONA Library
The Ethernet FeatherWing will also require a 32u4, M0, or ESP8266 based Feather. Any Arduino cores required by the host Feather board will also be required.
- Latest version of the Adafruit Ethernet2 Library
- Latest version of the Adafruit MQTT Library
- Latest version of the Arduino HTTP Client Library
The included examples sketches will walk you through all of the features of the library.
They can be used on all platforms, but they default to WiFi. To change between platforms,
you will need to change two lines of code in the config.h
tab of the example.
It is recommended that you start with one of the Adafruit WiFi feathers before
moving on to cellular or ethernet.
For all examples, you will need to set IO_USERNAME
and IO_KEY
in the config.h
tab.
The following sections demonstrate how to switch between WiFi, cellular, and ethernet.
If you are using the included examples, you do not need to change anything for the Adafruit WiFi Feathers. All WiFi based Feathers (ESP8266, M0 WiFi, WICED) will work with the examples out of the box.
You will need to add your WiFi information to the WIFI_SSID
and WIFI_PASS
defines in the config.h
tab.
For FONA, you will only need to change from the default WiFi constructor to the FONA specific constructor in the config.h
tab.
The rest of the sketch remains the same.
You will need to comment out these WiFi lines in config.h
:
#include "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
and uncomment the FONA lines in config.h
:
#include "AdafruitIO_FONA.h"
AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
If your carrier requires APN info, you can set it by adding a call to io.setAPN()
after io.connect()
in the setup()
function of the sketch.
void setup() {
// start the serial connection
Serial.begin(115200);
// connect to io.adafruit.com
io.connect();
io.setAPN(F("your_apn"), F("your_apn_user"), F("your_apn_pass"));
}
For Ethernet, you will only need to change from the default WiFi constructor to the Ethernet specific constructor in the config.h
tab.
The rest of the sketch remains the same.
You will need to comment out these WiFi lines in config.h
:
#include "AdafruitIO_WiFi.h"
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
and uncomment the Ethernet lines in config.h
:
#include "AdafruitIO_Ethernet.h"
AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
Last test with v2.0.0
on 08/10/2016.
Example | ESP8266 | M0 WINC1500 | WICED | FONA 32u4 | Ethernet* | MKR1000 |
---|---|---|---|---|---|---|
00_publish | ✓ | ✓ | ✓ | ✓ | ✓ | ? |
01_subscribe | ✓ | ✓ | ✓ | ✓ | ✓ | ? |
02_pubsub | ✓ | ✓ | ✓ | ✓ | ✓ | ? |
03_multiple_feeds | ✓ | ✓ | ✓ | ✓ | ✓ | ? |
04_location | ✓ | ✓ | ✓ | ✓ | ✓ | ? |
05_type_conversion | ✓ | ✓ | ✓ | ✓ | ✓ | ? |
06_digital_in | ✓ | ✓ | ✓ | ✓ | ? | ? |
*Ethernet FeatherWing tested with Feather M0 Basic Proto
Copyright (c) 2016 Adafruit Industries. Licensed under the MIT license.
Adafruit invests time and resources providing this open source code. Please support Adafruit and open-source hardware by purchasing products from Adafruit.