Mundarija:

AirPi - havo sifati sensori: 8 qadam
AirPi - havo sifati sensori: 8 qadam

Video: AirPi - havo sifati sensori: 8 qadam

Video: AirPi - havo sifati sensori: 8 qadam
Video: Experiment Profielwerkstuk 2024, Noyabr
Anonim
AirPi - havo sifati sensori
AirPi - havo sifati sensori

Nega boshingiz og'riyapti, deb o'ylab ko'rganmisiz? Va agar bu yomon havo sifati bilan bog'liq bo'lsa? Bunday qurilma bilan siz uning to'g'riligini tekshirishingiz mumkin. Bu qurilma CO2 qiymatini, TVOC qiymatini, harorat va namlikni o'lchaydi. Siz LCD displeyda havo sifatini ko'rishingiz va agar u xavfli bo'lib qolsa, aniq ko'rsatmani ko'rishingiz mumkin. Shunday qilib, siz derazalarni o'z vaqtida ochishingiz mumkin.

Agar siz brauzeringizda qurilmani ishga tushirganda ko'rsatiladigan IP -manzilni kiritsangiz, veb -sayt ochiladi. O'tgan daqiqalar / soatlarning grafiklari bilan bir qatorda ichki muhit haqida ko'p ma'lumotlarni ko'rishingiz mumkin. Shuningdek, asboblar panelida jonli ko'rsatma va ba'zi ma'lumotlar va maslahatlar mavjud.

Ushbu loyiha Howest Kortrijk, NMCT (New Media and Communication Technology) talabasi tomonidan qilingan.

1 -qadam: materiallar

Materiallar
Materiallar

Bu loyihani yaratish uchun men sotib olgan hamma narsa. Bu 3D-bosma narxiga qarab, nisbatan arzon loyihadir. Agar siz uni maktabda chop qila olsangiz, bu juda arzon bo'lishi mumkin. Aks holda, bu siz qaerda va qaysi materialda chop etishingizga bog'liq bo'ladi. Siz meni katta hajmda sotib olganimni sezasiz, chunki individual rezistorlar yoki LEDlarni topish qiyin, bu esa uni yanada arzonlashtiradi. Agar vaqtingiz bo'lsa, siz ko'p narsalarni aliexpress.com saytiga buyurtma qilishingiz mumkin, etkazib berish biroz vaqt olishi mumkin, lekin shu bilan siz o'z xarajatlaringizni cheklashingiz mumkin.

Bosma holda, men bu loyihaga sarflagan pulim 81, 80 evro.

Bu sizga kerak bo'lgan materiallar:

O'chirish:

  • Raspberry Pi 3
  • SD -karta 8 GB (minimal)
  • CCS811 havo sifati sensori
  • DHT22 harorat va namlik sensori
  • Potensiometr (kontrastli LCD)
  • LCD 16x2
  • Ayol -ayol jumper simlari
  • Yashil va qizil LED
  • Rezistorlar (2x470ohm va 1 4700ohm)

Kassa:

  • 3D bosib chiqarish
  • Vintlar
  • 2 komponentli elim (yoki boshqa issiq elim)
  • ip kesuvchi asbob

Siz faqat PCBdan foydalanasiz:

  • Lehimlash temir
  • Oqim (osonlashtiradi)
  • Qalay
  • Tajriba pcb 2x4 sm

2 -qadam: ulanishlar

Ulanishlar
Ulanishlar

Yuqoridagi kabi simlarni ulang. Sovutgich faylida elektr zanjirini ko'rishingiz mumkin. Bu juda murakkab sxema emas, lekin agar siz uni iloji boricha kichikroq qilishni xohlasangiz, siz, albatta, PCB karta eksperimentini olishni xohlaysiz. GND va Vin PCB kartasiga ulanganidan tashqari, simlar bir xil bo'ladi. Datchiklar ayol o'tish simlari yoki lehimli erkaklar bilan ulanadi. DHT22 sensoriga rezistorni lehimlashni unutmang.

Qisqa kabellardan foydalanishni tavsiya qilaman, 10 sm. Aks holda, quti yana kabel bilan to'ldiriladi. Sizga juda uzun nusxalar kerak emas, chunki chop etish imkon qadar kichikroq.

3-qadam: 3D bosib chiqarish

3D bosib chiqarish
3D bosib chiqarish
3D bosib chiqarish
3D bosib chiqarish

Ish haqida o'ylaganimda, boshimga tushgan birinchi mashg'ulot 3D-bosma edi. Dadam boshqa narsalarni serverdan chiqargan va ularni o'zi yaratgan. Birgalikda biz ushbu dizaynni yaratdik va har jihatdan o'rganib chiqdik. U etarlicha sovigan bo'lishi kerak, hamma narsani joyiga burib qo'yish mumkin, agar bo'lmasa, uni joyiga surish mumkin.

Biz hatto har bir komponentni hammasi mos keladimi -yo'qligini tekshirishga jalb qildik. Fayl hamma uchun mavjud va biz ba'zi fikr -mulohazalarni eshitishni istaymiz. Biz natijadan juda mamnun bo'ldik.

4 -qadam: kod

Ushbu loyihaning kodini Github -da topish mumkin. Agar siz boshqa pinlardan foydalansangiz (masalan, LEDlar uchun boshqa GPIO-pin, siz bu o'zgaruvchilarni o'zgartirishingiz kerak bo'ladi. Ikkita python skriptlari ishlaydi, veb-sayt uchun web.py va sensorlarni o'qish va yangilash uchun sensor.py). Ma'lumotlar bazasi. Biz LCD sinfini lcd.py -dan import qilamiz.

Konfiguratsiya qilingan malina pi bilan siz boshlashingiz mumkin. Avval siz barcha paketlarni yangilashingiz va yangilashingiz kerak bo'ladi:

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

Shundan so'ng siz quyidagi paketlarni o'rnatishingiz kerak bo'ladi:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Endi virtual muhit yarating:

me@my -rpi: ~ $ python3 -m pip o'rnatish -pip setuptools g'ildiragini virtualizatsiya qilish

me@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv-system-site-packages env me@my-rpi: ~/project1 $ source env/bin/ faollashtirish (env) me@my-rpi: ~/project1 $ python -m pip mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Bu bajarilgandan so'ng, siz GitHub -dan kodni virtual muhitingizga klonlashingiz mumkin. Bu bir necha usul bilan amalga oshirilishi mumkin.

Conf katalogida siz kerak bo'lganda sozlashingiz kerak bo'lgan to'rtta faylni topishingiz mumkin. Siz, albatta, har bir faylda foydalanuvchi va uy yo'nalishini o'zgartirishingiz kerak bo'ladi. Agar siz mening kodimni o'zgartirmagan bo'lsangiz, uWSGI ini yaxshi bo'lishi kerak, agar kerak bo'lsa, foydalanuvchi va virtual tarmoqni o'zgartiring.

CCS811 sensori arduino uchun ataylab ishlatilganligi sababli, bu malina pi tezligida i2c avtobus orqali aloqa qila olmaydi. Konfiguratsiya faylida tezlikni 10000 (men 9600 ishlatganman) bod tezligiga kamaytirish kerak bo'ladi.

Bundan tashqari, adafruit sensori kutubxonasini olishingiz kerak bo'ladi. Men buni bu erda tushuntira olardim, lekin bularning barchasini juda yaxshi tushuntirib beradigan mukammal adafruit qo'llanmasi bor.

Malina ulanganda python skriptlari avtomatik ravishda ishlashini xohlaganimiz uchun, siz xizmatlardan foydalanishingiz kerak bo'ladi. Agar siz mening kodimni saqlagan bo'lsangiz, ular yaxshi bo'lishi kerak. Ularni ishga tushirish uchun ularni yoqish kifoya. Buni qilishdan oldin, oxirgi narsa bor.

