Мазмұны:

Жауапты веб -сайты бар RPi ауа райы станциясы: 5 қадам
Жауапты веб -сайты бар RPi ауа райы станциясы: 5 қадам

Бейне: Жауапты веб -сайты бар RPi ауа райы станциясы: 5 қадам

Бейне: Жауапты веб -сайты бар RPi ауа райы станциясы: 5 қадам
Бейне: Python WEB SCRAPING in 30 Seconds! 🔥👨‍💻 #shorts 2024, Шілде
Anonim
Жауапты веб -сайты бар RPi ауа райы станциясы
Жауапты веб -сайты бар RPi ауа райы станциясы
Жауапты веб -сайты бар RPi ауа райы станциясы
Жауапты веб -сайты бар RPi ауа райы станциясы

Мектеп жобасы үшін біз жиналған ақпаратты жақсы түрде бейнелейтін веб -сайты бар IoT құрылғысын жасауымыз керек болды, мен Raspberry Pi 3 жұмыс істейтін колбасы бар жауап беретін веб -сайт үшін MySQL (MariaDB) базасына арналған ауа райын жасауды таңдадым. және барлық сенсорлармен ақпарат жинауға арналған питон сценарийі. Маған басынан аяғына дейін аяқтауға 2 апта уақыт кетті.

Бізге өз жетістіктеріңізді DIY қауымдастығының қалған мүшелерімен бөлісуге үйретуге шақырды, осында!

1 -қадам: бөлшектерді таңдау, құралдар мен материалдар

Алдымен метеорологиялық станцияға қандай сенсорлар қажет екенін анықтауым керек болды. Мен келесі деректердің барлығын өлшегім келеді деп шештім:

  • Температура
  • Ауа қысымы
  • Ылғалдылық
  • Жел жылдамдығы
  • Ультракүлгін индексі

Міне мен қолданған барлық құралдар, материалдар мен бөлшектер

Бөлшектер:

  • DHT22/AM2302 температура мен ылғалдылық көрсеткіштері үшін. (15 еуро)
  • Adafruit BMP280 барометрлік қысым мен температураға арналған. (12 еуро)
  • Ультракүлгін индексін өлшеуге арналған Adafruit SI1145. (10 еуро)
  • Adafruit аналогты анемометр жел жылдамдығын өлшеуге арналған (50 евро)
  • Аналогтық сигналдарды цифрлық түрлендіруге арналған MCP3008.
  • 10kOhm резисторы менің AM2302 үшін тартқыш ретінде.
  • Анемометрді қуаттандыруға арналған 9В адаптер
  • Raspberry Pi үшін 5В адаптер
  • Raspberry Pi 3 (кез келген Pi жеткілікті болуы керек)

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

Барлығын сақтауға және жаңбырдан қорғайтын пластикалық ыдыс

Құралдар:

  • Пісіру темірі мен қалайы
  • Мультиметр
  • Силикон
  • Кейбір таспа

Жалпы алғанда, сенсорлардың барлығы 85 евро тұрады, бұл өте тік, бірақ мен желдің жылдамдығын есептегішті қосқым келді, сондықтан мен бұл оған тұрарлық деп ойлаймын.

Толық тізімді төмендегі pdf -те сатып алуға болатын дүкендерден таба аласыз:)

2 -қадам: біздің жабдықты қосу

Біздің жабдықты қосу
Біздің жабдықты қосу
Біздің жабдықты қосу
Біздің жабдықты қосу

Әрине, біз сенсорларды Raspberry Pi -ге қосуымыз керек. Жоғарыда сіз бәрін дұрыс қосу үшін ұстануға болатын схеманы көре аласыз.

Схемада сіз біздің анемометр үшін қуат көзі ретінде 9В батареяны көре аласыз, бұл тестілеу үшін жақсы қолданылады, себебі ол ұзақ уақытқа созылмайды, сіз кез келген 7-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-адресті статикалық күйге орнатуды таңдай аласыз, бұл үшін 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 дөңгелегін жаңарту virtualenvpython3 -m venv-жүйелік торап пакеттері envsource env/bin/activatepython -m pip mysql-қосқышы-python Flask колбасы-mysql mysql-қосқышы-python passlib mysql -питон-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 күйін nginx.service қайта іске қосыңыз

Егер бәрі жақсы болса, сіз оны іске қосып, терминалда html басып шығаруды алуыңыз керек:

wget -qO - жергілікті хост

Бәрі жақсы жұмыс істеуі керек, сіз таңқурай Pi-дің бастапқыда орнатқан IP-мекен-жайына кіре аласыз және кіру экранымен қарсы аласыз.

5 -қадам: қоршау

Қоршау
Қоршау
Қоршау
Қоршау
Қоршау
Қоршау

Енді бәрі жұмыс істейді, біз бәрін бір нәрсеге қоюымыз керек.

Мен мөлдір қақпағы бар қарапайым пластикалық қорапты таңдадым, оның үстіне анемометр орнатылған, сонымен қатар DHT22 және BMP280 датчиктері бар екінші шағын контейнер.

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

Көріп отырғаныңыздай, мен су өткізбейтін етіп шеттеріне силикон қостым, сонымен қатар таза ауа алу үшін үстіңгі контейнерде тесіктер жасадым.

Сізге метеостанцияны қалай құру туралы нұсқаулығым ұнады деп үміттенемін, бұл шеттерде сәл қиын болуы мүмкін, өйткені мен бірінші рет осындай нұсқаулық жазамын, бірақ бәрібір сізге ұнады деп үміттенемін:)

Ұсынылған: