Оглавление:

ESP8266 NodeMCU с датчиками и диаграммой BME280: 5 шагов
ESP8266 NodeMCU с датчиками и диаграммой BME280: 5 шагов

Видео: ESP8266 NodeMCU с датчиками и диаграммой BME280: 5 шагов

Видео: ESP8266 NodeMCU с датчиками и диаграммой BME280: 5 шагов
Видео: Подключение GY-BME-280 3.3v к ESP8266 NodeMcu V3, сравнение с классическим барометром 2024, Ноябрь
Anonim
ESP8266 NodeMCU с датчиками BME280 и диаграммой
ESP8266 NodeMCU с датчиками BME280 и диаграммой
ESP8266 NodeMCU с датчиками BME280 и диаграммой
ESP8266 NodeMCU с датчиками BME280 и диаграммой

Необычные датчики и диаграмма для вашей платы разработки ESP8266 NodeMCU с датчиком температуры, влажности и давления BME280. Thingspeak будет хранить все ваши данные в облаке для извлечения в любое время (надеюсь) на долгие годы. Индикаторы и диаграмма заполняются на основе данных, хранящихся на сайте thingspeak, и обновляются автоматически каждые 5 минут.

Необходимые предметы:

Плата разработки ESP8266 NodeMCU (3,79 доллара от Banggood.com, Гонконг)

Bosch BME280 (5,63 доллара от Banggood.com, Гонконг)

Перемычки для макетных плат (3,09 доллара на Banggood.com, Гонконг)

Макетная плата (2,28 доллара от Banggood.com, Гонконг)

Блок питания, бесплатно, если у вас есть зарядное устройство для телефона с разъемом micro-USB.

Кабель Micro USB, бесплатно, если он у вас уже есть

Arduino IDE, скачать бесплатно

Загрузите файлы кода.ino и. HTML здесь

Шаг 1. Создайте и настройте свои каналы Thingspeak

Создайте и настройте свои каналы Thingspeak
Создайте и настройте свои каналы Thingspeak

1. Создайте бесплатную учетную запись Thingspeak и новый канал на https://thingspeak.com, назовите канал «ESP8266-NodeMCU-12E-BME280».

2. Новый канал должен иметь 3 поля с названием «Температура, влажность, давление» в указанном порядке (обратите внимание на заглавные буквы).

3. Обратите внимание на свой новый «идентификатор канала» XXXXXX в разделе «Настройки канала».

4. Щелкните ссылку «Ключи API» и обратите внимание на свои «Запись API» и «Чтение ключей API» XXXXXXXXXXXXXXX. Также сделайте этот канал общедоступным.

5. Создайте второй канал Thingspeak, который будет содержать данные «Сегодня» (с полуночи) High Low. Назовите это "Ежедневные данные максимума и минимума BME280".

6. Этот новый канал должен иметь 6 полей с именами Tmax Tmin Hmax Hmin Pmax Pmin в указанном порядке (обратите внимание на заглавные буквы).

7. Обратите внимание на идентификатор канала «BME280 Daily High Low Data», «Чтение» и «Запись ключей API», как и в описанных выше шагах.

Шаг 2: Установите Arduino IDE, библиотеки и настройте BME280

Установите Arduino IDE, библиотеки и настройте BME280
Установите Arduino IDE, библиотеки и настройте BME280

8. Следуйте инструкциям по установке ядра Arduino IDE и ESP8266 по адресу

9. Запустите IDE Arduino, чтобы мы могли установить четыре библиотеки, которые нам понадобятся.

10. Вам понадобится библиотека «Adafruit Unified Sensor Driver», установите ее в «Диспетчере библиотек» в Arduino IDE. Эскиз меню Включить библиотеку Управление библиотеками выполните поиск по Type = "Recommended" Topic = "Sensors", затем введите слова Adafruit Unified Sensor Driver в поле поиска. Тот, который вы хотите, гласит: «Унифицированный драйвер датчика Adafruit от Adafruit».

