Оглавление:
- Шаг 1. Создайте и настройте свои каналы Thingspeak
- Шаг 2: Установите Arduino IDE, библиотеки и настройте BME280
- Шаг 3. Запрограммируйте ESP8266 с помощью Arduino IDE
- Шаг 4. Вернитесь к Thingspeak, чтобы внести некоторые изменения в данные
- Шаг 5: отредактируйте предоставленный HTML-файл
Видео: ESP8266 NodeMCU с датчиками и диаграммой BME280: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Необычные датчики и диаграмма для вашей платы разработки 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
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
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
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, чтобы внести некоторые изменения в данные
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 и найдите комментарии, в которых говорится «******** Замени меня 1 из 8 *********». Измените их по своему усмотрению.
Примечания:
Некоторые текстовые поля и недельный график не будут правильно заполнены до тех пор, пока у вас не будет данных за полный день и за всю неделю для раздела и диаграммы за 24 часа и неделю. Когда у вас есть набор данных, вы можете увеличивать масштаб графиков с помощью колесика мыши (щелкните правой кнопкой мыши для сброса). Вы также можете получить четвертый датчик (как показано на скриншотах) от другого датчика из другого канала, но я начал соответствующие части. Если вы чувствуете себя ловким, подключите его. Также следует помнить о некоторых проблемах с синхронизацией. Скорее всего, у вас не будет самых последних данных, но они всегда должны быть менее 5 минут назад. Это происходит из-за того, что срабатывает контроль времени, когда данные были отправлены с ESP8266 и когда вы загружали / обновляли веб-страницу.
Откройте предоставленный файл ESP8266-NodeMCU-12E-BME280.html в своем веб-браузере, и вы увидите заполненные индикаторы и диаграмму.
Загрузите файлы кода.ino и. HTML здесь
Рекомендуемые:
Начало работы с беспроводными датчиками температуры и вибрации большого радиуса действия: 7 шагов
Начало работы с беспроводными датчиками температуры и вибрации с большим радиусом действия. Иногда вибрация является причиной серьезных проблем во многих приложениях. От валов и подшипников машин до производительности жесткого диска - вибрация вызывает повреждение машины, преждевременную замену, низкую производительность и существенно снижает точность. Мониторинг
Робот с несколькими датчиками, управляемый Wi-Fi: 6 шагов
Робот с несколькими датчиками, управляемый Wi-Fi: в этом уроке я покажу вам, как построить интеллектуальный ровер, управляемый Wi-Fi, с использованием nodemcu. С помощью этого ровера вы можете наблюдать за параметрами окружающей среды робота (свет, температура, влажность) в реальном времени. время со смартфоном. первые часы
Как сделать домашнюю автоматизацию на основе Интернета вещей с помощью реле управления датчиками NodeMCU: 14 шагов (с изображениями)
Как сделать домашнюю автоматизацию на основе IoT с помощью реле управления датчиками NodeMCU: в этом проекте на основе Интернета вещей я сделал домашнюю автоматизацию с помощью Blynk и модуля реле управления NodeMCU с обратной связью в реальном времени. В ручном режиме этим релейным модулем можно управлять с мобильного телефона или смартфона, а также с помощью ручного переключателя. В автоматическом режиме этот умный
Робот для обхода препятствий с ИК-датчиками без микроконтроллера: 6 шагов
Робот для обхода препятствий с ИК-датчиками без микроконтроллера: Ну, это старый проект, я сделал его в 2014 году в июле или августе, подумал поделиться им с вами, ребята. Это простой робот, избегающий препятствий, который использует ИК-датчики и работает без микроконтроллера. В ИК-датчиках используется микросхема операционного усилителя i
Аудиосэмплер на основе DFPlayer с емкостными датчиками: 9 шагов
Аудио-сэмплер на основе DFPlayer с емкостными датчиками: введение После экспериментов с конструкцией различных синтезаторов я решил создать аудио-сэмплер, который можно было легко воспроизводить и недорого. Чтобы иметь хорошее качество звука (44,1 кГц) и достаточную емкость памяти, мод DFPlayer