Жооптуу вебсайт менен RPi Weatherstation: 5 кадам
Жооптуу вебсайт менен RPi Weatherstation: 5 кадам
Anonim
Жооптуу вебсайт менен RPi Weatherstation
Жооптуу вебсайт менен RPi Weatherstation
Жооптуу вебсайт менен RPi Weatherstation
Жооптуу вебсайт менен RPi Weatherstation

Мектептин проектиси үчүн, IoT түзмөгүн веб -сайты менен жасоого туура келди. Мен маалымат базасы үчүн MySQL (MariaDB) жооп берүүчү сайты үчүн Raspberry Pi 3 менен иштеген флэшкоп менен иштөөнү чечтим. жана бардык сенсорлорум менен маалымат чогултуу үчүн питон сценарийи. Мага башынан аягына чейин 2 жумадай убакыт өттү.

Биз өзүбүздүн ийгиликтерибизди DIY коомчулугу менен бөлүшүүгө үйрөтүүгө үндөдүк, демек бул жерде!

1 -кадам: Бөлүктү тандоо, куралдар жана материалдар

Адегенде метеорологиялык станция үчүн кандай сенсорлор керек экенин билишим керек болчу. Мен төмөнкү маалыматтардын бардыгын өлчөөнү чечтим:

  • Температура
  • Аба басымы
  • Нымдуулук
  • Windspeed
  • UV индекси

Бул жерде мен колдонгон бардык шаймандар, материалдар жана тетиктер

Бөлүктөр:

  • DHT22/AM2302 температура жана ным окуу үчүн. (15 EUR)
  • Adafruit BMP280 барометрдик басым жана температура үчүн. (12 EUR)
  • UV индексин өлчөө үчүн Adafruit SI1145. (10 EUR)
  • Adafruit аналогдук анемометр шамалдын ылдамдыгын өлчөө үчүн (50 EUR)
  • Analog сигналдарды санарипке өткөрүү үчүн MCP3008.
  • 10kOhm резистору менин AM2302 үчүн тартма катары.
  • Анемометрди "иштетүү" үчүн 9В адаптер
  • Raspberry Pi үчүн 5V адаптер
  • Raspberry Pi 3 (Ар бир Pi жетиштүү болушу керек)

Материалдар:

Пластик контейнер бардыгын сактоо жана жамгырдан коргойт

Куралдар:

  • Лайнер жана калай
  • Мультиметр
  • Силикон
  • Кээ бир тасма

Жалпысынан бардык сенсорлор мага 85 еврого жакын турат, бул абдан тик, бирок мен чындыгында шамалдын ылдамдыгын эсептегичти кошууну кааладым, ошондуктан бул татыктуу деп ойлойм.

Сиз дүкөндөрдөн кененирээк тизмесин таба аласыз, сиз бардыгын төмөндөгү pdfтен сатып ала аласыз:)

2 -кадам: Биздин Аппаратты туташтыруу

Биздин Аппаратты туташтыруу
Биздин Аппаратты туташтыруу
Биздин Аппаратты туташтыруу
Биздин Аппаратты туташтыруу

Албетте, биз сенсорлорубузду Raspberry Pi менен туташтырышыбыз керек. Жогоруда сиз баарын туура туташтыруу үчүн ээрчип кете турган схеманы көрө аласыз.

Схемада сиз биздин анемометрдин кубат булагы катары 9В батарейкасы колдонулганын көрө аласыз, бул тестирлөө үчүн эң жакшы колдонулат, анткени ал өтө узакка созулбайт, сиз каалаган 9-12В кубат булагына 9В батареяны алмаштыра аласыз. тандоо.

Биздин SI1145 жана BMP280 сенсорлору I2C протоколунун жардамы менен башкарылат, анткени бул иштөө эң оңой жана азыраак зымдарга муктаж.

Схемада анемометр LDR катары көрсөтүлөт, анткени анемометрге окшош зымдары бар жана мен өзүмдүн схемамды коюуга чыныгы анемометрди таба алган жокмун:)

3 -кадам: Баарын туташтыруу: Pi орнотуу

Баарын туташтыруу: Pi орнотуу
Баарын туташтыруу: 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-дарегиңизди статикалык кылып коюуну тандай аласыз.

