
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36


За училищен проект трябваше да направим IoT устройство с уебсайт за визуализиране на събраната информация по хубав начин. Избрах да направя метеостанция, захранвана от Raspberry Pi 3, работещ с Flask за отзивчивия уебсайт, MySQL (MariaDB) за моята база данни и скрипт на python за събиране на информация с всички мои сензори. Отне ми около 2 седмици от началото до края до завършването.
Бяхме насърчени да направим инструктаж, за да споделим напредъка си с останалата част от общността „направи си сам“, така че ето го!
Стъпка 1: Избор на части, инструменти и материали
Първо трябваше да разбера какви датчици са от съществено значение за метеорологичната станция. Реших, че искам да измервам всички следните данни:
- Температура
- Въздушно налягане
- Влажност
- Скоростта на вятъра
- UV индекс
Ето всички инструменти, материали и части, които използвах
Части:
- DHT22/AM2302 за отчитане на температурата и влажността. (15 EUR)
- Adafruit BMP280 за барометрично налягане и температура. (12 EUR)
- Adafruit SI1145 за измерване на UV индекса. (10 EUR)
- Adafruit Аналогов анемометър за измерване на скоростта на вятъра (50 EUR)
- MCP3008 за преобразуване на аналогови сигнали в цифрови.
- 10kOhm резистор като издърпване за моя AM2302.
- 9V адаптер за „захранване“на анемометъра
- 5V адаптер за Raspberry Pi
- Raspberry Pi 3 (Всяко Pi трябва да е достатъчно)
Материали:
Пластмасов контейнер за съхранение на всичко и правещ го устойчив на дъжд
Инструменти:
- Поялник и калай
- Мултиметър
- Силикон
- Някаква лента
Така че като цяло всички сензори ми струват около 85 евро, което е доста стръмно, но наистина исках да включа подходящ измервател на скоростта на вятъра, така че мисля, че си заслужава.
Можете да намерите по -подробен списък с магазини, в които можете да купите всичко, в pdf по -долу:)
Стъпка 2: Свързване на нашия хардуер


Разбира се, ние ще трябва да свържем нашите сензори към нашия Raspberry Pi, По -горе можете да видите схемата на фризиране, която можете да следвате, за да свържете всичко правилно.
На схемата можете да видите 9V батерия, използвана като източник на захранване за нашия анемометър, това е най-добре да се използва само за тестване, тъй като няма да издържи твърде дълго, можете да смените 9V батерията за всеки 7-12V източник на захранване, който избирам.
Нашите сензори SI1145 и BMP280 ще се управляват с помощта на I2C протокол, тъй като това е най -лесният за работа и се нуждае от по -малко кабели.
Анемометърът на схемата е показан като LDR тук, тъй като има почти идентично окабеляване като анемометъра и не можах да намеря истински анемометър, който да сложа на моята схема на фризиране:)
Стъпка 3: Свързване на всичко: Настройване на Pi

На първо място, трябва да се уверим, че сме свързани с интернет.
За да направите това в терминала, можете да отидете във вашия файл wpa_supplicant, като изпълните следната команда: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Във файла можете да добавите това:
network = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK
}
Можете също да изберете да зададете вашия IP-адрес на статичен за по-лесен достъп в бъдеще. За да направите това, трябва да отидете във файла dhcpcd.conf, като изпълните тази команда: sudo nano /etc/dhcpcd.conf
Добавете това във файла:
интерфейс wlan0static ip_address = 192.168.0.100/24
След това ще се уверим, че пакетите, които вече са инсталирани на нашия Pi, са напълно актуализирани:
sudo apt-get update && sudo apt-get upgrade
Това може да отнеме известно време, така че не се притеснявайте
Ще трябва да активирате протокола I2C и SPI в конфигурацията на raspi. Можете да направите това, като изпълните тази команда:
sudo raspi-config
След това преминете към опции за свързване и активиране на двете, I2C и SPI
Първо трябва да направите директория, в която искате да поставите вашия проект (ние ще го наречем „weatherstation“):
cd ~ mkdir метеостанция cd метеостанция
След това създадохме нашата виртуална среда на python3:
python3 -m pip install-надстройка pip setuptools колело virtualenvpython3 -m venv --system-site-пакети envsource env/bin/активиране python -m pip инсталиране на mysql-конектор-python колба колба-mysql mysql-конектор-python passlib mysql-конектор -python-rf
След това ще трябва да инсталираме някои други пакети, необходими за правилното функциониране на всичко:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Сега ще направим нашата база данни:
Все още трябва да настроим нашата база данни. Можете да направите това, като стартирате файла с код/sql, разположен в папката „sql“по следния начин:
sudo mariadb <sql/db_init.sql
Заявката sql ще направи таблиците, от които се нуждаем, и също така ще направи няколко потребители, за да направят нашата база данни малко по -сигурна.
Това също ще постави някои примерни данни от историята в нашата база данни, за да се уверим, че нашият уебсайт показва всичко правилно, когато все още няма реални данни.
За да инсталирате Adafruit_GPIO и MyPyDHT, ще трябва да направите още няколко неща. Първо се върнете в папката за използване и след това:
git clone https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install
cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py install
Стъпка 4: Софтуер / код



