Вход на сайт

Зарегистрировавшись на сайте Вы сможете добавлять свои материалы






Самодельная метеостанция на микроконтроллере


Уличная метеостанция своими руками | Самоделки

Всем привет! Судя по отзывам на 3D today читателям очень понравились мои часики на индикаторах ИН-14 со встроенной самодельной метеостанцией. Народ просит схемы и статью по реализации этого проекта. Но перед тем как писать такую статью я решил поделиться с вами проектом отдельной метеостанции. Хотя бы по тому, что этот проект, пускай и в расширенном варианте стал частью проекта часов.

Проект не претендует на оригинальность. Не является полностью моей разработкой, он является результатом творческого поиска и объединением для решения поставленной задачи проектов других людей, модифицированных и доработаных до состояния, подходящего для реализации моего проекта.

Не буду тянуть кота за хобот. К делу!

Не помню, говорил я раньше или нет, но 3Д печать никогда не была для меня конечной целью, 3Д принтер изначально покупался для того, чтобы упростить мое творчество и автоматизировать часть процессов, например изготовление пластиковых корпусов или других деталей. Но сам процесс менять так увлек, что самоделки начали отходить на второй план. Но тем не менее, они имеют место быть.

Для начала отвечу на вопрос зачем?

Дело в том, что более года назад я переехал жить за город. А загородная жизнь не только существенно расширила площадь моей мастерской, но и обременила цкрым рядом задач.

Например, если раньше, мне достаточно было взглянуть на метеостанцию, чтобы понять как лучше одеться, то теперь такой фокус не проходит. Удобное расположение метеостанции и удобное расположение датчиков никак не вязались. Да и метеостанция с тремя датчиками для загородного дома, в котором нужно мониторить климат для настройки отопления, была слишком ограничена.. Просто мало датчиков. Тем кто живет в квартирах, будет сложно понять цель данного проекта, а вот те у кого есть свой дом, либо по долгу службы занимаются мониторингом климатических условий, меня поймут.

В итоге хочешь, не хочешь, а для комфорта и экономии энергоресурсов стало необходимо строить некое подобие умного дома, одной из задач которого стал бы мониторинг климата как в доме так и снаружи.

В виду того, что по сути, за исключением некоторых нюансов, сбор информации о климате как в доме, так и за его пределами в принципе одинаков, то я начал с простого — с уличной метеостанции.

Естественно, велосипед изобретать во второй-третий… хрен знает какой раз бессмысленно, то задачу я решил решать с минимальным количеством сил, нервов и денег. Но чтобы это было качественно.

Аппаратная часть

И так, в современном мире, практически все «умные» устройства у нас общаются по Wifi, а в довесок к тому, что к месту установки тащить какие-либо сети связи мне крайне не хотелось, то выбор в пользу WiFi стал очевиден, да и использовать какие-либо другие беспроводные сети нецелесообразно, т.к. у меня весь у. Соответственно базой для нашей платформы должен стать микроконтроллер, который уже имеет на борту этот самый wifi. А что приходит на ум? Правильно, ESP8266. Можно и ESP32 использовать. Вот только смысла в более мощном микроконтроллере нет.

Самым бюджетным и безгеморойным решением в данном случае является использование модулей WEMOS D1 Mini. Необходимое количество выводов есть и отлично. Для данного проекта я использовал модуль Wemos D1 mini от продавца Greatwall (резерв). Можно было бы использовать модули от RobotDyn. Но у меня с ними что-то не срослось. Ну и ладно. Экономия — это всегда приятно

Wemos D1 Mini

Можно было заморочиться и вообще взять модуль ESP-12E, однако, сэкономить ни деньги, ни время таком извращении не получилось бы, да и вопрос компактности устройства стоит не так остро. точнее не стоит никак

Мозги есть. Теперь давайте определимся что мы будем измерять? Необходимо измерять температуру и влажность на улице. А так как мы делаем не комнатный датчик, а уличный, то пускай диапазон измеряемых температур будет лежать в пределах от — 35 градусов до +40 градусов и диапазон измерения вражности от 0 до 100. не хотелось усложнять схему и использовать несколько датчиков, поэтому хотелось использовать один датчик для измерения и температуры и влажности. Но среди всех известных мне датчиков, только один удовлетворяет нашим требованиям, это датчик DHT22. Внимание, датчик DHT11 не подойдет, т.к. не измеряет отрицательные температуры!

Датчик DHT22 я заказывал все в том же магазине Great WALL (резерв). Обязательно берите голый датчик. Дальше поймете почему.

Ну собственно по основному функционалу и все. Устройство практические примитивное. Остался только один вопрос. А как запитать это устройство? На святом духе оно работать не станет. В виду того что с местом размещения метеостанции был электрощит, то оказалось проще всего питать его от напряжения в 220 вольт через миниатюрный блок питания.

Относительно блоков питания, было два варианта

Из этих двух блоков питания я выбрал модель от MeanWell. Да он дороже. Но диапазон температур эксплуатации у него шире. Соответственно шансов выжить в жестких условиях эксплуатации у него намного больше. Да и опять таки MeanWell это хороший качественный бренд за адекватные деньги. тем более, мы имеем дело с высоким напряжением и перестраховаться не повредит. Пожар нам точно не нужен.

Схема электрическая

С основными компонентами мы разобрались. В виду того, что предполагается использовать готовые модули, то схема самого устройства будет довольно простой и потребует минимум рассыпухи.

Схема настолько простая, что думаю, лучше не тратить много времени на ее описание. Делать я все решил надежно. На печатной плате, тем более что к этому обязывает применение блоков питания, предназначенных для монтажа на плату. Плата выглядит следующим образом:

Плата проектировалась в программе SprintLayout.

Если кратко описать саму плату то получается следующее:

  1. Напряжение притания через предохранитель попадает на блок питания (AC/DC) преобразователь. Где преобразуется в постоянное напряжение 5 Вольт.
  2. С блока питания напряжение питания подается к модулю Wemos DiMini
  3. К модулю Wemos D1 Mini подключен датчик DHT22 к выводу D5. При этом, для защиты в цепь установлен резистор на 100 ом.
  4. Вывод данных датчика DHT22 подтянут к напряжению 3,3 В через резистор 10 кОм.
  5. В цепи питания датчика установлен керамический конденсатор на 0,1 мкФ.
  6. К выводу c напряжением 3,3 В на модуле Wemos D1 mini через резистор 330 ОМ подключен светодиод LED1. Его свечение свидетельствует о нормальной работе стабилизатора на модуле D1 mini.
  7. К выводу D6 через резистор 330 ОМ подключен светодиод LED2. Логика диода настраивается программно в прошивке.
  8. К выводу D7 через резистор 330 ОМ подключен светодиод LED3. Логика диода настраивается программно в прошивке.
  9. К выходу с блока питания через резистор 330 ОМ подключен светодиод LED3. Его свечение свидетельствует о нормальной работе блока питания и о том, что устройство подключено к сети 220 вольт.
  10. Неиспользуемые выводы D1 и D2 подтянуты к напряжению питания 3,3в через резисторы 10 кОм

Таким образом, кроме описанных модулей для реализации схемы нам понадобится следующее:

Ссылки практически на все компоненты я дал. А вот предохранитель и панельку для него Вам придется поискать самостоятельно. На плате отверстия проектировались под предохранитель 5*20.

Теперь поговорим о корпусе. Поскольку мы имеем дело с, мягко говоря, не очень благоприятными условиями эксплуатации, а так же с высоким напряжением, то выбирать корпус для платы необходимо особо тщательно. В итоге выбор пал на корпус G212C, который приобретался в местном магазине Чип и дип. Почему этот корпус? Все просто. Соответствие стандарту IP65 и диапазон эксплуатации от -60 до +125 градусов. Такой корпус должен надежно защищать устройство.

В данный корпус необходимо завести 2 кабеля. Один для подключения датчика DHT22, второй для подключения напряжения питания 220В. Для того чтобы не свети на нет защищенность корпуса на него были установлены два кабельных ввода PG7 класса защиты IP68 .

