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

Arduino IDE esp8266+dht22+bmp085

Vitaly

Member
dht я проверял, работает, а свободного bmp у меня нет, могу только либу проверить на собираемость
проверять вживую и доделывать придется своими силами


Правда я в ардуиноЕСП не пробовал rx tx использовать для датчиков, всегда для отладки оставляю.
Если это действительно надо на 01 плате, придется отдельно проверять.
 

Vitaly

Member
https://dl.dropboxusercontent.com/u/28031220/esp8266/esp_dht_bmp.ino
AP и STA режимы, показывает данные через веб и может отсылать GET запросом на любой сервер

там же попробовал приделать bmp, но либа не собирается, похожая ошибка наблюдается тут https://github.com/esp8266/Arduino/issues/612 где уважаемый igrr вроде бы ей занимается


ps
копипастил из аналогичного проекта, может быть что-то забыл, проверь)
 

Emmy

Member
[HASHTAG]#define[/HASHTAG] DHTPIN 5
[HASHTAG]#define[/HASHTAG] DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

пятый пин????? как так ничего не понимаю.откуда пятый пин на esp8266
 

Vitaly

Member
а, да конечно это с моей платы
сейчас посмотрим что там для TX
 

Vitaly

Member
кстати совсем же забыл что все Serial надо выкидывать! они помешают работе с этими пинами
 

Vitaly

Member
ардуина со свежим набором есп либ собирает bmp без проблем с sqr и pow
 

kkozyrev

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
 
Последнее редактирование:

Vitaly

Member
должны и ардуиновские примеры работать
только все равно потом работу с сетью добавлять

для отладки сначала отдельно bmp надо запускать, не трогая rx,tx пинов
и только потом собирать все в кучу
 

Vitaly

Member
Насколько я понимаю оно использует wire.h которая для esp своя и принимает параметры пинов при инициализации.
 

Vitaly

Member
прямо как в описании http://esp8266.ru/arduino-ide-esp8266/
I2C (Библиотека Wire)
Реализован только режим ведущего, частота ориентировочно до 450 кГц. Перед использованием шины I2C, нужно выбрать пины SDA и SCL путем вызова функции Wire.pins(intsda,intscl), например Wire.pins(0,2) для модуля ESP-01. Для других модулей пины по умолчанию 4(SDA) и 5(SCL).
хотя странно, где-то я читал что .pins устарело и достаточно просто инициализации
Wire.begin(sda,scl);
 
Сверху Снизу