Adapted from WriteSingleField Example from ThingSpeak Library (Mathworks) and Random Nerd Tutorials
Updated to use LSM6DSOX IMU instead of BME280 sensor
Logs temperature from IMU sensor in Fahrenheit
#include <Adafruit_LSM6DSOX.h>
#include <Adafruit_Sensor.h>
const char* ssid = "YOUR-SSID-HERE"; // your network SSID (name)
const char* password = "YOUR-PASSWORD-HERE"; // your network password
unsigned long myChannelNumber = 1;
const char * myWriteAPIKey = "YOUR-WRITE-API-KEY-HERE";
unsigned long lastTime = 0;
unsigned long timerDelay = 30000;
// Variable to hold temperature readings
// Create IMU sensor object
Adafruit_LSM6DSOX lsm6dso;
// Initialize IMU-related pins
Serial.println("Attempting to initialize LSM6DSOX...");
if (!lsm6dso.begin_I2C()) {
Serial.println("Failed to find LSM6DSOX chip");
Serial.println("Check your wiring!");
Serial.println("LSM6DSOX Found!");
// Configure IMU settings
lsm6dso.setAccelRange(LSM6DS_ACCEL_RANGE_2_G);
lsm6dso.setGyroRange(LSM6DS_GYRO_RANGE_250_DPS);
lsm6dso.setAccelDataRate(LSM6DS_RATE_104_HZ);
lsm6dso.setGyroDataRate(LSM6DS_RATE_104_HZ);
Serial.begin(115200); //Initialize serial
ThingSpeak.begin(client); // Initialize ThingSpeak
if ((millis() - lastTime) > timerDelay) {
// Connect or reconnect to WiFi
if(WiFi.status() != WL_CONNECTED){
Serial.print("Attempting to connect");
while(WiFi.status() != WL_CONNECTED){
WiFi.begin(ssid, password);
Serial.println("\nConnected.");
// Get new IMU sensor readings
sensors_event_t tempEvent;
lsm6dso.getEvent(&accel, &gyro, &tempEvent);
// Get temperature in Fahrenheit
temperatureF = (tempEvent.temperature * 1.8) + 32;
Serial.print("Temperature (ºF): ");
Serial.println(temperatureF);
// Write to ThingSpeak. There are up to 8 fields in a channel, allowing you to store up to 8 different
// pieces of information in a channel. Here, we write to field 1.
int x = ThingSpeak.writeField(myChannelNumber, 1, temperatureF, myWriteAPIKey);
Serial.println("Channel update successful.");
Serial.println("Problem updating channel. HTTP error code " + String(x));