Указанная плата не маленькая. Да. Но такой она делалась специально, чтобы прекрасно разместиться в корпусе устройства и крепиться на предусмотренные для этого винты.

Плату я изготавливал на ЧПУ станке CNC 3018. Получилось вот так:

После гравировки обрабатываем плату, проверяем чтобы небыло никаких КЗ и неприятных сюрпризов. И после этого рассверливаем крепежные отверстия по углам.

Теперь самое время запаять все компоненты, кроме блока питания.

Самое время подключить питание и проверить работоспособность нашего устройства. Я намеренно не паял блок питания, чтобы проверить жизнеспособность схемы.

Все хорошо? Все работает? Тогда поехали дальше.

Как дальше? Как проверять? А де прошивка? Спросите вы. Погодите. Про прошивку я расскажу чуть позже.

Плату мы проверили. Все работает. Теперь смело впаиваем блок питания и устанавливаем предохранитель.

Теперь подаем на вход 220 Вольт и снова проверяем!

Делаем все предельно аккуратно! Внимание! Высокое напряжение, опасное для жизни!

Заработало! Отлично!

Теперь займемся гидроизоляцией. Покроем плату специальным защитным составом 3M SCOTCH 1601, известный под названием «Жидкая изолента».

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

Так выглядят платы, покрытые защитным составом.

Рекомендую не жалеть состава и покрыть плату по 3-4 раза с каждой стороны.

Теперь самое время просверлить в корпусе отверстия и установить кабельные вводы PG7. Места где вводы PG7 с внутренней стороны примыкают к корпусу рекомендую замазать герметиком чисто на всякий случай. А после этого, установить плату на ее законное место.

Для дополнительной защиты от конденсата я разместил внутри корпуса пакетик с силикагелем. Такой лайфхак я подсмотрел у производителя систем видеонаблюдения hilink.

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

Все схемы и исходники проекта уличной метеостанции

Внешний модуль

Ну а теперь кое-что поинтереснее. Это внешний модуль метеостанции. Просто повесить датчик на какую-то поверхность или оставить болтаться на проводе — это плохая идея.

А знаете ли вы как располагаются метеорологические датчики температуры и влажности? Используют специальные вентилируемые корпуса на подобие вантузов. Белого цвета. Вот мне и захотелось, сделать все по красоте. На thingiverse я нашел интересный проект «DHT22 TEMPERATURE HUMIDITY SHELTER» от автора NEO BUILDER.

Как видно по рендеру, это тот самый метеорологический вантуз. Проект разрабатывался как раз для датчика DHT22. Так что это оказалось то что мне нужно. Порадовало, что кроме STL файлов в архиве с проектом оказалась подробная инструкция по сборке данного корпуса. В итоге именно этот проект я и решил реализовать так сказать в пластике. Для печати использовался пластик PETG от компании ABSmaker, если интересно, вот статья про него  «PETG пластик от компании ABSMaker. Краткий обзор и отзыв«. Естественно, печаталась модель из белого пластика.

И вот что у меня получилось:

Корпус печатается из большого количества элементов, а потом собирается на 3 шпильки М4. Для сборки я специально приобрел шпильку из нержавейки и гайки тоже из нержавейки. Делал это чтобы в будущем на корпусе не появились ржавые пятна.

Однако, тут возникла другая проблема. Как надежно закрепить датчик, чтобы провода не оторвались. И все хорошо держалось. В итоге пришлось сделать специальную панельку, к которой был припаян датчик и провод от него.

В итоге, датчик был приклеен и припаян к панельке. К панельке был припаян провод. Потом на места пайки был нанесен слой защитного гидроизоляционного состава. Вот такого:

Ну а после этого, с помощь маленького самореза и и изоленты, датчик был закреплен внутри корпуса.

Прошивка

Устройство готово. Осталось его прошить и смонтировать. Начнем с прошивки. Как я уже говорил выше, то желания изобретать велосипед у меня не было. И смыла изобретать его тоже не было.

Я уже довольно давно работаю с альтернативной прошивкой для датчиков Sonoff, которая называется Tasmota. Я устанавливаю эту прошивку на модули умного дома Sonoff. Эта прошивка прекрасно работает по MQTT с моим сервером умного дома. Задача по мониторингу температуры и влажности для этой прошивки более чем тривиальная. При этом не нужно собирать какой-то кастомный билд прошивки. Берем готовую прошивку и заливаем. Хочешь из hex файла, хочешь, компилируешь в среде arduino ide и заливаешь.

Для тех кому не нравится Tasmota, можете использовать проект espeasy. С этой прошивкой тоже все будет работать, но опыта ее использования у меня практически нет.

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

Не вижу большого смысла описывать все нюансы прошивки, которая используется в готовом виде. Просто прикладываю скрины со своими настройками:

Вот такие вот параметры были выставлены у меня. После полной сборки проекта необходимо было переходить к монтажу.

Монтаж

Закончил проект я где-то в конце ноября-начале декабря. На улице было довольно прохладно и о том, чтобы лазить на столб не было и речи. Да и случить чего, ремонт проводить было бы неудобно. В итоге окончательно решил расположить метеостанцию на старом сарае.

Внутренний блок был закреплен по классике, на черные саморезы внутри сарая на стене, рядом с электро щитком, в котором уже стоит 3 модуля Sonoff Basic, которые управляют частью освещения во дворе.

Ну а для внешнего модуля из обрезка трубы подходящего диаметра и другого мусора был сварен кронштейн, на который и был установлен внешний модуль. Получилось вот так:

Итоги и выводы

Что же я получил в итоге? Я получил вполне годную метеостанцию, созданную с минимальными затратами как сил так и времени. Теперь я могу всегда получать актуальную информацию о температуре и влажности на улице.

Причем не только через Web интерфейс самого модуля, но и в любой момент видеть эту информацию на экране своего телефона (iphone, через встроенное приложение «дом»).

Прошла зима. По крайней мере календарная зима. И что вы думаете? Живет и работает! без всяких проблем. Мои опасения оказались напрасны.

Понимаю, найдутся критики, которые скажут что можно было сделать как-то иначе, но на это я скажу лишь одно:

Это устройство я делал для себя. При этом хотел сделать его минимальными силами и как можно проще. На мой взгляд, это у меня получилось. А так же получилось именно то устройство, которое я задумывал. Оно меня полностью устраивает, чему я очень рад.

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

Если вам понравилась статья и вы хотите поддержать сайт, вступите в нашу группу Вконтакте: https://vk.com/ionline_by

Если вы хотите оперативно получать уведомления о выходе новых статей, подключите себе PUSH уведомления по ссылке: https://ionlineby.pushassist.com/

А еще не забывайте подписываться на инстаграмм сайта https://www.instagram.com/ionline.by/

И обязательно подписывайтесь на катал: https://www.youtube.com/channel/UCwdjiKLXZDJYdUFAx6fZCZA

PanosXY / Мини-метеостанция: мини-метеостанция с микроконтроллером PIC, датчиком температуры / влажности DHT11, фоторезистором для измерения освещенности и модулем Bluetooth для передачи результатов измерений.

перейти к содержанию Зарегистрироваться
  • Почему GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • команда
  • предприятие
  • Проводить исследования
    • Изучить GitHub →
    Учитесь и вносите свой вклад
    .

    Как собирать данные о погоде с помощью собственной домашней станции IoT | Марсело Роваи

    Сбор данных о погоде и их регистрация локально и в сервисе IoT по протоколу MQTT.

    Когда мы, как специалист по данным, говорим о физических переменных, таких как температура, давление и т. Д., Обычно вы начинаете работать с набора данных, который был создан в другом месте. Но задумывались ли вы о том, как собрать эти данные самостоятельно?

    В этом руководстве мы узнаем, как получать данные от нескольких различных датчиков, отправляя их в службу Интернета вещей ThingSpeak.com и в мобильное приложение (Thingsview), где мы можем регистрировать данные и играть с ними. Мы также рассмотрим несколько различных способов подключения датчиков к Raspberry Pi, например:

    • DHT22 - Датчик температуры и влажности - Digital Comm
    • DS18B20 - Датчик температуры - 1-Wire
    • BMP180 - Датчик температуры и давления - I2C
    • UV - Ультрафиолетовый датчик - Аналоговый датчик через A / D и шину SPI

    Короче говоря, все данные будут захвачены, сохранены локально в файле CSV и отправлены в службу IoT (ThingSpeak.com) через протокол MQTT, как вы можете видеть на блок-схеме ниже:

    Чтобы завершить создание реальной метеостанции, на последнем шаге вы также узнаете, как измерять скорость и направление ветра, следуя руководству Маурисио Пинто.

    Jupyter Notebook - фантастический инструмент или, что еще лучше, веб-приложение с открытым исходным кодом, которое позволяет создавать и обмениваться документами, которые содержат живой код, уравнения, визуализации и повествовательный текст. Блокнот Jupyter широко используется в Data Science для очистки и преобразования данных, численного моделирования, статистического моделирования, визуализации данных, машинного обучения и многого другого!

    В этом руководстве мы будем использовать Jupyter Notebook для взаимодействия с Raspberry Pi GPIO, напрямую считывая датчики и отправляя данные в Интернет.

    Установка

    Вы можете пропустить этот шаг, если на вашем RPi уже установлен Jupyter Notebook

    Чтобы установить Jupyter на Raspberry (который будет работать с Python 3), откройте Терминал и введите следующие команды:

     sudo pip3 install jupyter 
    sudo ipython3 kernelspec install-self

    Теперь на вашем терминале запустите команду:

     jupyter notebook 

    И все !!!! Удивительный! очень просто и легко.Jupyter Notebook будет работать как сервер на:

     http: localhost: 8888 

    Обратите внимание, что ваш браузер по умолчанию будет автоматически открыт по указанному выше адресу и будет работать как «Домашняя страница», как показано на рисунках выше.

    Чтобы остановить сервер и закрыть «ядра» (записные книжки Jupyter), вы должны использовать [Ctrl] + [C] на клавиатуре.

    С этого момента каждый раз, когда вы запускаете свой Pi и хотите использовать Jupyter Notebook, просто введите команду: «Jupyter notebook» на своем терминале, и будет держать его в рабочем состоянии все время. Это очень важно!

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

    Вы можете шаг за шагом следовать этому руководству, создавая свой собственный блокнот, или загрузить последнюю версию с моего GitHub: Rpi_Weather_Station.ipynb.

    Первым устанавливаемым датчиком будет DHT22 для сбора данных о температуре и относительной влажности воздуха. Сайт ADAFRUIT предоставляет отличную информацию об этих датчиках.Ниже приведена некоторая информация, полученная оттуда:

    Обзор

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

    DHT22 Основные характеристики:

    Подходит для показаний влажности 0–100% с точностью 2–5% Подходит для показаний температуры от -40 до 125 ° C с точностью ± 0,5 ° C Частота дискретизации не более 0,5 Гц (каждые 2 секунды)

    • Низкая стоимость
    • Питание от 3 до 5 В и ввод / вывод
    • Максимальный потребляемый ток 2,5 мА во время преобразования (при запросе данных)
    • Размер корпуса 15,1 мм x 25 мм x 7,7 мм
    • 4 контакта с шагом 0,1 дюйма

    Обычно вы будете использовать датчик на расстоянии менее 20 м, между выводами Data и VCC необходимо подключить резистор 4 К7 Ом.Вывод данных выхода DHT22 будет подключен к Raspberry GPIO 16. Проверьте электрическую схему выше, подключив датчик к контактам RPi, как показано ниже:

    • Контакт 1 - Vcc ==> 3,3 В
    • Контакт 2 - Данные ==> GPIO 16
    • Контакт 3 - не подключается
    • Контакт 4 - Gnd ==> Gnd

    Не забудьте установить резистор 4K7 Ом между выводами Vcc и Data

    После подключения датчика мы также должны установите его библиотеку на наш RPi.

    Установка библиотеки DHT:

    На Raspberry, начиная с / home, перейдите в / Documents

     cd Documents 

    Создайте каталог для установки библиотеки и перейдите в него:

     mkdir DHT22_Sensor 
    cd DHT22_Sensor
    8 В своем браузере перейдите на страницу Adafruit GitHub:

    Загрузите библиотеку, щелкнув ссылку загрузки zip справа, и распакуйте архив в недавно созданной папке Raspberry Pi. Затем перейдите в каталог библиотеки (подпапка, которая автоматически создается при разархивировании файла) и выполните команду:

     sudo python3 setup.py install 

    В Jupyter Notebook импортируйте библиотеку Adafrut DHT, определите цифровой контакт для подключения DHT к RPi и запустите код для захвата температуры и влажности:

     import Adafruit_DHT 
    DHT22Sensor = Adafruit_DHT.DHT22
    DHTpin = 16humDHT, tempDHT = Adafruit_DHT.read_retry (DHT22Sensor, DHTpin)
    if (humDHT is not None) и (tempDHT is not None):
    hum = round (humDHT, 1)
    temp = round (tempDHT, 1)

    Запустите ячейку и распечатайте результаты:

     print ('Температура = {} * C Влажность = {}%'.format (temp, hum)) 

    Ниже часть Jupyter Notebook, показывающая результат:

    Обзор датчика:

    В этом руководстве мы будем использовать водонепроницаемую версию датчика DS18B20. Он очень полезен для измерения температуры во влажных условиях, например, на влажной почве. Датчик изолирован и может проводить измерения до 125 ° C (Adafrut не рекомендует использовать его при температуре выше 100 ° C из-за ПВХ-оболочки кабеля).

    DS18B20 - это цифровой датчик, который позволяет использовать его даже на больших расстояниях! Эти однопроводные цифровые датчики температуры достаточно точны (± 0.5 ° C в большей части диапазона) и может дать до 12 бит точности от встроенного цифро-аналогового преобразователя. Они отлично работают с RPi, используя один цифровой вывод, и вы даже можете подключить несколько к одному выводу, каждый из них имеет уникальный 64-битный идентификатор, записанный на заводе, чтобы различать их.

    Датчик работает от 3,0 до 5,0 В, что означает, что он может питаться напрямую от 3,3 В, обеспечиваемого одним из контактов Raspberry (1 или 17).

    Датчик имеет 3 провода:

    • Черный: GND
    • Красный: VCC
    • Желтый: Данные 1-Wire

    Здесь вы можете найти полные данные: DS18B20 Datasheet

    Установка датчика:

    Следуйте приведенной выше схеме и выполните подключения:

    • Vcc ==> 3.3V
    • Gnd ==> Gnd
    • Data ==> GPIO 4 (по умолчанию для библиотеки)

    Установка библиотеки Python:

    Затем давайте установим библиотеку Python, которая будет обрабатывать датчик:

     sudo pip3 установить w1thermsensor 

    Перед запуском сценария для проверки датчика проверьте, включен ли интерфейс «1-Wire» в вашем RPi (см. экран печати ниже)

    Включить интерфейсы

    Не забудьте перезагрузить RPi после изменение его конфигурации

    Тестирование сенсора:

    Для тестирования сенсора можно использовать простой код на Python:

     из w1thermsensor import W1ThermSensor 
    ds18b20Sensor = W1ThermSensor ()
    tempExt18 = round (densorget_tempera (), 1)
    print ('External Temperature = {} * C'.format (tempExt))

    Ниже часть Jupyter Notebook, показывающая результат:

    Обзор датчика:

    BMP180 - это преемник BMP085, нового поколения высокоточных цифровых датчиков давления для потребительских приложений. Электроника BMP180 со сверхнизким энергопотреблением и низким напряжением оптимизирована для использования в мобильных телефонах, КПК, устройствах GPS-навигации и уличном оборудовании. При малой высоте шума всего 0.25 м при малом времени преобразования, BMP180 обеспечивает превосходную производительность. Интерфейс I2C позволяет легко интегрировать систему с микроконтроллером. BMP180 основан на пьезорезистивной технологии для обеспечения устойчивости к электромагнитным помехам, высокой точности и линейности, а также долговременной стабильности.

    Полное техническое описание BMP можно найти здесь: BMP180 - Цифровой датчик давления

    Установка датчика:

    Следуйте приведенной выше схеме и выполните соединения:

    • Vin ==> 3.3V
    • GND ==> GND
    • SCL ==> GPIO 3
    • SDA ==> GPIO 2

    Включение интерфейса I2C

    Перейдите в конфигурацию RPi и убедитесь, что интерфейс I2C включен. Если нет, включите его и перезапустите RPi.

    Использование BMP180

    Если все было установлено и подключено нормально, теперь вы готовы включить Pi и начать смотреть, что BMP180 рассказывает вам об окружающем мире.

    Первое, что нужно сделать, это проверить, видит ли Pi ваш BMP180.Попробуйте выполнить следующее в окне терминала:

     sudo i2cdetect -y 1 

    Если команда сработала, вы должны увидеть что-то похожее на приведенный ниже экран печати терминала, показывающий, что BMP180 находится на канале «77».

    Установка библиотеки BMP180:

    Создайте каталог для установки библиотеки и перейдите в него:

     mkdir BMP180_Sensor 
    cd BMP180_Sensor

    В своем браузере перейдите в Adafruit GITHub:

    Загрузите библиотеку, щелкнув zip-архив. ссылку справа и распакуйте архив в созданную вами папку Raspberry Pi.Затем перейдите в созданную подпапку и выполните следующую команду в каталоге библиотеки:

     sudo python3 setup.py install 

    На Jupyter напишите следующий код:

     import Adafruit_BMP.BMP085 как BMP085 
    bmp180Sensor = BMP085.BMP085 ()
    tempBMP = round (bmp180Sensor.read_tempera (), 1)
    presBMP = round (bmp180Sensor.read_pressure () / 100, 1)
    altBMP = round (bmp180Sensor.read_altitude (), 1)

    Проверьте переменные, прочитанные датчик с приведенным ниже кодом:

     print ('Температура = {} C'.формат (tempBMP)) 
    print ('Давление = {} гПа [или мбар]'. формат (presBMP))
    print ('Высота = {} м' .format (altBMP))

    Ниже часть Jupyter Notebook показывает результат

    Обратите внимание, что давление датчика представлено в Па (Паскалях). См. Следующий шаг, чтобы лучше понять это устройство.

    Давление на уровне моря

    Давайте потратим время, чтобы понять немного больше о том, что мы получим с показаниями BMP.

    Вы можете пропустить эту часть руководства или вернуться позже, а если вы хотите узнать больше о показаниях датчиков, перейдите к этому замечательному руководству: https: // learn.sparkfun.com/tutorials/bmp180-barome ...

    BMP180 был разработан для точного измерения атмосферного давления. Атмосферное давление зависит от погоды и высоты.

    Что такое атмосферное давление?

    Определение атмосферного давления - это сила, которую окружающий воздух оказывает на все. Вес газов в атмосфере создает атмосферное давление. Обычная единица давления - «фунты на квадратный дюйм» или фунты на квадратный дюйм. Мы будем использовать здесь международное обозначение, то есть ньютоны на квадратный метр, которые называются паскалями (Па).

    Если взять столб воздуха шириной 1 см, он будет весить около 1 кг

    Этот вес, надавливая на след этого столбца, создает атмосферное давление, которое мы можем измерить с помощью датчиков, таких как BMP180. Поскольку столб воздуха шириной сантиметра весит около 1 кг, отсюда следует, что среднее давление на уровне моря составляет около 101325 паскалей, или лучше, 1013,25 гПа (1 гПа также известен как милибар - мбар). Она будет снижаться примерно на 4% на каждые 300 метров подъема.Чем выше вы подниметесь, тем меньше давление вы увидите, потому что столб в верхней части атмосферы намного короче и, следовательно, меньше весит. Это полезно знать, потому что, измерив давление и выполнив некоторые вычисления, вы можете определить свою высоту.

    Давление воздуха на высоте 3 810 метров составляет лишь половину от давления на уровне моря.

    BMP180 выдает абсолютное давление в паскалях (Па). Один паскаль - это очень небольшое давление, примерно такое же, как лист бумаги, лежащий на столе.Вы будете чаще видеть измерения в гектопаскалях (1 гПа = 100 Па). Используемая здесь библиотека предоставляет выходные значения с плавающей запятой в гПа, что также составляет один миллибар (мбар).

    Вот некоторые преобразования в другие единицы давления:

    • 1 гПа = 100 Па = 1 мбар = 0,001 бар
    • 1 гПа = 0,75006168 Торр
    • 1 гПа = 0,01450377 фунт / кв. Дюйм (фунт на квадратный дюйм)
    • 1 гПа = 0,02953337 inHg (дюймы ртутного столба)
    • 1 гПа = 0,00098692 атм (стандартные атмосферы)

    Влияние температуры

    Потому что температура влияет на плотность газа, а плотность влияет на массу газа, а масса влияет на давление (Уф), атмосферное давление резко изменится с температурой.Пилоты знают это как «плотную высоту», что позволяет легче взлетать в холодный день, чем в жаркий, потому что воздух более плотный и имеет больший аэродинамический эффект. Для компенсации температуры BMP180 включает в себя неплохой датчик температуры, а также датчик давления.

    Для измерения давления вы сначала снимаете показания температуры, а затем объединяете их с исходными показаниями давления, чтобы получить окончательное измерение давления с температурной компенсацией. (Библиотека делает все это очень просто.)

    Измерение абсолютного давления

    Если ваше приложение требует измерения абсолютного давления, все, что вам нужно сделать, это получить показания температуры, а затем измерить давление (подробности см. В примере эскиза). Окончательное значение давления будет в гПа = мбар. При желании вы можете преобразовать это значение в другую единицу, используя указанные выше коэффициенты преобразования.

    Обратите внимание, что абсолютное давление атмосферы будет зависеть как от вашей высоты, так и от текущих погодных условий, и то и другое полезно измерить.

    Погодные наблюдения

    Атмосферное давление в любом данном месте на Земле (или где-нибудь с атмосферой) непостоянно. Сложное взаимодействие между вращением Земли, наклоном оси и многими другими факторами приводит к перемещению областей с более высоким и низким давлением, что, в свою очередь, вызывает изменения погоды, которые мы наблюдаем каждый день. Наблюдая за изменениями давления, вы можете прогнозировать краткосрочные изменения погоды. Например, падение давления обычно означает, что влажная погода или приближается шторм (входит система низкого давления).Повышение давления обычно означает, что приближается ясная погода (проходит система высокого давления). Но помните, что атмосферное давление также зависит от высоты. Абсолютное давление в моем доме, Lo Barnechea в Чили (высота 950 м) всегда будет ниже, чем, например, абсолютное давление в Сан-Франциско (le

    .

    Введение | Метеостанция WiFi

    • маг.
    • Учиться
    • Блог
    • Форумы
    • Видео
    • Adabox
    • IO
    переключить меню

    Поиск

    0
    • Войти | Регистрация
    • Новые руководства
    • серии
    • маг.
    • Учиться
    • Блог
    • Форумы
    • Видео
    • Adabox
    • IO
    Войти в систему 0
    • Исследуй и учись Узнать Категориипосмотреть все
      • AdaBox
      • Продукты Adafruit
      • Совместимость с Arduino
      • Коммутационные платы
      • Круговая площадка
      • CircuitPython
      • Лаборатория Коллина
      • Компоненты
      • Поддержка сообщества
      • Проекты для клиентов и партнеров
      • Платы для разработки
      • Педагоги
      • EL Провод / лента / панель
      • Перо
      • Игры
      • Хаки
      • Интернет вещей - IOT
    .

    Смотрите также