Device:
Thing:
Dashboard:
Sketch:
/* MAY 24th Sketch
Sketch generated by the Arduino IoT Cloud Thing "May24th"
Arduino IoT Cloud Variables description
The following variables are automatically generated and updated when changes are made to the Thing
float humidity;
float pressure;
float temperature;
Variables which are marked as READ/WRITE in the Cloud Thing
will also have functions which are called when
their values are changed from the Dashboard.
These functions are generated with the Thing and added
at the end of this sketch.
*/
//set up BME280 sensor
#include "thingProperties.h"
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
//set up OLED display
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_BME280 bme; // I2C
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
if (!bme.begin(0x76)) { // Try 0x76 or 0x77 depending on your sensor
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
delay(1500);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for (;;);
}
}
void loop() {
//update cloud values from the BME280 sensor
temperature=bme.readTemperature();
pressure= bme.readPressure()/100.0F;
humidity=bme.readHumidity();
ArduinoCloud.update();
//print readings to the serial monitor
Serial.print("Temperature= ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Pressure= ");
Serial.print(pressure);
Serial.println(" hPa");
Serial.print("Humidity= ");
Serial.print(humidity);
Serial.println(" %");
Serial.println();
delay(2000);
//display readings on the OLED display:
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,20);
display.print("Humidity=" );
display.setCursor(0,50);
display.print(bme.readHumidity());
display.display();
delay(2000);
display.clearDisplay();
display.setCursor(0,20);
display.print("Pressure-");
display.setCursor(0,50);
display.print(bme.readPressure()/ 100.0F);
display.display();
delay(2000);
display.clearDisplay();
display.setCursor(0,20);
display.print("Temp= ");
display.setCursor(0,50);
display.println(bme.readTemperature());
delay(2000);
display.display();
display.clearDisplay();
}
Automatically Generated Thing Properties Tab:
/ Code generated by Arduino IoT Cloud, DO NOT EDIT.
#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
const char DEVICE_LOGIN_NAME[] = "75964f81-f2ae-4ab2-ac8b-e2aabf52f69a";
const char SSID[] = SECRET_SSID; // Network SSID (name)
const char PASS[] = SECRET_OPTIONAL_PASS; // Network password (use for WPA, or use as key for WEP)
const char DEVICE_KEY[] = SECRET_DEVICE_KEY; // Secret device password
float humidity;
float pressure;
float temperature;
void initProperties(){
ArduinoCloud.setBoardId(DEVICE_LOGIN_NAME);
ArduinoCloud.setSecretDeviceKey(DEVICE_KEY);
ArduinoCloud.addProperty(humidity, READ, 10 * SECONDS, NULL);
ArduinoCloud.addProperty(pressure, READ, 10 * SECONDS, NULL);
ArduinoCloud.addProperty(temperature, READ, 10 * SECONDS, NULL);
}
WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);
Older Code Examples:
OPTIONAL: Notification- Sends email if alarm condition triggered