You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
1.7 KiB

#include <SoftwareSerial.h>
#include <Wire.h>
#include <BME280I2C.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
#define ENABLE_PIN1 D5 // 8 // dir
#define ENABLE_PIN2 D6 // 9 // speed
#define SERIAL_RO D7 // 10
#define SERIAL_DI D8 // 11
#define WIFIUSR "weather"
#define WIFIPWD "dslakweatherpwd"
#define DATA_DELAY 10000
ESP8266WiFiMulti WiFiMulti;
BME280I2C bme;
const byte codes[] = {0x01 ,0x03 ,0x00 ,0x00 ,0x00 ,0x02 ,0xC4 ,0x0B};
const char server[] PROGMEM = "http://2.233.91.82/weather/api/station?data=capaccio|%d|%d|%f|%f|%f";
byte values[2][20];
SoftwareSerial sensor(SERIAL_RO, SERIAL_DI);
int windSpeed = 0;
int windDirection = 0;
float temperature = 0;
float humidity = 0;
float pressure = 0;
void setup() {
// Initialize Serial Monitor for debugging
Serial.begin(9600);
while(!Serial);
// Initialize a Wire
Wire.begin();
while(!bme.begin()){
Serial.println("Could not find BME280 sensor!");
delay(1000);
}
// Initialize a SoftwareSerial
sensor.begin(4800);
delay(500);
pinMode(ENABLE_PIN1, OUTPUT);
pinMode(ENABLE_PIN2, OUTPUT);
// Initialize WiFi
for (uint8_t t = 4; t > 0; t--) {
Serial.printf("[SETUP] WAIT %d...\n", t);
Serial.flush();
delay(1000);
}
WiFi.mode(WIFI_STA);
WiFiMulti.addAP(WIFIUSR, WIFIPWD);
}
void loop() {
getWind();
Serial.print("Direction: ");
Serial.println(windDirection);
Serial.print("Speed: ");
Serial.println(windSpeed);
getBME280Data();
Serial.print("Temp: ");
Serial.println(temperature);
Serial.print("Hum: ");
Serial.println(humidity);
Serial.print("Pres: ");
Serial.println(pressure);
sendData();
delay(DATA_DELAY);
}