#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#include <WiFi.h>
#include <HTTPClient.h>
int sensorPin = 16;
OneWire oneWire (sensorPin);
DallasTemperature sensor (&oneWire);
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme;
unsigned long delayTime;
const char* password = "";
const char* ssid = "Wokwi-GUEST";
const char* dweetIOUrl = "http://dweet.io/dweet/for/KNUS-12-11";
void setup() {
Serial.begin(9600);
Serial.println(F("BME280 test"));
bool status;
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
}
connectToWiFi();
delayTime = 3000;
sensor.begin ();
Serial.println();
}
void connectToWiFi() {
Serial.println("Connecting to WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting...");
}
Serial.println("Connected to WiFi");
}
void loop() {
bme.setTemperatureCompensation(100);
float temperature, humidity, pressure;
temperature = bme.readTemperature();
humidity = bme.readHumidity();
pressure = bme.readPressure();
Serial.print("Temperature = ");
Serial.print(temperature);
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(humidity);
Serial.println(" hPa");
Serial.print("Humidity = ");
Serial.print(pressure);
Serial.println(" %");
Serial.println();
String postData = "temperatureC=" + String(temperature) + "&pressure=" + String(pressure) + "&humidity=" + String(humidity);
sendDweetIORequest(postData);
delay(delayTime);
}
void sendDweetIORequest(String data) {
HTTPClient http;
if (http.begin(dweetIOUrl)) {
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpResponseCode = http.POST(data);
if (httpResponseCode > 0) {
String response = http.getString();
Serial.print("Dweet.io response: ");
Serial.println(response);
} else {
Serial.print("Error code: ");
Serial.println(httpResponseCode);
}
http.end();
} else {
Serial.println("Failed to connect to Dweet.io");
}
}