Агуулгын хүснэгт:

Хариуцлагатай вэбсайттай RPi Weatherstation: 5 алхам
Хариуцлагатай вэбсайттай RPi Weatherstation: 5 алхам

Видео: Хариуцлагатай вэбсайттай RPi Weatherstation: 5 алхам

Видео: Хариуцлагатай вэбсайттай RPi Weatherstation: 5 алхам
Видео: SKR 1.4 - Definitive User Guide 2024, Арваннэгдүгээр
Anonim
Хариуцлагатай вэбсайттай RPi цаг уурын станц
Хариуцлагатай вэбсайттай RPi цаг уурын станц
Хариуцлагатай вэбсайттай RPi цаг уурын станц
Хариуцлагатай вэбсайттай RPi цаг уурын станц

Сургуулийн төслийн хувьд бид цуглуулсан мэдээллээ сайн дүрслэх вэбсайттай IoT төхөөрөмж хийх шаардлагатай болсон бөгөөд би мэдээллийн бааздаа зориулагдсан MySQL (MariaDB) вэбсайтад зориулагдсан Raspberry Pi 3 колбыг ашиглан цаг уурын станц хийхээр шийдсэн. болон бүх мэдрэгчтэй мэдээлэл цуглуулах питон скрипт. Би эхнээс нь дуустал 2 долоо хоног зарцуулсан.

Бид амжилтаа бусад DIY нийгэмлэгтэй хуваалцах зааварчилгаа өгөхийг уриалсан тул энд байна!

Алхам 1: Хэсэг сонгох, багаж хэрэгсэл, материал

Эхлээд цаг уурын станцад ямар төрлийн мэдрэгч чухал болохыг олж мэдэх шаардлагатай байсан бөгөөд дараах бүх өгөгдлийг хэмжихээр шийдлээ.

  • Температур
  • Агаарын даралт
  • Чийгшил
  • Салхины хурд
  • Хэт ягаан туяаны индекс

Энд миний ашиглаж байсан бүх багаж хэрэгсэл, материал, эд ангиуд байна

Эд анги:

  • DHT22/AM2302 нь температур ба чийгийн заалтын хувьд. (15 евро)
  • Adafruit BMP280 нь барометрийн даралт ба температурт зориулагдсан. (12 евро)
  • Хэт ягаан туяаны индексийг хэмжих Adafruit SI1145. (10 евро)
  • Салхины хурдыг хэмжих Adafruit аналог анемометр (50 евро)
  • Аналог дохиог тоон руу хөрвүүлэх MCP3008.
  • 10kOhm резистор нь миний AM2302-ийг татах зориулалттай.
  • Анемометрийг "асаах" 9V адаптер
  • Raspberry Pi -д зориулсан 5V адаптер
  • Raspberry Pi 3 (Аливаа Pi хангалттай байх ёстой)

Материал:

Аливаа зүйлийг хадгалах, бороо орохоос хамгаалах зориулалттай хуванцар сав

Хэрэгсэл:

  • Гагнуурын төмөр ба цагаан тугалга
  • Мультиметр
  • Силикон
  • Бага зэрэг соронзон хальс

Нийтдээ бүх мэдрэгч нь 85 еврогийн үнэтэй бөгөөд энэ нь нэлээд эгц боловч би салхины хурдны зөв тоолуур оруулахыг үнэхээр хүсч байсан тул энэ нь үнэ цэнэтэй гэж бодож байна.

Та доорх pdf дээрээс бүх зүйлийг худалдаж авах боломжтой дэлгүүрүүдээс илүү дэлгэрэнгүй жагсаалтыг олж болно:)

Алхам 2: Манай техник хангамжийг холбох

Манай техник хангамжийг холбож байна
Манай техник хангамжийг холбож байна
Манай техник хангамжийг холбож байна
Манай техник хангамжийг холбож байна

Мэдээжийн хэрэг, бид мэдрэгчээ Raspberry Pi -тай холбох хэрэгтэй болно.

