Оглавление:

AirPi - Датчик качества воздуха: 8 шагов
AirPi - Датчик качества воздуха: 8 шагов

Видео: AirPi - Датчик качества воздуха: 8 шагов

Видео: AirPi - Датчик качества воздуха: 8 шагов
Видео: Измерение количества частиц, содержания летучих органических соединений и качества воздуха CO2 2024, Ноябрь
Anonim
AirPi - датчик качества воздуха
AirPi - датчик качества воздуха

Вы когда-нибудь задумывались, почему у вас болит голова? А если это из-за плохого качества воздуха? С помощью этого устройства вы можете проверить, так ли это. Это устройство измеряет значение CO2, TVOC, температуру и влажность. Вы можете видеть качество воздуха в режиме реального времени на ЖК-дисплее и видеть четкую индикацию, если становится опасно. Таким образом, вы сможете вовремя открывать окна.

Если вы введете IP-адрес, который отображается при запуске устройства в браузере, веб-сайт откроется. Вы можете увидеть много информации об окружающей среде в помещении, а также графики последних минут / часов. Также есть живая индикация и некоторая информация и подсказки на приборной панели.

Этот проект был разработан студентом Howest Kortrijk, NMCT (Новые медиа и коммуникационные технологии).

Шаг 1: материалы

Материалы
Материалы

Это все, что я купил для создания этого проекта. Это относительно дешевый проект, в зависимости от стоимости 3D-печати. Если вы сможете распечатать это в школе, это будет очень дешево. В противном случае это зависит от того, где вы его печатаете, и от материала, на котором вы его печатаете. Вы заметите, что я купил много оптом просто потому, что трудно найти отдельные резисторы или светодиоды, и это делает его еще дешевле. Если у вас есть время, вы можете заказать большинство товаров на aliexpress.com, доставка может занять некоторое время, но таким образом вы сможете ограничить свои расходы.

Без печати деньги, которые я потратил на этот проект, составляют 81,80 евро.

Вот необходимые вам материалы:

Схема:

  • Малина Pi 3
  • SD-карта 8 ГБ (минимум)
  • Датчик качества воздуха CCS811
  • Датчик температуры и влажности DHT22
  • Потенциометр (контрастный ЖК-дисплей)
  • ЖК-дисплей 16x2
  • Провода перемычки между женщиной и женщиной
  • Зеленый и красный светодиоды
  • Резисторы (2х470 Ом и 1 4700 Ом)

Случай:

  • 3D-печать
  • Винты
  • 2-х компонентный клей (или другой горячий клей)
  • резьбонарезной инструмент

Только из того, что вы используете печатную плату:

  • Паяльник
  • Flux (упрощает)
  • Банка
  • Печатная плата Experiment 2x4 см

Шаг 2: Подключения

Подключения
Подключения

Подключите провода, как указано выше. Вы можете увидеть электрическую схему в файле fritzing. Это не очень сложная схема, но если вы хотите сделать ее настолько маленькой, насколько это возможно, вам определенно понадобится экспериментальная печатная плата. Проводка будет такой же, за исключением того, что GND и Vin будут подключены к плате PCB. Датчики будут подключаться с помощью перемычек-розеток или штекеров с пайкой. Не забудьте припаять резистор к датчику DHT22.

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

Шаг 3: 3D-печать

3D-печать
3D-печать
3D-печать
3D-печать

Первая мысль, которая пришла мне в голову, когда я думал о кейсе, - это 3D-печать. Так как мой отец распечатал еще несколько вещей, и он сам их спроектировал. Вместе мы создали этот дизайн и продумали каждый аспект. Он должен достаточно хорошо остыть, все можно прикрутить на место, а если нет, то можно засунуть на место.

Мы даже нарисовали каждый компонент, чтобы проверить, все ли подходит. Файл доступен для всех, и мы хотели бы услышать отзывы. Результатом остались очень довольны.

Шаг 4: Код

Код этого проекта можно найти на Github. Если вы использовали другие контакты (например, другой GPIO-контакт для светодиодов, вам придется настроить эти переменные. Будут запущены два скрипта python, web.py для веб-сайта и sensor.py для чтения датчиков и обновления). Мы будем импортировать класс LCD из lcd.py.

С настроенным raspberry pi вы можете приступить к работе. Прежде всего вам необходимо обновить и обновить все пакеты:

sudo apt-get update && sudo apt-get upgrade

После этого вам необходимо установить следующие пакеты:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Теперь создайте виртуальную среду:

me @ my-rpi: ~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenv

me @ my-rpi: ~ $ mkdir project1 && cd project1 me @ my-rpi: ~ / project1 $ python3 -m venv --system-site-packages env me @ my-rpi: ~ / project1 $ source env / bin / активировать (env) me @ my-rpi: ~ / project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Поскольку это сделано, вы можете клонировать код из моего GitHub в свою виртуальную среду. Это можно сделать несколькими способами.

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

Поскольку датчик CCS811 был намеренно использован для Arduino, он не может обмениваться данными по шине i2c со скоростью Raspberry Pi. Вам нужно будет снизить скорость до 10000 (я использовал 9600) в файле конфигурации.

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

Поскольку мы хотим, чтобы скрипты python запускались автоматически при подключении raspberry, вам придется использовать сервисы. Они должны быть в порядке, если вы сохранили мой код. Все, что вам нужно сделать для их запуска, - это включить их. Прежде чем вы это сделаете, нужно еще кое-что.

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

  • скопируйте conf / nginx в * сайты-доступные *
  • Удалите ссылку на default-config
  • Добавьте ссылку на новый конфиг
  • Перезапустите nginx, чтобы сохранить изменения.

