• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Arduino IDE esp8266+dht22+bmp085

Anton_IOT

New member
Если интересно, то вот мой скетч для ESP-01. Отсылает данные на thingsspeak.com
[HASHTAG]#include[/HASHTAG] <ESP8266WiFi.h>

[HASHTAG]#include[/HASHTAG] <DHT.h>
[HASHTAG]#define[/HASHTAG] DHTPIN 2 // номер пина, к которому подсоединен датчик
// Раскоментируйте в соответствии с используемым датчиком
// Инициируем датчик
DHT dht(DHTPIN, DHT22);
//DHT dht(DHTPIN, DHT11);


const char* ssid = "kozyrev"; //имя WIFI сети
const char* password = "*****************"; // пароль WIFI сети

const char* host = "api.thingspeak.com";
const char* apikey="*****************"; // ключик от thingsspeak.com

int zaderjka = 40;// задержка в секундах


void setup() {
Serial.begin(115200);
dht.begin();
delay(100);

// подключаемся к WiFi сети

Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}

int temperatura = 0;
long chislo = 0;


void loop() {
delay(zaderjka*1000);


dht.begin();
delay(1500);


// Считываем температуру
float temperatura = dht.readTemperature();
//Считываем влажность
float humidity = dht.readHumidity();
// Проверка удачно прошло ли считывание.
if (isnan(humidity) || isnan(temperatura)) {
Serial.println("Can't find DHT on PIN");
return;
}

Serial.print("Humidity: ");
Serial.print (humidity);
Serial.print ("% Temperature: ");
Serial.println (temperatura);

Serial.print("connecting to ");
Serial.println(host);

// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
Serial.println();
Serial.println();
Serial.println();
return;
}
Serial.println("connected -)");
Serial.println("");
// Создаем URI для запроса
String url = "/update?key=";
url += apikey;
url += "&field1=";
url += temperatura;
url+="&field2=";
url+=humidity;

Serial.print("Requesting URL: ");
Serial.print(host);
Serial.println(url);




// отправляем запрос на сервер
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
client.flush(); // ждем отправки всех данных


// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\r');
//char line = client.read();
Serial.print(line);
}

Serial.println();
Serial.println("closing connection");
Serial.println();
}

Вот только BMP085 с dht22 получается не совместить на ESP-01
Помогите, пожалуйста, - все собрал как описано - Data от DHT идет на GPIO02 (DHTPIN 2) у ESP8266-01
отдельно использовал этот ПИН для тестов - поморгать светодиодом - все работало..
К wifi подключается нормально , данные на ThingSpeak передает -
но они нулевые - видимо ошибка чтения данных с датчика -
отдельно пробовал давать именно на него (DHT) 5Вольт , но проблему не решило ...

как esp8266-01 научить работать с DHT22 ?
 
Сверху Снизу