Much like a sandwich, Adafruit IO projects have a lot of layers where things can go wrong. As a result, it becomes much harder to troubleshoot these types of projects.
There's the hardware (like a Feather ESP8266) layer which brings issues such as "why isn't my motor turning". Your wiring may be an issue. The code could be incorrect. It could even be a networking issue, which brings us to the next layer...
Then, there's networking which connects your internet-controlled project to the internet. Problems could arise here resulting to DNS configuration, port forwarding problems, or your router simply not talking to The Internet™.
There's also The Internet™, and that brings a lot of problems too. Finally there's Adafruit IO, a web service that we built and support.
...and there could be problems with any layer of this delicious sandwich.
If your project is not working properly, the Adafruit community is here to help you out. Post up in the Adafruit IO Forums or chat with Adafruit staff and community members in real-time on the adafruit-io channel on the Adafruit Discord server.
While we help out and see repeated issues, we'll add them to this page to help others.
Your board is not connecting to Adafruit IO, but why? Let's find out:
First, check in config.h
that you have the correct IO_USERNAME
, IO_KEY
, WIFI_SSID
, and WIFI_PASS
are set correctly.
Next, we're going to modify the while loop which waits for an IO connection in your sketch. Change the line in the status check loop from Serial.println(.);
to Serial.println(io.statusText());
// wait for a connection
while(io.status() < AIO_CONNECTED) {
Serial.println(io.statusText());
delay(500);
}
Verify and re-upload the sketch. If you're receiving a Network disconnected error message, the board is not able to talk to the internet. Re-check your hardware, connections, and router settings.
If it's still not showing Adafruit IO connected, check the IO status on the Adafruit Status page to make sure the service is online.
Possibly - check IO status on the Adafruit Status page.
There's a monitor page built-into Adafruit IO which provides a live view of incoming data and error messages. Keep this page open while you send data to your Adafruit IO devices to monitor data and errors.
The dashboard displays information from feeds. Chances are, the sensor you are using is outputting a temperature in Fahrenheit/Celsius but you need to convert it (in your code) to the opposite unit. Here's some handy pseudo-code to help out:
From Fahrenheit to Celsius:
degreesFahrenheit = degreesCelsius × 9/5 + 32
From Celsius to Fahrenheit:
degreesCelsius = (degreesFahrenheit - 32) × 5/9
If you're using a Feather M0 WiFi and receiving a Disconnected from Adafruit IO message in your serial monitor, you'll want to check two things:
- Make sure that you have the correct Adafruit IO Keys in your sketch, and that the router/network configuration is correct.
- The SSL ceritifcates on your device for Adafruit IO need to be up-to-date. It's hard to check if they're up-to-date from the device, so we suggest running through the process of adding a new SSL certificate through the Arduino IDE. You can find the guide for that here.