Схемийн дагуу манай анемометрийн тэжээлийн эх үүсвэр болгон 9В батерейг ашигладаг бөгөөд үүнийг туршихад хамгийн тохиромжтой байдаг, учир нь энэ нь удаан үргэлжлэхгүй тул та 9В батерейг 7-12 В-ийн аль ч тэжээлийн эх үүсвэрээр сольж болно. сонгох.

Манай SI1145 ба BMP280 мэдрэгчийг хоёуланг нь I2C протокол ашиглан удирдах болно, учир нь энэ нь ажиллахад хамгийн хялбар бөгөөд утас бага шаардагддаг.

Схем дээрх анемометрийг LDR хэлбэрээр харуулав, учир нь энэ нь анемометртэй бараг ижил утстай бөгөөд би бүдгэрүүлэх схемээ тавих жинхэнэ анемометр олж чадаагүй байна:)

Алхам 3: Бүх зүйлийг холбох: Pi -г тохируулах

Бүх зүйлийг холбох: Pi -г тохируулах
Бүх зүйлийг холбох: Pi -г тохируулах

Юуны өмнө бид интернетэд холбогдсон эсэхээ шалгах ёстой.

Үүнийг терминал дээр хийхийн тулд та дараах тушаалыг ажиллуулснаар wpa_supplicant файл руугаа орж болно: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Файлд та үүнийг нэмж болно:

сүлжээ = {ssid = "Your_Wifi_SSID" psk = "Таны_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

Үүнд хэсэг хугацаа шаардагдах тул санаа зовох хэрэггүй

Та raspi config дотор I2C ба SPI протоколыг идэвхжүүлэх шаардлагатай болно. Та үүнийг дараах тушаалыг ажиллуулах замаар хийж болно:

sudo raspi-config

Дараа нь I2C болон SPI хоёуланг нь идэвхжүүлэх интерфэйс сонголтууд руу очно уу

Эхлээд та төслөө оруулахыг хүсч буй лавлахаа хийх хэрэгтэй (бид үүнийг "цаг уурын станц" гэж нэрлэх болно):

cd ~ mkdir цаг агаарын станц cd цаг агаарын станц

Дараа нь бид python3 виртуал орчноо тохируулав.

python3 -m pip суулгах-pip setuptools дугуйг виртуал шинэчлэх -питон-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 daemon-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 status nginx.service -ийг дахин эхлүүлнэ үү

Хэрэв бүх зүйл сайн болсон бол та үүнийг ажиллуулж, html -ийг терминал дээр хэвлэх боломжтой байх ёстой.

wget -qO - localhost

Та бүх зүйл хэвийн ажиллаж байх ёстой, та бөөрөлзгөнө Pi-ийн IP хаягийг хайж олох боломжтой.

Алхам 5: Хашаа

Хашаа
Хашаа
Хашаа
Хашаа
Хашаа
Хашаа

Одоо бүх зүйл ажиллаж байгаа тул бид бүх зүйлийг ямар нэгэн зүйлд оруулах хэрэгтэй.

Би тунгалаг тагтай энгийн хуванцар хайрцгийг сонгосон бөгөөд анемометрийг дээр нь суурилуулсан бөгөөд DHT22 ба BMP280 мэдрэгч агуулсан хоёрдогч жижиг савыг авчээ.

Эдгээр мэдрэгчийг задгай агаарт байх ёстой (бороо оруулахгүй байх ёстой), гэхдээ бөөрөлзгөнө пи байх шаардлагагүй тул тусдаа саванд хийнэ.

Таны харж байгаагаар би ус нэвтэрдэггүй болгохын тулд ирмэгийн эргэн тойронд силикон нэмж, цэвэр агаар авахын тулд дээд савны нүхийг өрөмдсөн.

Цаг уурын станц барих гарын авлага танд таалагдсан гэж найдаж байна, анх удаа ийм гарын авлага бичиж байгаа болохоор ирмэг нь бага зэрэг барзгар байж магадгүй, гэхдээ танд таалагдсан гэж найдаж байна:)

Зөвлөмж болгож буй: