Статьи

Сделайте Погодную Станцию ​​С Малиной Pi 2

Сегодня я собираюсь показать вам, как сделать мини-метеостанцию ​​с Raspberry Pi. Это мой постоянный проект, с которым я возился, поэтому я поделюсь с вами своими знаниями. Это началось с проекта, который я написал некоторое время назад , и является его улучшением.

Как построить метеостанцию ​​Raspberry Pi 2

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

Хотя это похоже на длинный урок, его выполнение занимает всего около 30 минут. Давайте начнем.

Как только вы завершите этот проект, ваш Raspberry Pi будет измерять:

  • температура
  • влажность
  • Атмосферное давление
  • Люкс

Вы можете отправить свои результаты по адресу:

  • Таблица Google на вашем Google Диске
  • ASP.Net Web API на вашем сайте

Что вам нужно

Для этого проекта вам понадобится:

Необязательный:

  • Макет и перемычки ( получить комплект здесь )
  • Ничто из этого не было бы так легко, если бы не такие компании, как Adafruit . Я рекомендую получить ваши датчики от них, чтобы поддержать их инновации в этой области. Ньюарк является одним из оригинальных дистрибьюторов Raspberry Pi, они быстрые и очень уважаемые.

    электропроводка

    Схема подключения для этого проекта показана ниже:

    Как построить метеостанцию ​​Raspberry Pi 2

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

    Установка программного обеспечения

    Этот учебник был протестирован с новой установкой Raspian. Инструкции должны быть достаточно точными и для других дистрибутивов Linux.

    SSH в пи (или откройте командное окно) и начните с вашего домашнего каталога и создайте папку для ваших источников. 

    cd ~
    mkdir sources
    cd sources

    Настройте AM2302

    AM2302 — это датчик температуры и влажности. Это датчик DHT22, который подключен с нагрузочным резистором и корпусом. Мне было легче использовать этот, чем просто набор DHT22.

    Для этого датчика мы будем использовать библиотеку Adafruit Python DHT:

    git clone https://github.com/adafruit/Adafruit_Python_DHT.git
    
    cd Adafruit_Python_DHT
    
    sudo apt-get update
    
    sudo apt-get install build-essential python-dev python-openssl
    
    sudo python setup.py install

    Это установит программное обеспечение, необходимое для взаимодействия с AM2302

    Проверьте AM2302

    Существует тестовый скрипт, который вы можете использовать для проверки работы датчика. Запустите AdafruitDHT.py, и «2302» — это датчик, а «22» — это используемый вами вывод. Измените его, если вы подключили его к другому контакту.

    cd examples
    sudo ./AdafruitDHT.py 2302 22

    Вы должны увидеть что-то похожее на это:

    Как построить метеостанцию ​​Raspberry Pi 2

    DSB18B20

    DSB18B20 — это цифровой однопроводный термометр (однопроводный протокол Далласа). Если вы получаете «с дополнениями», он поставляется со шнуром и водонепроницаемым корпусом, что я и сделал.

    Вам нужно будет добавить один провод поддержки. Откройте конфигурацию загрузки:

    sudo nano /boot/config.txt

    Добавьте следующий текст в этот файл: dtoverlay=w1-gpio

    Сохраните файл и перезагрузите компьютер:

    sudo reboot

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

    Чтобы проверить это, вам нужно загрузить следующие модули в ваше ядро:

    sudo modprobe w1-gpio
    sudo modprobe w1-therm

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

    sudo nano /etc/modules

    Добавьте следующие строки:

    w1-gpio
    w1-therm

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

    Чтобы проверить ваше устройство:

    cd /sys/bus/w1/devices
    ls -la 

    Вы увидите папку, начинающуюся с 28 — это ваше устройство на основе серийного номера.

    cd 28-xxxx (change this to match what serial number pops up)
    cat w1_slave

    Вы должны увидеть что-то вроде следующего:

    Как построить метеостанцию ​​Raspberry Pi 2

    Если он говорит «ДА», это работает. Если нет, вам может потребоваться проверить проводку.

    Настройка I2C

    Далее вам необходимо настроить I2C для вашей системы:

    sudo apt-get install python-smbus
    sudo apt-get install i2c-tools

    Вы можете получать «уже установленные» сообщения от этого, в зависимости от того, как настроена ваша система.

    Добавьте модули в ваше ядро ​​при запуске. Откройте / etc / modules

    sudo nano /etc/modules

    Добавьте к этому следующее:

    i2c-bcm2708 
    i2c-dev

    Теперь вам нужно изменить конфигурацию загрузки:

    sudo nano /boot/config.txt
    sudo nano /boot/config.txt
    dtparam=i2c1=on
    dtparam=i2c_arm=on

    Перезагрузите свой Pi:

    sudo reboot

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

    Вы можете увидеть, какие устройства подключены к вашей шине I2C, выполнив следующую команду:

    sudo i2cdetect -y 1

    Вы должны увидеть что-то вроде этого:

    Как построить метеостанцию ​​Raspberry Pi 2

    Вы готовы к работе!

    Датчик TSL2561

    TSL2561 — это датчик Lux, он измеряет количество обнаруживаемого света, полезно видеть, насколько ярким является небо в этот день.

    Давайте возьмем несколько источников, чтобы помочь с этим:

    cd ~/sources 
    wget https://raw.githubusercontent.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/master/Adafruit_I2C/Adafruit_I2C.py
    wget https://raw.githubusercontent.com/seanbechhofer/raspberrypi/master/python/TSL2561.py

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

    Чтобы проверить ваш датчик, выполните следующее:

    sudo python Adafruit_I2C.py
    sudo python TSL2561.py

    Вы должны увидеть что-то похожее на это:

    Как построить метеостанцию ​​Raspberry Pi 2

    Работает!

    BMP180

    BMP180 — датчик атмосферного давления с термометром. Также очень легко начать работать. Еще раз мы будем использовать некоторые библиотеки Adafruit:

    git clone https://github.com/adafruit/Adafruit_Python_BMP.git
    cd Adafruit_Python_BMP
    sudo python setup.py install

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

    Чтобы проверить это:

    cd examples
    sudo python simpletest.py

    Это должно выглядеть так:

    Как построить метеостанцию ​​Raspberry Pi 2

    Сбор данных со всех датчиков

    Здесь мы соберем данные со всех датчиков, используя приложение, которое я написал. Этот читатель соберет всю информацию и отобразит ее на консоли или отправит в Интернет.

    cd ~
    git clone https://github.com/JeremyMorgan/Raspberry_Pi_Weather_Station.git reader

    Это скопирует сценарии в папку с именем «reader». Чтобы проверить их, введите:

    sudo python readings.py dryrun

    Это делает «пробный запуск», который не отправляет данные куда-либо, но отображает их на экране:

    Как построить метеостанцию ​​Raspberry Pi 2

    Вы готовы к работе! Если вы запустите его без параметра «dryrun», он создаст объект JSON и попытается отправить его на конечную веб-точку, что я покажу вам, как создать позже в этом уроке.

    Необязательно: таблицы Google

    Вы можете выводить данные в электронную таблицу Google, используя мое приложение, которое вы загрузили с GitHub. Вам нужно будет настроить OAuth с помощью Google и создать файл JSON. Инструкции здесь:

    http://gspread.readthedocs.org/en/latest/oauth2.html

    Вы захотите сохранить сгенерированный файл JSON в папке / home / pi / reader /.

    Вам нужно будет открыть этот файл OAuth JSON и найти «client_email». Это должно выглядеть так:

    «Client_email»: «1233453343244-asdlkjried8ss98eeEic@developer.gserviceaccount.com»,

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

    Как построить метеостанцию ​​Raspberry Pi 2

    Затем откройте следующий скрипт в папке:

    sudo nano google.py

    Замените значение GDOCS_OOAUTH_JSON именем загруженного вами файла JSON. Задайте для GDOCS_SPREADSHEET_NAME имя вашего листа. Сохрани это.

    Введите:

    sudo python google.py

    если вся ваша информация верна, она начнет работать и добавлять строки в вашу электронную таблицу каждые 30 секунд:

    Как построить метеостанцию ​​Raspberry Pi 2

    Поздравляем! Теперь вы можете отправить свои данные в электронную таблицу Google. Вы можете запустить это как сервис, если хотите, и хранить все свои данные на Google Диске.

    Отправить его в облако

    Одна вещь, которую я сделал со своей установкой, — это создание веб-сайта Microsoft Azure, который будет служить конечной точкой для моей установки. Вы также можете запустить это на любом веб-сайте ASP.Net с хостом, который поддерживает Web API, например, Arvixe .

    Настройте API

    Вы можете клонировать следующий репозиторий и открыть его в Visual Studio (должен работать в 2012 году и выше):  https://github.com/JeremyMorgan/Raspberry_Pi_Weather_Station_API.git

    Вам нужно будет создать базу данных, скрипт создания находится в папке / Install SQL. Затем вставьте эти значения в ваш Web.config, установите папку как приложение и запустите ее!

    На этом этапе вы захотите открыть файл readings.py и изменить поле «url» в нижней части конечной точки, например:

    url = "http://mysite.com/api/readings

    Я обнаружил, что для этого очень просто создать сайт в Microsoft Azure, и вы получаете 5 бесплатных сайтов, так почему бы и нет? Вы всегда можете указать его на другой сервер SQL, если захотите.

    Настройте веб-интерфейс

    Я создал для этого классный небольшой пользовательский интерфейс, который использует AngularJS и некоторые плагины для создания некоторой классной визуализации:

    Как построить метеостанцию ​​Raspberry Pi 2

    Если вы хотите запустить это, вы можете загрузить его с Github и запустить на любом веб-сайте, поддерживающем HTML:  https://github.com/JeremyMorgan/Raspberry_Pi_Weather_Station

    Убедитесь, что изменили настройки в home.services.js, чтобы они отражали ваш сайт:

    Как построить метеостанцию ​​Raspberry Pi 2

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

    Резюме

    Что ж, я надеюсь, что вы проделали весь этот путь до конца и настроили это. Сбор данных — это одна из самых интересных частей IoT, но что вы собираетесь с этим делать? Возможности безграничны. Вы можете поместить это в своем доме, чтобы выполнить регулировку термостата, или поместить его в зону хранения, чтобы убедиться, что что-то ценное безопасно. Я надеюсь, что этот проект вдохновит вас на создание новых вещей.

    Чтобы следить за ходом этого проекта, следите за мной на GitHub или проверяйте мои обновления в Твиттере, чтобы узнать, что будет дальше. У меня есть много интересных вещей в магазине.