Трябва да настроим бекенда за метеостанцията, който включва:
- База данни на mariadb за съхранение на показанията на сензора ми и някои други незначителни неща- услуга за колба за стартиране на уебсайта.- Друга услуга, изпълняваща Python файла, която отчита всички сензори. По-горе можете да видите много простата ми настройка на базата данни. Таблицата на потребителите е излишно, но тъй като исках система за вход, защото аз (въпреки че всички данни са еднакви за всички потребители) реших да включа в моята база данни.
Можете да продължите и да клонирате кода на моя проект от Github в папката на вашия проект.
След това отидете до папката conf в метеорологичната станция и всички файлове в папката.
Променете всички случаи на „USERNAME“на вашето потребителско име
Също така ще трябва да копирате и двата.service файла в systemd и да ги тествате по следния начин:
sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl стартира weatherstation-flask.servicesudo systemctl стартира weatherstation-sensor.service
sudo systemctl статус метеостанция-*
След това трябва да редактираме конфигурацията на nginx.
sudo cp conf/nginx/etc/nginx/sites-available/weatherstationsudo rm/etc/nginx/sites-enabled/defaultsudo ln -s/etc/nginx/sites-available/weatherstation/etc/nginx/sites-enabled/weatherstationsudo systemctl рестартирайте nginx.servicesсудо systemctl състояние nginx.service
Ако всичко е минало добре, трябва да можете да стартирате това и да разпечатате html в терминала:
wget -qO - localhost
Сега всичко трябва да работи добре. Можете да сърфирате до IP адреса на вашата малинка Pi, който зададохме в началото, и да бъдете посрещнати с екран за вход.
Стъпка 5: Приложението



Сега, когато всичко работи, трябва да вложим цялото нещо в нещо.
Избрах обикновена пластмасова кутия с прозрачен капак. Анемометърът е монтиран отгоре, както и вторичен малък контейнер, който съдържа сензорите DHT22 и BMP280.
Тези сензори са монтирани в отделен контейнер, защото трябва да са на открито (без да вали), но малиновото пи не е необходимо.
Както можете да видите, добавих силикон около краищата, за да го направя водоустойчив. Също така пробих няколко дупки в горния контейнер, за да вляза свеж въздух в него.
Надявам се, че ви хареса моето ръководство за това как да изградите метеорологична станция, може да е малко грубо по краищата, тъй като за първи път пиша такова ръководство, но се надявам, че все пак ви е харесало:)
Препоръчано:
Коледно дърво, контролирано от уебсайт (всеки може да го контролира): 19 стъпки (със снимки)

Коледно дърво, контролирано от уебсайт (всеки може да го контролира): Искате ли да знаете как изглежда коледното дърво, контролирано от уебсайт? Ето видеото, показващо моя проект на моята елха. Потокът на живо вече е приключил, но направих видео, заснемащо случващото се: Тази година, в средата на декември
Как да направите основен уебсайт с помощта на Notepad: 4 стъпки

Как да си направим основен уебсайт с помощта на Notepad: Някой да се е чудил " как да направя уебсайт от основна програма за писане? &Quot; Е, очевидно, не конкретно … Както и да е, тук ще ви покажа как да направите BASIC уебсайт, използващ само бележник
Как да получите безплатен уебсайт (TLD, хостинг, SSL): 16 стъпки

Как да получите безплатен уебсайт (TLD, хостинг, SSL): Уебсайтовете се превръщат в голямо нещо. Преди големи компании, като Microsoft, Google и други, имаха свои уебсайтове. Може би някои блогъри и по -малки компании също са го направили. Но сега, особено по време на пандемията COVID-19 (да, пиша това през 2020 г.)
RGB LED адаптивен камуфлаж (хамелеон) с помощта на Ebot / Arduino: 5 стъпки (със снимки)

RGB LED Adaptive Camouflage (хамелеон) Използване на Ebot / Arduino: Това е наистина страхотен и прост проект. Той използва цветен сензор, за да усети цвета на фона и го показва на RGB LED лентата. Използвах микроконтролер Ebot, но можете да използвате и всеки друг микроконтролер като arduino uno
Био-адаптивен медиен контролер за достъпност или забавление: 7 стъпки

Био-адаптивен медиен контролер за достъпност или забавление: В тази инструкция ще научите как да изградите свой собствен био-оптимизиран медиен контролер, използвайки Arduino, точно като системата с отворен код, която разработих. Гледайте свързаното видео за допълнително бързо обяснение. Ако изградите такъв и направите допълнително тестване