Оглавление:

Fanair: метеостанция для вашей комнаты: 6 шагов (с изображениями)
Fanair: метеостанция для вашей комнаты: 6 шагов (с изображениями)

Видео: Fanair: метеостанция для вашей комнаты: 6 шагов (с изображениями)

Видео: Fanair: метеостанция для вашей комнаты: 6 шагов (с изображениями)
Видео: Никси | Портативный вентилятор воздушного охлаждения объемом 4 л с высокой эффективностью охлаждения и пылевым фильтром 2024, Июль
Anonim
Fanair: метеостанция для вашей комнаты
Fanair: метеостанция для вашей комнаты

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

Fanair использует несколько датчиков для определения:

  • температура
  • влажность
  • свет
  • определенные газы
  • давление воздуха

Он очень компактен и использует Raspberry Pi 3 B для получения значений, сохранения их в базе данных MySQL и последующего размещения на веб-сайте. В код и на веб-сайт включена возможность получать фактические данные о погоде для вашего местоположения, чтобы веб-сайт можно было использовать также для проверки погоды за пределами помещения.

Шаг 1. Получите все необходимые предметы

Получите все необходимые предметы
Получите все необходимые предметы

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

Для более конкретных предметов я составил эту Спецификацию материалов.

  • Малина Pi 3 B
  • MPC3008 - 8-канальный 10-разрядный АЦП
  • AM2301 Термометр Датчик температуры и влажности
  • Плата WR Rademacher WR-tyoe 930-1
  • Кейс из АБС-пластика для прототипирования (черный)
  • LDR
  • Датчик газа MQ135
  • 2 транзистора Дарлингтона BC517
  • RGB светодиод
  • Пакет резисторов
  • Зуммер
  • Провода
  • BMP280 Барометр
  • Тихий USB-вентилятор (5 В)

Все вместе это должно стоить около 110 евро. Имейте в виду, что общая цена является приблизительной. Кроме того, в моем проекте на фотографии есть ЖК-экран, но он не подключен, так как в моем случае не было достаточно места, поэтому он не включен в инструкцию.

Шаг 2. Подготовьте Raspberry Pi

Получите свой Raspian Jessie с операционной системой Pixel с официального сайта Raspberry Pi и после его загрузки распакуйте его. Вы получите файл изображения. Чтобы получить его на Pi, вам нужно будет записать его на SD-карту с помощью Win32 Disk Imager. После его установки выберите файл образа и диск, на котором находится ваша SD-карта. Затем нажмите написать и дождитесь завершения.

Когда он закончится, щелкните свою SD-карту в проводнике и откройте файл с именем cmdline.txt, пройдите в конец текстового файла непосредственно перед rootwait и напишите ip = 254.169.10.2 с пробелами вокруг, конечно. После сохранения щелкните правой кнопкой мыши где-нибудь внутри окна и создайте новый файл с именем ssh. Обратите внимание, что у этого файла нет расширения. Чтобы убедиться, что у него нет расширения, нажмите «Просмотр» в проводнике и отметьте «скрытые файлы». Если он действительно переименует его и удалите расширение, чтобы он читал просто «ssh».

После этого вы, наконец, можете вставить SD-карту в Raspberry Pi. Загрузите клиент ssh (рекомендую MobaXterm). И подключитесь с помощью ssh с IP-адресом, который вы установили ранее «254.169.10.2». Имя пользователя - «пи», пароль - «малина». При желании вы можете изменить пароль, набрав в терминале команду sudo passwd и следуя инструкциям. Поскольку мы собираемся использовать хороший фрагмент SD-карты для Fanair, вам следует расширить доступное хранилище, набрав «sudo rapi-config», выбрав «Дополнительные параметры», а затем «Развернуть файловую систему». Если будет предложено перезапустить.

Мы будем использовать интерфейсы 1-wire, SPI и I2C. Чтобы использовать их, вам сначала нужно их настроить!

Шаг 3. Соедините все вместе

Соедините все вместе
Соедините все вместе
Соедините все вместе
Соедините все вместе

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

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

Шаг 4: Создайте свою базу данных

Чтобы эффективно сохранить все данные, которые вы получите, мы будем использовать базу данных TSQL MySQL. Перед установкой MySQL убедитесь, что все обновлено, набрав в терминале несколько команд:

  • 'sudo apt-get update'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

Принимайте каждое приглашение, набирая «y» и вводя.

Чтобы установить MySQL, введите:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

При появлении запроса создайте пароль root по вашему выбору.

После того, как это будет установлено, войдите в систему, используя:

'mysql -uroot -p'

И введите свой пароль.

Получите код Fanair с моего Github! Нажмите «Клонировать или загрузить», а затем «Загрузить ZIP». Разархивируйте код в любую папку по вашему выбору. Запрос на создание полностью работоспособной базы данных находится в папке базы данных. Откройте файл, скопируйте код и вставьте его в терминал с открытым MySQL. Затем нажмите Enter, и база данных готова!

Шаг 5: Время для кода

Чтобы использовать все датчики, вам, очевидно, нужно запустить программу. К счастью, код уже готов (по большей части), и мы уже загрузили его при получении SQL-запроса к базе данных.

Как я уже сказал, есть несколько вещей, которые нужно изменить / добавить, чтобы программа работала правильно. Прежде всего, программа использует Darksky API для получения данных о погоде на основе долготы и широты. Чтобы воспользоваться им, вам необходимо зарегистрироваться. Первые 1000 звонков бесплатны, а затем стоит 0,0001 доллар за звонок. Я слышал, если вы не платите, ваша учетная запись блокируется. Честно говоря, $ 0,0001 за звонок - это довольно дешево. Fanair запрашивает самые свежие данные каждый час, а это означает, что в год, если он будет работать на полную ставку, это будет стоить вам всего 0,876 доллара. Вы также получаете 41 день бесплатно, если Fanair работает полный рабочий день.

После регистрации найдите свой ключ API. Найдите долготу и широту своего местоположения на картах Google или попробуйте погуглить. Создайте новый текстовый файл в корневом каталоге Fanair (с классами, main.py…). Назовите файл key_location.txt. Откройте текстовый файл и в первой строке вставьте свой ключ API Darksky. Во второй строке вставьте свою долготу, а в третьей строке вставьте свою широту (оба в десятичном формате). Когда вы закончите, сохраните файл.

В том же каталоге создайте еще один текстовый файл с именем «database_dsn.txt». В первой строке должно быть написано «localhost». Вторая строка - это «корень». В третьей строке вы должны ввести свой пароль, который вы сделали для базы данных ранее, а в четвертой и последней строке вы должны ввести «fanair».

Щелкните правой кнопкой мыши файл main.py и выберите редактировать. 'Fanair = Fanair (5, 26, 17, 27, 22, 4, «AM2301», 1, 0, 0, 0, «key_location.txt», «database_dsn.txt») »необходимо изменить. Если вы следовали картинке, первые 5 значений должны быть изменены с «5, 26, 17, 27, 22, 4» на «20, 21, 26, 19, 13». '/ home / muhsin / Applications / Fanair' также следует изменить на корневой путь Fanair (где находится main.py). Обязательно ставьте косую черту перед словом «дом», но не после слова «Fanair».

Теперь все отлично, но код должен попасть в Pi. К счастью для нас существует протокол sftp. Чтобы разместить файлы на Pi, используйте клиент sftp, такой как FileZilla, или, если вы решили использовать MobaXterm, вы можете легко загрузить файлы в интерфейсе sftp слева от терминала.

По моему опыту, я не всегда получаю правильную дату и время в Raspberry Pi. Чтобы убедиться, что вы получите правильную дату и время, я предлагаю следовать этому руководству: Дата и время синхронизации Raspberry Pi.

И последнее, но не менее важное, необходимо установить несколько библиотек и активировать несколько интерфейсов:

'sudo apt-get install build-essential python-dev'

Адафрут DHT:

'pip3 install adafruit_python_dht'

1-провод:

  1. 'sudo raspi-config'
  2. 'Параметры интерфейса'
  3. '1 провод'
  4. Давать возможность
  5. 'sudo nano /boot/config.txt'
  6. Добавьте в файл эту строку: 'dtoverlay = w1-gpio'
  7. 'перезагрузка sudo'

SPI:

  1. 'sudo raspi-config'
  2. 'Параметры интерфейса'
  3. 'SPI'
  4. Давать возможность
  5. 'перезагрузка sudo'
  6. 'sudo nano /boot/config.txt'
  7. Найдите 'dtparam = spi = on' и раскомментируйте его, удалив хэштег.
  8. 'sudo apt-get install python3-dev

Смбус:

  1. 'судо распи-конфиг'
  2. 'Параметры интерфейса'
  3. 'I2C'
  4. Давать возможность
  5. 'перезагрузка sudo'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Найдите dtparam = i2c_arm = on и раскомментируйте его, удалив хэштег.

фляга

pip3 установить Flask

соединитель mysql

'pip3 install -Iv mysql-connector == 2.1.4'

Spidev

'pip3 install py-spidev'

темное небо

'pip3 install darkskylib'

Шаг 6: Попробуйте

Если вам удалось пройти так далеко, похлопайте себя по спине. Теперь все сделано для того, чтобы Fanair работал нормально. Итак, чтобы проверить это, наберите 'cd ""'. Расположение файла - «/ home / pi», например, если вы только что вставили его в свой домашний каталог. Затем введите python3 main.py и дайте ему отдохнуть в течение 15 минут, чтобы данные были в базе данных по завершении. После этого нажмите ctrl + c, остановите программу и введите python3 Flask.py. Чтобы узнать, работает ли ваш веб-сайт, вам нужно перейти на IP-адрес вашего Pi, который вы указали с помощью ': 5000' после него (например, 169.254.10.1:5000 ').

Чтобы он запускался автоматически после загрузки:

'sudo nano /etc/rc.local'

В конце файла, НО ДО выхода 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Поздравляем, теперь скрипт должен запускаться из автозагрузки, и ВЫ ГОТОВЫ! Если вы планируете продолжать работу над проектом и еще не сделали этого, я бы посоветовал вам спаять все вместе, просто чтобы убедиться, что все остается на месте. Хотя, если вы не играете много перемещать его, конечно, тоже подойдет макетная плата.

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