me @ my-rpi: ~ / project1 $ sudo cp conf / project1 - *. service / etc / systemd / system /

me @ my-rpi: ~ / project1 $ sudo systemctl daemon-reload me @ my-rpi: ~ / project1 $ sudo systemctl start project1- * me @ my-rpi: ~ / project1 $ sudo systemctl status project1- *

Nginx и mysql должны работать постоянно. Они запускаются вместе с малиновым пи. Веб-скрипт и сенсорный скрипт пока нет.

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

sudo systemctl включить project1-flask.service

sudo systemctl включить project1-sensor.service

Шаг 5: База данных

База данных
База данных

Моя база данных состоит из трех таблиц. Пользователь не имеет отношения к другим таблицам. Это используется только для входа в систему и предоставления доступа к веб-сайту. Когда устройство включено, значения CO2 и TVOC будут записываться в базу данных каждые 50 секунд. Температура и влажность каждые 5 минут. Таким образом, мы получаем четкое представление о прошлом.

Здесь можно найти SQL-файл, но чтобы получить базу данных на Raspberry Pi, вы должны выполнить следующие шаги:

После установки пакетов на предыдущем шаге сразу должен запуститься mariadb / mysql. Вы можете проверить это с помощью этой строки:

мне @ my-rpi: ~ $ sudo systemctl status mysql

Для создания базы данных и пользователей вы можете просто запустить sql-скрипты в коде с GitHub. Если вы сделали это правильно, вы должны увидеть свои таблицы с помощью этой команды:

me @ my-rpi: ~ $ echo 'показать таблицы;' | mysql проект1 -t -u проект1-админ -p

Теперь все готово, вы можете проверить это без чехла, чтобы убедиться, что все работает. Если вы не подключены к Wi-Fi, вам необходимо подключить его с помощью кабеля Ethernet и запустить вручную.

Шаг 6. Подключитесь к Wi-Fi

Откройте файл конфигурации wpa-supplicant в nano (на самом деле это не имеет значения, просто убедитесь, что вы можете работать с текстовым редактором).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Перейдите в конец файла и добавьте следующее (замените ssid-name и password-name вашими):

network = {

ssid = "имя-ssid" psk = "имя-пароля"}

Чтобы создать зашифрованный пароль, вы можете использовать wpa_passphrase и просто скопировать его в psk wpa_supplicant.conf, чтобы сделать вещи более безопасными.

wpa_passphrase "имя-ssid" "имя-пароля"

Если вы хотите, чтобы он автоматически подключался к этой сети Wi-Fi, а в файле конфигурации есть другие, убедитесь, что вы изменили приоритет на более высокий уровень, добавив эту строку в сеть в файле конфигурации:

приоритет = 2

Не забудьте перенастроить интерфейс:

wpa_cli -i wlan0 перенастроить

Теперь все готово и подключено к сети Wi-Fi.

Шаг 7. Собираем все вместе

Собираем все вместе
Собираем все вместе
Собираем все вместе
Собираем все вместе
Собираем все вместе
Собираем все вместе

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

Второе, что нужно сделать, это нарезать резьбу для каждого отверстия. Это может показаться трудным, но это легко сделать с помощью подходящих инструментов. Я бы порекомендовал сделать это в местном хозяйственном магазине, просто попросите резьбонарезной инструмент. Поскольку мой отец - ювелир, у него были инструменты для этого на работе. Я мог бы загрузить новый stl-файл, чтобы потом распечатать его, но для этого потребуется очень точный принтер.

Третий шаг - прикрутить пи к нижней части. Вам понадобятся 4 винта длиной 7 мм и диаметром 3 мм. После этого вы можете засунуть плату PCD в предусмотренное место в верхней части нижней части. Датчик CCS811 можно вставить в предусмотренное место с левой стороны, а датчик DHT11 можно прикрепить к правой пластине. Оба они изолированы и достаточно вентилируются, но потом мы заметили, что внутри все еще было жарко. Подробнее об этом позже.

Затем вам нужно прикрепить светодиоды к их трубке. Мы сделали это с помощью двухкомпонентного клея, но вы можете делать это как хотите. Убедитесь, что они там прилипли.

Теперь вы можете прикрепить LCD-дисплей, вам понадобятся винты того же диаметра, что и предыдущие, но немного длиннее. Мои были 1см. Если четыре винта вкручены, остается только одно. Прикрепите верхнюю часть. Все, что вам нужно, это четыре винта одинакового диаметра, а это 2 см. Теперь все должно быть на месте, и вы можете запустить его.

Шаг 8: запустите

Процесс запуска этого проекта очень прост:

  1. Присоедините шнур питания к левой стороне корпуса. Видно не очень, но сквозь форточки видно. Если вы его получили один раз, проблем больше не будет.
  2. Дайте ему немного времени, чтобы он запустился.
  3. IP-адрес отобразится на дисплее на десять секунд. Единственное, что вам нужно сделать, это убедиться, что вы подключены к той же сети, и ввести IP-адрес в адресную строку вашего браузера.
  4. Теперь вы на сайте. У вас еще нет учетной записи, поэтому создайте учетную запись.
  5. Если вы зарегистрированы, авторизуйтесь.
  6. Выполнено! Вы можете видеть все данные на веб-странице, а на ЖК-дисплее отображается текущее качество воздуха.

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

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