Permalink
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
thingspeak-esp-examples/examples/RSSI_to_ThingSpeak.ino
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
83 lines (62 sloc)
2.3 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
ESP8266 --> ThingSpeak Channel | |
This sketch sends the Wi-Fi Signal Strength (RSSI) of an ESP8266 to a ThingSpeak | |
channel using the ThingSpeak API (https://www.mathworks.com/help/thingspeak). | |
Requirements: | |
* ESP8266 Wi-Fi Device | |
* Arduino 1.8.8+ IDE | |
* Additional Boards URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json | |
* Library: esp8266 by ESP8266 Community | |
* Library: ThingSpeak by MathWorks | |
ThingSpeak Setup: | |
* Sign Up for New User Account - https://thingspeak.com/users/sign_up | |
* Create a new Channel by selecting Channels, My Channels, and then New Channel | |
* Enable one field | |
* Enter SECRET_CH_ID in "secrets.h" | |
* Enter SECRET_WRITE_APIKEY in "secrets.h" | |
Setup Wi-Fi: | |
* Enter SECRET_SSID in "secrets.h" | |
* Enter SECRET_PASS in "secrets.h" | |
Tutorial: http://nothans.com/measure-wi-fi-signal-levels-with-the-esp8266-and-thingspeak | |
Created: Feb 1, 2017 by Hans Scharler (http://nothans.com) | |
*/ | |
#include "ThingSpeak.h" | |
#include "secrets.h" | |
unsigned long myChannelNumber = SECRET_CH_ID; | |
const char * myWriteAPIKey = SECRET_WRITE_APIKEY; | |
#include <ESP8266WiFi.h> | |
char ssid[] = SECRET_SSID; // your network SSID (name) | |
char pass[] = SECRET_PASS; // your network password | |
int keyIndex = 0; // your network key index number (needed only for WEP) | |
WiFiClient client; | |
void setup() { | |
Serial.begin(115200); | |
delay(100); | |
WiFi.mode(WIFI_STA); | |
ThingSpeak.begin(client); | |
} | |
void loop() { | |
// Connect or reconnect to WiFi | |
if (WiFi.status() != WL_CONNECTED) { | |
Serial.print("Attempting to connect to SSID: "); | |
Serial.println(SECRET_SSID); | |
while (WiFi.status() != WL_CONNECTED) { | |
WiFi.begin(ssid, pass); // Connect to WPA/WPA2 network. Change this line if using open or WEP network | |
Serial.print("."); | |
delay(5000); | |
} | |
Serial.println("\nConnected."); | |
} | |
// Measure Signal Strength (RSSI) of Wi-Fi connection | |
long rssi = WiFi.RSSI(); | |
// Write value to Field 1 of a ThingSpeak Channel | |
int httpCode = ThingSpeak.writeField(myChannelNumber, 1, rssi, myWriteAPIKey); | |
if (httpCode == 200) { | |
Serial.println("Channel write successful."); | |
} | |
else { | |
Serial.println("Problem writing to channel. HTTP error code " + String(httpCode)); | |
} | |
// Wait 20 seconds to update the channel again | |
delay(20000); | |
} |