11. Кроме того, вам также потребуется «Библиотека Adafruit BME280», чтобы установить ее в «Диспетчере библиотек» в Arduino IDE. Эскиз меню Включить библиотеку Управление библиотеками выполните поиск по Type = "Recommended" Topic = "Sensors", затем введите слова Adafruit BME280 Library в поле поиска. Тот, который вам нужен, гласит: «Библиотека Adafruit BME280 от Adafruit».

12. Еще одна необходимая библиотека - Wire.h, установите ее в «Диспетчере библиотек» в Arduino IDE. Меню, эскиз Включить библиотеку Управление библиотеками Выполните поиск по Type = "Contributed" Topic = "Signal Input / Output", затем введите слово Wire в поле поиска. Тот, который вам нужен, говорит: «Провод, встроенный в Arduino». Скорее всего, внизу выбора.

13. Еще одна библиотека, ESP8266WiFi, установите ее в «Диспетчере библиотек» в Arduino IDE. Меню, эскиз Включить библиотеку Управление библиотеками Выполните поиск по Type = "Contributed" Topic = "Communication", затем введите слово ESP8266wifi в поле поиска. Тот, который вам нужен, говорит: "ESP8266wifi, встроенный Иваном Грохотковым".

14. Адрес I2C для BME280 жестко запрограммирован в файле Adafruit_BME280.h (найдите строку #define BME280_ADDRESS 0x77) внутри папки Adafruit_BME280_Library. Сенсорные модули Adafruit BME жестко запрограммированы на использование адреса I2C 0x77. Но BME280 может иметь немного другой адрес I2C (0x76), если его внешний вывод SDO заземлен. Если вы используете сенсорные модули сторонних производителей, вполне вероятно, что их адрес не будет совпадать со значением по умолчанию в библиотеке Adafruit. Например, для большинства сенсорных модулей BME280, доступных на eBay или Aliexpress, адрес I2C равен 0x76. Если вы не получаете ответ от датчика с использованием адреса по умолчанию, установленного в файле Adafruit_BME280.h, вам может потребоваться изменить его на 0x76.

Точки подключения BME280 и ESP8266. ESP8266 3.3V на BME280 Vin, ESP8266 GND на BME280 GND, ESP8266 D4 на BME280 SCL, ESP8266 D3 на BME280 SDA. 15. Откройте предоставленный файл ESP8266-NodeMCU-12E-BME280.html в текстовом редакторе и введите свой «ESP8266-NodeMCU-12E-BME280» (первый созданный канал), «ID канала» и «Чтение ключа API» для переменные key1 и chan1. Также введите «Чтение ключа API» и «ID канала» для «BME280 Daily High Low Data» (второй канал, который вы создали) для key2 и chan2. Кроме того, введите смещение часового пояса от UTC. Как в -5 для меня. Все значения должны быть заключены в одинарные кавычки «XXXXX». Сохраните и выйдите из текстового редактора.

Подключите ESP8266 с помощью кабеля USB к компьютеру, затем выберите последовательный порт в качестве порта USB.

Пользователям Linux, возможно, придется изменить право собственности на порт USB для связи с / dev / ttyUSB0, как в «sudo chown yourusername / dev / ttyUSB0» или что бы вы ни выбрали в качестве порта при настройке.

Шаг 3. Запрограммируйте ESP8266 с помощью Arduino IDE

Запрограммируйте ESP8266 с помощью Arduino IDE
Запрограммируйте ESP8266 с помощью Arduino IDE

16. Далее мы запрограммируем ESP8266. Подключите USB-кабель к ESP8266 и компьютеру.

Загрузите предоставленный файл New_BME_Sensor.ino в IDE Arduino. Ваш датчик BME280 должен быть подключен к D3 (SDA) и D4 (SCL) на ESP8266. Введите свой «ESP8266-NodeMCU-12E-BME280» (первый созданный вами канал) «Ключ записи», «Беспроводной SSID» и «Пароль» в правильный раздел скетча. Затем выберите пункт меню «Эскиз» и «Загрузить». После того, как вы загрузите эскиз (прогресс достигает 100%) в ESP8266, вы можете открыть монитор последовательного порта (значок вверху справа выглядит как увеличивающееся стекло) и через 5 минут каждые 5 минут распечатывать ваши данные. Данные отправляются в Thingspeak с 5-минутными интервалами, поэтому пройдет некоторое время, прежде чем у вас появятся значимые данные диаграммы, но вы должны получить показания датчика через 5 минут.

Убедитесь, что вы получаете правильные показания BME280 на последовательном мониторе.

Первое измерение, скорее всего, будет неверным.

Подождите несколько минут до следующего чтения и убедитесь, что показания хорошие.

Шаг 4. Вернитесь к Thingspeak, чтобы внести некоторые изменения в данные

Вернитесь к Thingspeak, чтобы внести некоторые изменения в данные
Вернитесь к Thingspeak, чтобы внести некоторые изменения в данные

17. Теперь, пока данные медленно загружаются в Thingspeak, давайте сделаем некоторые настройки, чтобы получить дополнительные данные из того, что загружается. Вернитесь на сайт Thingspeak и на странице канала Thingspeak «BME280 Daily High Low Data» (второй канал, который вы создали) нажмите зеленую кнопку «MATLAB Analysis». Выберите шаблон «Пользовательский (без начального кода)».

18. Назовите анализ MATLAB «Вычислить минимальный максимум с полуночи».

19. Скопируйте код MATLAB Analysis.txt в предоставленное пространство. Введите «идентификатор канала» для «ESP8266-NodeMCU-12E-BME280» (первый канал, который вы создали) в «readChannelID». Введите «BME280 Daily High Low Data» (второй созданный вами канал). Запишите «ID канала» и «ключ записи» в writeNewChannelID и writeAPIKey соответственно. Я знаю, это звучит запутанно (прочтите еще раз). Нажмите "Сохранить и запустить". Если вы все сделали правильно и канал чтения является общедоступным, вы не увидите ошибок, и он успешно распечатает значения. Обратите внимание: вы можете увидеть ошибку, если на этот канал еще не были загружены данные. Несмотря на ошибку продолжаем. При желании вы можете еще раз нажать «Сохранить и запустить», чтобы убедиться, что все работает после загрузки данных.

20. Затем нам нужно создать «Контроль времени», чтобы запускать этот код каждые 5 минут, и наши данные будут записаны в канал «BME280 Daily High Low Data» (второй канал, который вы создали). На главной странице «BME280 Daily High Low Data» (второй канал, который вы создали) выберите «Приложения» вверху. Под действиями выберите «TimeControl», затем зеленую кнопку «New TimeControl». Назовите его «Send High Low Temps ESP8266». При необходимости выберите свой часовой пояс и выберите «Повторяющийся» в разделе «Частота». Выберите «Минуты» в разделе «Повторение». Установите для запуска каждые 5 минут. Действие должно быть MATLAB Analysis, а «Code to Execute» - «Calculate Min Max Since Midnight». Экономьте TimeControl.

Шаг 5: отредактируйте предоставленный HTML-файл

Отредактируйте предоставленный HTML-файл
Отредактируйте предоставленный HTML-файл

Отредактируйте файлы HTML и найдите комментарии, в которых говорится «******** Замени меня 1 из 8 *********». Измените их по своему усмотрению.

Примечания:

Некоторые текстовые поля и недельный график не будут правильно заполнены до тех пор, пока у вас не будет данных за полный день и за всю неделю для раздела и диаграммы за 24 часа и неделю. Когда у вас есть набор данных, вы можете увеличивать масштаб графиков с помощью колесика мыши (щелкните правой кнопкой мыши для сброса). Вы также можете получить четвертый датчик (как показано на скриншотах) от другого датчика из другого канала, но я начал соответствующие части. Если вы чувствуете себя ловким, подключите его. Также следует помнить о некоторых проблемах с синхронизацией. Скорее всего, у вас не будет самых последних данных, но они всегда должны быть менее 5 минут назад. Это происходит из-за того, что срабатывает контроль времени, когда данные были отправлены с ESP8266 и когда вы загружали / обновляли веб-страницу.

Откройте предоставленный файл ESP8266-NodeMCU-12E-BME280.html в своем веб-браузере, и вы увидите заполненные индикаторы и диаграмму.

Загрузите файлы кода.ino и. HTML здесь

Рекомендуемые: