22-05-2017, 18:50
Witam, zrobiłem sobie stacje pogody, wykorzystał do tego celu
- ESP8266-01
- DHT22
- BMP180
dane są wysyłane na serwer:
https://thingspeak.com/
Wszystko działa poprawnie odczytuje dane z czujników i wyszyła na serwer, aczkolwiek męczy mnie mała zagwozdka.
Dane o ciśnieniu wyświetla w postaci 101810 Pa, chciałbym uzyskać wynik w postaci 1018 Pa, za chiny nie mogę dojść do tego jak to osiągnąć.
Kod programu w grany do ESP8266-01 Arduino IDE
- ESP8266-01
- DHT22
- BMP180
dane są wysyłane na serwer:
https://thingspeak.com/
Wszystko działa poprawnie odczytuje dane z czujników i wyszyła na serwer, aczkolwiek męczy mnie mała zagwozdka.
Dane o ciśnieniu wyświetla w postaci 101810 Pa, chciałbym uzyskać wynik w postaci 1018 Pa, za chiny nie mogę dojść do tego jak to osiągnąć.
Kod programu w grany do ESP8266-01 Arduino IDE
Kod:
#include <DHT.h>
#include <OneWire.h>
#include <Adafruit_BMP085.h>
#include <ESP8266WiFi.h>
#include "SSD1306.h"
SSD1306 display(0x3c, 0, 2);
#define DHTPIN 1 //GPIO1 (Tx)
#define DHTTYPE DHT22
const char* ssid = "";
const char* password = "";
const char* host = "api.thingspeak.com";
const char* writeAPIKey = "";
//DHT22
float temperature_buiten;
float temperature_buiten2;
DHT dht(DHTPIN, DHTTYPE, 15);
//bmp180
Adafruit_BMP085 bmp;
void setup() {
//I2C
Wire.pins(0, 2);
Wire.begin(0, 2);
// instalacja sensorow
//dht22
dht.begin();
//bmp180
if (!bmp.begin()) {
// Serial.println("Brak polaczenia BMP180/BMP085");
// while (1) {}
}
//OLED
display.init();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_10);
delay(1000);
// laczenie z routerem WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}
void loop() {
//dht22 --------------------
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
return;
}
//bmp -------------------------
String t=String(bmp.readTemperature());
String p=String(bmp.readPressure());
const float wysokoscwmetrach = 197.93;
//OLED stuff--------------------------
display.clear();
display.drawString(0,10,p);//bmp cisnienie
display.drawString(0,38,String(humidity));//dht22 wilgotnosc
display.display();
// Nawiazywanie polaczenia z TCP
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
return;
}
String url = "/update?key=";
url += writeAPIKey;
url += "&field1=";
url += String(temperature); //Temperatura (DHT22)
url += "&field2=";
url += String(humidity);// Wilgotność (DHT22)
url += "&field3=";
url += String(bmp.readTemperature());//Temperatura (BMP180)
url += "&field4=";
url +=String(bmp.readSealevelPressure((wysokoscwmetrach)));// Cisnienie powietrza (BMP180)
url += "&field5=";
url +=String(bmp.readAltitude());// Wysokosc (BMP180)
url += "\r\n";
// Wyślij żądanie do serwera
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(1000);
}