Муну файлга кошуңуз:

интерфейс wlan0static ip_address = 192.168.0.100/24

Андан кийин, биздин Piге орнотулган пакеттер толугу менен жаңыртылганын текшеребиз:

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

Бул бир аз убакытты алышы мүмкүн, андыктан кабатыр болбоңуз

Сиз raspi config.you ичиндеги I2C жана SPI протоколун иштетишиңиз керек болот, бул буйрукту иштетүү менен:

sudo raspi-config

Андан кийин I2C жана SPIди иштетүү үчүн интерфейс параметрлерине өтүңүз

Биринчиден, сиз өзүңүздүн долбооруңузду киргизгиңиз келген каталогду түзүшүңүз керек (биз аны "метеостанция" деп атайбыз):

cd ~ mkdir аба ырайы бекети cd аба ырайы станциясы

Андан кийин биз python3 виртуалдык чөйрөсүн орноттук:

python3 -m pip орнотуу-pip setuptools дөңгөлөгүн жаңыртуу virtualenvpython3 -m venv --система-сайт пакеттери envsource env/bin/activatepython -m пипти орнотуу mysql-connector-python Flask колбасы-mysql mysql-connector-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 орнотуу

cd..git clone -рекурсивдүү https://github.com/freedom27/MyPyDHTsudo python3 setup.py орнотуу

4 -кадам: Программалык камсыздоо / Код

Программа / Код
Программа / Код
Программа / Код
Программа / Код
Программа / Код
Программа / Код

Биз метеостанциянын арткы жагын орнотушубуз керек, анын ичинде:

- Менин сенсорлорумду жана башка майда нерселерди сактоо үчүн mariadb маалымат базасы- Веб-сайтты иштетүү үчүн колба кызматы.- Python файлын иштетүүчү дагы бир кызмат. Бардык сенсорлорду окуйт. Жогоруда менин абдан жөнөкөй маалымат базасынын орнотууларын көрө аласыз. Колдонуучулардын таблицасы кереги жок, бирок мен кирүү системасын каалагандыктан, анткени мен (бардык маалыматтар бардык колдонуучулар үчүн бирдей болсо да) мен маалымат базама киргизүүнү чечтим.

Githubдан менин долбоорумдун кодун проект папкасына клондоштурсаңыз болот. Колдонуучу папкаңызга өтүңүз жана чуркаңыз: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/

Андан кийин аба ырайындагы conf папкасына жана папкадагы бардык файлдарга өтүңүз.

Колдонуучу атыңызга 'USERNAME' кайталануусун өзгөртүңүз

Сиз ошондой эле.service файлдарынын экөөнү systemdге көчүрүп, аларды төмөнкүдөй текшеришиңиз керек:

sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl демон-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start 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.servicesudo systemctl статусун nginx.service өчүрүп күйгүзүү

Эгер баары жакшы болсо, анда сиз муну иштетип, терминалда html басылып чыгышы керек:

wget -qO - localhost

Баары азыр жакшы иштеши керек. Сиз малина Пиңиздин башында биз койгон IP-дарегине кирип, кирүү экраны менен тосуп алсаңыз болот.

5 -кадам: Корпус

Корпус
Корпус
Корпус
Корпус
Корпус
Корпус

Эми баары иштейт, биз бүт нерсени бир нерсеге салышыбыз керек.

Мен тунук капкагы бар жөнөкөй пластик кутучаны тандадым. Анемометр анын үстүнө орнотулган, ошондуктан DHT22 жана BMP280 сенсорлорун камтыган экинчи кичинекей контейнер.

Бул сенсорлор өзүнчө контейнерге орнотулган, анткени алар ачык абада болушу керек (жамгыр жаабастан), бирок малинанын пи болушу керек эмес.

Көрүнүп тургандай, мен суу өткөрбөө үчүн четтерине силикон коштум. Мен таза аба алуу үчүн үстүңкү контейнерде тешиктерди бургам.

Аба ырайы бекетин куруу боюнча менин көрсөтмөм сизге жакты деп үмүттөнөм, бул чети бир аз орой болушу мүмкүн, анткени мен биринчи жолу мындай гид жазып жатам, бирок ошентсе да сизге жакты деп ишенем:)

Сунушталууда: