todo navbar etc

Прислали как-то китайские товарищи с aliexpress пару модулей с датчиком Bosch BME680. Заказывал по цене $6.24.

Лежит на полке множество модулей на базе esp32, но решил все-таки использовать описанный уже здесь, собранный ранее на макетке девайс с модулем esp8266 esp07. Ну чтобы уже от него избавиться :), ну и не расходовать более дорогие девайсы на простые задачи. Хотя время не стоИт... И модули esp32 можно заказать за $3..$5.

На картинке ниже показано подключение.

В корпусе:

Датчик за окном поместил в белую пластмассовую банку от какого-то косметического вещества. Для защиты (датчика) от солнца и осадков. Банку прикрутил вверх дном, а снизу оставил открытой, понятно, что датчик должен контактировать со средой :)

Программирование

Шину I2C повесил на эти ноги:

  //i2c pins 
  int pinSda = 14; 
  int pinScl = 12;

Алгоритмы... Загружается модуль. В функции setup() инициализируется сенсор с помощью библиотеки Zanshin_BME680.cpp (кому надо, тот нагуглит). Далее делаем WiFi.begin(ssid, password) и т.п.

Функция loop(). Читаем в массив данные сенсора: BME680.getSensorData(data[0], data[1], data[2], data[3]); Далее с помощью библиотеки arduinojson.org генерим json строку из массива c нужными данными, у меня это - температура, влажность, давление, gas, напряжение питания модуля (ESP.getVcc()) и уровень сигнала WiFi.RSSI().

Далее с помощью http клиента, передается это все post запросом на сервер в локальной сети.

Затем засыпаем на 10 минут.

  ESP.deepSleep(seconds * 1000 * 1000);

Через время, заданное переменной seconds, модуль запустится и т.д. Такого интервала измерений погоды для меня пока достаточно.

На сервере при помощи php сохраняем данные в БД или файлы. А на всяком там javascript рисуем какие-то графики:

#49

Тут могла бы быть ваша реклама :-)
Tags