Оглавление:
- Шаг 1. Что вам нужно…
- Шаг 2: Начните с настройки оборудования датчика BME 280
- Шаг 3: Код BME 280 Nodemcu ESP8266
- Шаг 4: Успех датчика BME280 + поиск и устранение неисправностей
- Шаг 5: Настройка оборудования Soilsensor
- Шаг 6: Код DS18B20 Nodemcu ESP8266
- Шаг 7: Успех Soilsensor и устранение неисправностей
- Шаг 8: Готово
Видео: Датчики расширения Nodemcu ESP8266 для Weewx: 8 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Это инструкция по добавлению датчиков в программное обеспечение метеостанции Weewx.
Если у вас нет Weewx, вы можете кое-что узнать в этом руководстве.
вам нужны базовые знания кода Arduino и способы загрузки на устройство.
Вы можете найти информацию о weewx здесь:
Вы строите 2 устройства:
1 Устройство отправляет данные о температуре и влажности в программное обеспечение weewx.
1 Устройство отправляет в программное обеспечение weewx данные о температуре почвы на разных глубинах.
Наше первое устройство - датчик BME 280.
Наше второе устройство представляет собой цепочку из 3 датчиков температуры DS18B20. (Вы можете добавить больше, если хотите).
Давайте начнем:
Шаг 1. Что вам нужно…
Weewx запущен и работает + доступ к серверу weewx. (например малиновый PI 3).
2 модуля Nodemcu ESP8266
3 или более датчиков DS18B20
1 комбинированный датчик BME 280
1 Алюминиевая труба или аналогичная труба диаметром 10 мм и толщиной стенки 1 мм и ок. 1 метр в длину
1 Водонепроницаемый корпус с кабельным вводом и контргайкой.
1 Источник питания 5 В (например, мобильный погрузчик).
Некоторые провода и паяльник.
Вы найдете датчик BME280 и модули Nodemcu на ebay.
Для алюминиевых труб я выбираю местный строительный магазин
Для DS18B20 и водонепроницаемого корпуса я использую www.reichelt.de
www.reichelt.de/DS-18B20/3/index.html?ACTI…
www.reichelt.de/EL-FK-110/3/index.html?ACT…
и группа кабельного ввода с контргайками
www.reichelt.de/Kabelverschraubungen-Bopla…
Для bme280 вы можете дополнительно использовать разветвитель.
www.reichelt.de/Installationsmaterial/EL-D…
Шаг 2: Начните с настройки оборудования датчика BME 280
Припаяйте полоску к BME280.
Затем подключите BME к Nodemcu:
BME VIN до 3,3 В
BME GND на GND
SCL в D4
SDA в D3
При желании вы можете поместить устройство в корпус, но убедитесь, что в корпусе есть отверстия, чтобы значения влажности и температуры были правильными.
Шаг 3: Код BME 280 Nodemcu ESP8266
Для кода вы можете использовать мои репозитории на github:
github.com/Landixus/BME280_TO_SERVER_WEEWX
Ino-файл требует от вас некоторых вставок:
IP-адрес вашего сервера Weewx или URL-адрес
и маршрут, по которому у вас есть файл php, убедитесь, что область доступна для записи.
Я выбираю каталог public_html, потому что это домашний сервер.
если вы хотите клонировать репозитории git и на вашем сервере установлен git, вы можете клонировать с помощью команды:
"git clone" https://github.com/Landixus/BME280_TO_SERVER_WEEWX"
Теперь нам нужно кое-что сделать на нашем сервере weewx.
Вам нужно сделать пути к своим настройкам!
в
/ главная / weewx / public_html
создать папку данных
в папке данных создайте bme.txt, например, с помощью:
нано bme.txt
файл должен быть пустым.
сделать его доступным для записи с помощью:
chmod -R 777 bme.txt
(вы никогда не делаете этого на сервере, доступном в Интернете!)
в папке
/ главная / weewx / public_html
вы помещаете bme.php моего репозитория на github.
Хитрость в том, что файл INO отправляет значения в bme.php, а bme.php записывает данные в bme.txt.
Далее нам нужно добавить сервис в Weewx
поместите bme.py в папку
/ главная / weewx / bin / пользователь
откройте свой weewx.conf в папке
/ главная / weewx
Перед редактированием этого файла всегда хорошо иметь резервную копию!
перейдите к строке Engine и сделайте ее похожей на мою:
[Двигатель]
# В этом разделе указаны службы, которые должны быть запущены. Они есть
# сгруппированы по типу и порядку услуг в каждой группе
# определяет порядок, в котором будут запускаться службы.
data_services = user.pond. PondService, user.bme.bme
перезапустите weewx с помощью:
sudo /etc/init.d/weewx stop
sudo /etc/init.d/weewx start
с командой
хвост -f / var / журнал / системный журнал
вы можете искать в файле журнала ошибки или успехи, искать выходное значение bme: found…
Дайте вашему серверу несколько минут на генерацию, в "моем" weewx.conf каждые 5 минут приходит вывод.
Если у вас есть сообщение об ошибке, проверьте свои пути.
Если у вас есть значения, вы можете показать их на веб-странице:
откройте skin.conf в
/ главная / weewx / скины / Стандарт
перейти к:
# Этот, вероятно, относится к моей станции! Add
extraTemp3 = BME1 ТемператураextraHumid1 = BME1 Влажность
сохраните файл и откройте в той же папке
index.html.tmpl
ищите строку:
#if $ day.extraTemp..
#end if
после первого #end, если вы обнаружите, поместите датчик BME с:
^^ извините, но это невозможно передать как текст:(сохраните файл и выйдите.
перезапускать Weewx не нужно.
Теперь вам нужно накормить NODEMCU ESP8266 файлом Arduino.
Не забудьте указать свой Wi-Fi и адреса в файле.
После загрузки проверьте последовательный вывод на наличие ошибок.
Через некоторое время вы должны увидеть значения на своем веб-сайте Weewx.
Шаг 4: Успех датчика BME280 + поиск и устранение неисправностей
Несколько советов для вас:
Открыть более 1 консоли с помощью замазки
на 1 консоли внесите свои изменения, а на другой консоли прочтите свой системный журнал в прямом эфире с:
хвост -f / var / журнал / системный журнал
Если у вас возникла ошибка, сначала посмотрите файл журнала.
Ваш результат должен быть похож на мой:
Шаг 5: Настройка оборудования Soilsensor
Для датчика DS18B20 нам нужно сделать шинную систему с некоторыми проводами и пайкой.
Проверьте свой DS18B20
ДАННЫЕ, GND, VCC
Между VCC и DATA вам понадобится резистор 4,7 кОм. Достаточно наличия резистора на первом DS18B20
Остальные DS18B20 параллельны друг другу.
Измерьте длину по своему усмотрению. Спаяем цепочку, я закрепил штыри термоусадочной трубкой.
Для ТЕСТА вы подключаете ДАННЫЕ к D3, а VCC к VCC (3,3 В) и GND к GND.
Для опции глубокого сна вам необходимо подключить мост между RST и D0 (GPIO16)
Не вставляйте цепь в алюминиевую трубку прямо сейчас, сделайте свои тесты раньше!
Шаг 6: Код DS18B20 Nodemcu ESP8266
Для кода вы можете использовать мои репозитории GITHUB:
github.com/Landixus/multipleDS18B20WeeWX
Также ino-файл нуждается в некоторых вставках от вас: IP-адрес вашего сервера Weewx или URL-адреса и маршрут, по которому вы поместили php-файл, убедитесь, что область доступна для записи. Я выбираю каталог public_html, потому что это домашний сервер.
Если вы хотите клонировать репозитории git и на вашем сервере установлен git, вы можете клонировать его с помощью команды «git clone
Теперь нам нужно кое-что сделать, чтобы все работало на нашем сервере weewx.
Вам нужно сделать пути к своим настройкам в
/ главная / weewx / public_html
создать папку «данные» в папке данных создать файл ds18b20.txt, например nano ds18b20.txt, текст должен быть пустым. сделайте его доступным для записи с помощью chmod -R 777 ds18b20.txt (вы никогда не делаете этого на сервере, доступном в Интернете!). В папке / home / weewx / public_html вы помещаете Ground.php моего репутации github. Хитрость заключается в том, что файл INO отправляет значения в файл ground.php, а файл ground.php записывает данные в ds18b20.txt, а затем нам нужно добавить службу в weewx, поместите ds18b20.py в папку / home / weewx / bin / Пользователь
откройте свой weewx.conf в папке / home / weewx
Всегда хорошо иметь резервную копию перед редактированием этого файла!
перейти к строке:
[Двигатель]
# сгруппированы по типу и порядку услуг в каждой группе
# определяет порядок, в котором будут запускаться службы.
Prep_services = weewx.engine. StdTimeSynch, data_services = user.pond. PondService, user.bme.bme, user.ds18b20.ds18b20 добавить строку после запятой
"user.ds18b20.ds18b20" должен выглядеть как верхняя строка ^^
перезапустите weewx с помощью:
sudo /etc/init.d/weewx stop
sudo /etc/init.d/weewx start
с помощью команды tail -f / var / log / syslog вы можете искать в файле журнала ошибки или успехи искать выходные данные ds18b20: found значение Дайте вашему серверу несколько минут для генерации, в моем weewx.conf каждые 5 минут выходят положил. Если у вас есть сообщение об ошибке, проверьте свои пути. Если у вас есть значения, вы можете показать их на странице: открыть
skin.conf в / home / weewx / skins / Standard перейдите по адресу:
# Этот, вероятно, относится к моей станции!
Добавить
почваTemp1 = DS18B201
почваTemp2 = DS18B202
почваTemp3 = DS18B203
сохраняем файл и открываем в той же папке index.html.tmpl ищем строчку:
#if $ day.extraTemp..…
#end if
после первого #end, если вы обнаружите, что поместите датчик GroundSensor с:
^^ извините, но невозможно записать это как текст: (сохраните файл и выйдите. Нет необходимости перезапускать weewx. Теперь вам нужно загрузить NODEMCU ESP8266 файлом Arduino.
Не забудьте указать свой Wi-Fi и адреса в файле. После загрузки проверьте последовательный вывод на наличие ошибок.
Через некоторое время вы должны увидеть значения на своем веб-сайте Weewx.
Шаг 7: Успех Soilsensor и устранение неисправностей
Если у вас все работает и вы видите значения, то выйдите на улицу и положите алюминиевую трубу в землю.
Хороший способ - нанести горячий клей на одну сторону трубы, а затем сжать трубу вместе, тогда у вас будет красивый верх, чтобы легче было приклеить ее к земле.
Сначала положите трубку в землю, можно мягко забить деревянной доской.
Если труба достаточно глубокая, вы можете положить цепь DS18B20 и провода питания в водонепроницаемый бокс.
Убедитесь, что ваш Wi-Fi работает в этом месте!
Если вы не знаете, какой датчик на какой глубине, есть 2 возможности.
Я тестирую между пальцами 1 ds18b20, у этого температура повышается.
Когда труба уже находится в земле, нормальным значением будет самая высокая точка - самая глубокая точка.
Шаг 8: Готово
Только конец
Публикуйте свои вопросы и показывайте свои темпы в комментариях!
Для получения дополнительной помощи присоединяйтесь к группам Weewx Google на:
groups.google.com/forum/#!forum/weewx-user
Рекомендуемые:
Универсальная печатная плата расширения ввода / вывода для управления многими лампами Nixie с помощью I2C: 9 шагов (с изображениями)
Универсальная печатная плата расширителя ввода / вывода для управления многими лампами Nixie с помощью I2C: В настоящее время существует большой интерес к воплощению в жизнь старинных ламп Nixie. На рынке доступно множество комплектов часов с трубкой никси. Оказалось, что даже шла оживленная торговля старинными русскими никси-лампами. Также здесь, на Instructables, там
Плата расширения RaspberryPi 3/4 для добавления дополнительных функций в Raspberry Pi: 15 шагов (с изображениями)
Плата расширения RaspberryPi 3/4 для добавления дополнительных функций в Raspberry Pi: мы знаем, что Raspberry Pi 3/4 не поставляется со встроенным АЦП (аналого-цифровой преобразователь) и RTC (часы реального времени), поэтому я разрабатываю печатную плату, которая содержит 16 канал 12-битный АЦП, RTC, модуль 4G SIM7600, кнопки, реле, выход питания USB, выход питания 5 В, мощность 12 В
Антенна для расширения диапазона открывания ворот: 6 шагов (с изображениями)
Антенна для увеличения дальности действия открывателя ворот: когда снег на горе Худ становится действительно глубоким, это очень весело кататься на лыжах, кататься на санях, строить снежные форты и бросать детей с палубы в глубокий порошок. Но это не так весело, когда мы пытаемся вернуться на шоссе и открыть ворота, чтобы добраться
Рабочие датчики для отдельных насосов для отбора проб: 3 этапа
Рабочие датчики для отдельных насосов для отбора проб: я создал систему для контроля правильной работы отдельных насосов для отбора проб
Дешевые ИК-датчики приближения для роботов Arduino: 6 шагов (с изображениями)
Дешевые инфракрасные датчики приближения для роботов Arduino: эти инфракрасные датчики приближения небольшие, их легко изготовить и они очень дешевы! Они отлично работают с роботами для отслеживания линии, определения края и минимального расстояния. К тому же они очень и очень недорогие