Biz nginx veb -serveridan foydalanayotganimiz uchun, biz standartni o'chirib qo'yishimiz va uni o'z konfiguratsiyamiz bilan almashtirishimiz kerak bo'ladi. Buning uchun quyidagi bosqichlarni bajarish kerak:

  • conf/nginx-ni *mavjud saytlarga *nusxalash
  • Standart konfiguratsiyaga havolani olib tashlang
  • Yangi konfiguratsiyaga havola qo'shing
  • O'zgarishlarni saqlash uchun nginx -ni qayta ishga tushiring

me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi: ~/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-*

Nginx va mysql har doim ishlashi kerak. Ular malina pi bilan birga boshlanadi. Veb -skript va sensor skript hali emas.

Buning uchun siz hali ham ushbu ikkita xizmatni ushbu buyruqlar bilan yoqishingiz kerak:

sudo systemctl project1-flask.service-ni yoqadi

sudo systemctl project1-sensor.service-ni yoqadi

5 -qadam: ma'lumotlar bazasi

Ma'lumotlar bazasi
Ma'lumotlar bazasi

Mening ma'lumotlar bazam uchta jadvaldan iborat. Foydalanuvchining boshqa jadvallar bilan aloqasi yo'q. Bu faqat saytga kirish va ruxsat berish uchun ishlatiladi. Qurilma yoqilganda, har 50 soniyada CO2 va TVOC qiymati ma'lumotlar bazasiga yoziladi. Har 5 daqiqada harorat va namlik. Shunday qilib, biz o'tmish haqida aniq tasavvurga ega bo'lamiz.

SQL-faylni bu erda topish mumkin, lekin malina pi-da ma'lumotlar bazasini olish uchun siz quyidagi amallarni bajarishingiz kerak.

Oldingi bosqichda paketlar o'rnatilgandan so'ng, mariadb/mysql darhol ishga tushishi kerak. Buni quyidagi satr orqali tekshirishingiz mumkin:

me@my-rpi: ~ $ sudo systemctl status mysql

Ma'lumotlar bazasini va foydalanuvchilarni yaratish uchun siz GitHub kodidagi sql-skriptlarini ishga tushirishingiz mumkin. Agar siz buni to'g'ri qilgan bo'lsangiz, ushbu buyruq yordamida jadvallaringizni ko'rishingiz kerak:

me@my-rpi: ~ $ echo 'jadvallarni ko'rsatish;' | mysql project1 -t -u project1 -admin -p

Hammasi tayyor, hamma narsa ishlayotganiga ishonch hosil qilish uchun siz buni holda tekshirishingiz mumkin. Agar siz Wi -Fi tarmog'iga ulanmagan bo'lsangiz, uni chekilgan kabel orqali ulashingiz va uni qo'lda ishlatishingiz kerak bo'ladi.

6-qadam: Wi-Fi-ga ulaning

Nano-da wpa-supplicant konfiguratsiya faylini oching (muhim emas, faqat matn muharriri bilan ishlashingizga ishonch hosil qiling).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Faylning pastki qismiga o'ting va quyidagilarni qo'shing (ssid nomi va parol nomini o'zingizniki bilan almashtiring):

tarmoq = {

ssid = "ssid-name" psk = "password-name"}

Shifrlangan parolni yaratish uchun siz wpa_passphrase -dan foydalanishingiz va uni xavfsizroq qilish uchun uni wpa_supplicant.conf psk -ga nusxalashingiz mumkin.

wpa_passphrase "ssid-name" "parol-ism"

Agar siz ushbu Wi-Fi tarmog'iga avtomatik ravishda ulanishini xohlasangiz va konfiguratsiya faylida boshqalar bo'lsa, konfiguratsiya faylidagi ushbu qatorni tarmoqqa qo'shib ustuvorlikni yuqori darajaga o'zgartirganingizga ishonch hosil qiling:

ustuvorlik = 2

Interfeysni qayta sozlashni unutmang:

wpa_cli -i wlan0 qayta sozlang

Hammasi tayyor va Wi -Fi tarmog'iga ulangansiz.

7 -qadam: Hammasini bir joyga to'plash

Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash

Hamma narsa simli va lehimli bo'lganligi sababli, biz ishni boshlashimiz mumkin. Bu korpusni bo'sh simlarsiz ochish uchun yaratilgan. Bu shuni anglatadiki, hamma narsa pastki qismga biriktirilgan. Birinchi narsa - malinaga ozgina tuzatish. Uning har bir burchagida teshiklari bor, lekin ular kerakli darajada katta emas. Diametri 3 mm bo'lgan vintni o'rnatishi uchun etarli bo'lishi kerak, biz teshiklarni biroz kengroq qilib silliqlashimiz kerak edi.

Ikkinchi narsa - har bir teshikka vintli ipni kesish. Bu qiyin tuyulishi mumkin, lekin to'g'ri asboblar yordamida osonlikcha amalga oshiriladi. Men buni mahalliy apparat do'konida qilishni maslahat beraman, faqat ipni kesish uchun asbob so'rang. Dadam zargar bo'lgani uchun, ishda buni qilish uchun asboblari bor edi. Men yangi stl-faylni yuklashim mumkin, shunda u keyinchalik chop etiladi, lekin buning uchun juda aniq printer kerak bo'ladi.

Uchinchi qadam - pi qismini pastki qismga burab qo'yish. Sizga diametri 3 mm bo'lgan 4 7 mm uzunlikdagi vintlar kerak bo'ladi. Shundan so'ng, siz PCD kartasini pastki qismning yuqori qismidagi joyiga surishingiz mumkin. CCS811 sensori chap tomonda joylashgan joyga o'rnatilishi mumkin va DHT11 o'ng plastinkaga biriktirilishi mumkin. Ikkalasi ham etarlicha izolyatsiya qilingan va ventilyatsiya qilingan, biroq keyin ichkarida hali ham issiq bo'layotganini payqadik. Bu haqda keyinroq batafsilroq.

Keyin siz LEDni quvurga ulashingiz kerak. Biz buni 2 komponentli elim bilan qildik, lekin siz xohlaganingizcha qilishingiz mumkin. U erda yopishganligiga ishonch hosil qiling.

Endi siz LCD displeyni ulashingiz mumkin, sizga avvalgilariga o'xshash diametrli vintlar kerak bo'ladi, lekin biroz ko'proq. Mening bo'yim 1 sm edi. Agar to'rtta vintni vidalansa, faqat bitta narsa qoladi. Yuqori qismini mahkamlang. Sizga kerak bo'lgan yagona narsa - diametri bir xil bo'lgan 4 vint, ular 2 sm. Endi hamma narsa joyida bo'lishi kerak va siz boshlashingiz mumkin.

8 -qadam: Ishni boshlang

Loyihani ishga tushirish jarayoni juda oson:

  1. Quvvat simini korpusning chap tomoniga ulang. U unchalik ko'rinmaydi, lekin siz shamollatish teshiklari orqali ko'rishingiz mumkin. Agar siz uni bir marta olgan bo'lsangiz, bu boshqa muammo bo'lmaydi.
  2. Ishni boshlash uchun biroz vaqt bering.
  3. IP-manzil displeyda o'n soniya davomida ko'rsatiladi. Faqat bitta tarmoqqa ulanganligingizga ishonch hosil qilish va brauzerning manzil satriga IP-manzilni kiritish kifoya.
  4. Siz hozir saytdasiz. Sizda hali hisob yo'q, shuning uchun hisob yarating.
  5. Agar siz ro'yxatdan o'tgan bo'lsangiz, tizimga kiring.
  6. Bajarildi! Veb-sahifadagi barcha ma'lumotlarni ko'rishingiz mumkin va LCD displeyda hozirgi havo sifati ko'rsatilgan.

Issiqlik ko'tarilgandan so'ng, biz datchiklarni korpusning pastki qismiga joylashtirdik. Shunday qilib, harorat ro'yxatga olingan qiymatlarga katta ta'sir ko'rsatmaydi. Shunday qilib, optimal o'lchovlar uchun qurilmani tik turing yoki uni devorga osib qo'ying.

Tavsiya: