Բովանդակություն:

AirPi - Օդի որակի տվիչ ՝ 8 քայլ
AirPi - Օդի որակի տվիչ ՝ 8 քայլ

Video: AirPi - Օդի որակի տվիչ ՝ 8 քայլ

Video: AirPi - Օդի որակի տվիչ ՝ 8 քայլ
Video: EZ-WifiBroadcast , AirPi 1-я часть 2024, Նոյեմբեր
Anonim
AirPi - օդի որակի տվիչ
AirPi - օդի որակի տվիչ

Երբևէ մտածե՞լ եք, թե ինչու եք գլխացավ ունենում: Իսկ եթե դա օդի վատ որակի՞ պատճառով է: Այս սարքի միջոցով դուք կարող եք ստուգել, արդյոք դա այդպես է: Այս սարքը չափում է CO2 արժեքը, TVOC արժեքը, ջերմաստիճանը և խոնավությունը: Դուք կարող եք օդի որակը ուղիղ տեսնել LCD- էկրանին և տեսնել հստակ նշան, եթե այն վտանգավոր է դառնում: Այս կերպ դուք կարող եք ժամանակին բացել ձեր պատուհանները:

Եթե մուտքագրեք IP հասցեն, որը ցուցադրվում է սարքը ձեր դիտարկիչում գործարկելիս, կայքը կբացվի: Դուք կարող եք տեսնել բազմաթիվ տեղեկատվություն ներքին միջավայրի վերաբերյալ, ինչպես նաև անցած րոպեների / ժամերի գրաֆիկները: Կա նաև կենդանի ցուցում և որոշ տեղեկություններ և խորհուրդներ վահանակի վրա:

Այս նախագիծը կազմել է Howest Kortrijk, NMCT (New Media and Communication Technology) ուսանողը:

Քայլ 1: Նյութեր

Նյութեր
Նյութեր

Սա այն ամենն է, ինչ ես գնել եմ այս նախագիծը ստեղծելու համար: Սա համեմատաբար էժան նախագիծ է ՝ կախված 3D տպման արժեքից: Եթե կարողանաք տպել այն դպրոցում, դա կարող է շատ էժան լինել: Հակառակ դեպքում, դա կախված է նրանից, թե որտեղ եք տպում այն և այն նյութից, որտեղ տպում եք: Դուք կնկատեք, որ ես շատ եմ գնել մեծ մասամբ, պարզապես այն պատճառով, որ դժվար է գտնել առանձին դիմադրիչներ կամ լուսարձակներ, ինչը դա էլ ավելի էժան է դարձնում: Եթե ժամանակ ունեք, կարող եք պատվիրել ապրանքների մեծ մասը aliexpress.com կայքում, առաքումը կարող է որոշ ժամանակ տևել, բայց այս կերպ կարող եք սահմանափակել ձեր ծախսերը:

Առանց տպագրության, այս նախագծի վրա ծախսածս գումարը կազմում է 81,80 եվրո:

Ահա ձեզ անհրաժեշտ նյութերը.

Շրջան:

  • Ազնվամորի Պի 3
  • SD քարտ 8 ԳԲ (նվազագույն)
  • CCS811 օդի որակի տվիչ
  • DHT22 ջերմաստիճանի և խոնավության ցուցիչ
  • Պոտենցիոմետր (հակապատկեր LCD)
  • LCD 16x2
  • Իգականից իգական ցատկող լարեր
  • Կանաչ և կարմիր LED
  • Ռեզիստորներ (2x470 օմ և 1 4700 օհմ)

Գործ:

  • 3D- տպում
  • Պտուտակներ
  • 2 բաղադրիչ սոսինձ (կամ այլ տաք սոսինձ)
  • թել կտրող գործիք

Միայն դուք եք օգտագործում PCB:

  • Oldոդման երկաթ
  • Հոսք (հեշտացնում է)
  • Անագ
  • Փորձեք հատ 2x4 սմ

Քայլ 2: Միացումներ

Միացումներ
Միացումներ

Միացրեք լարերը, ինչպես վերևում: Դուք կարող եք տեսնել էլեկտրական միացում ցնցող ֆայլում: Դա շատ բարդ միացում չէ, բայց եթե ցանկանում եք այն հնարավորինս փոքր դարձնել, անպայման ցանկանում եք փորձնական PCB տախտակ ստանալ: Էլեկտրագծերը նույնը կլինեն, բացառությամբ GND- ի և Vin- ի միացված PCB- ի տախտակին: Սենսորները կմիացվեն էգ թռիչքի մետաղալարերով կամ արուներով `զոդման միջոցով: Մի մոռացեք, որ ռեզիստորը միացնեք DHT22 սենսորի վրա:

Ես նաև խորհուրդ եմ տալիս օգտագործել կարճ մալուխներ, որոնց երկարությունը պետք է լինի 10 սմ: Հակառակ դեպքում տուփը էլ ավելի կլցվեր մալուխով: Ձեզ շատ երկարերը պետք չեն, քանի որ տպման չափը հնարավորինս փոքր է:

Քայլ 3: 3D տպում

3D- տպում
3D- տպում
3D- տպում
3D- տպում

Առաջին հնարքը, որ ծագեց գլխումս, երբ մտածում էի պատյանի մասին, 3D տպումն էր: Քանի որ հայրս տպագրել էր մի շարք այլ իրեր, և նա ինքն էր նախագծել դրանք: Միասին մենք ստեղծեցինք այս դիզայնը և մտածեցինք յուրաքանչյուր ասպեկտի մասին: Այն պետք է բավականաչափ լավ սառչի, ամեն ինչ կարող է պտուտակվել իր տեղում, իսկ եթե ոչ, ապա այն կարող է դրվել տեղում:

Մենք նույնիսկ նկարել ենք յուրաքանչյուր բաղադրիչ `ստուգելու համար, թե արդյոք ամեն ինչ տեղավորվում է: Ֆայլը հասանելի է բոլորի համար, և մենք կցանկանայինք լսել որոշ արձագանքներ: Մենք շատ գոհ էինք արդյունքից:

Քայլ 4: Կոդ

Այս նախագծի ծածկագիրը կարելի է գտնել Github- ում: Եթե դուք օգտագործել եք այլ կապում (օրինակ, LED- ների համար մեկ այլ GPIO- քորոց, դուք պետք է կարգավորեք այս փոփոխականները: Գործելու են երկու պիթոնի սցենարներ, վեբ կայքի համար web.py և sensor.py սենսորները կարդալու և թարմացնելու համար: տվյալների բազան: Մենք ներմուծելու ենք դասի LCD lcd.py- ից:

Կազմաձևված ազնվամորու pi- ով դուք կարող եք սկսել: Նախևառաջ անհրաժեշտ է թարմացնել և արդիականացնել բոլոր փաթեթները.

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

Դրանից հետո դուք պետք է տեղադրեք հետևյալ փաթեթները.

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

Այժմ ստեղծեք վիրտուալ միջավայր.

me@my -rpi: ~ $ python3 -m pip install -upgrade pip setuptools wheel virtualenv

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/ ակտիվացնել (env) me@my-rpi:/project1 $ python -m pip տեղադրել mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Քանի որ դա արված է, կարող եք իմ GitHub- ի ծածկագիրը կլոնավորել ձեր վիրտուալ միջավայրում: Սա կարող է կատարվել բազմաթիվ եղանակներով:

Գրացուցակի conf- ում կարող եք գտնել չորս ֆայլ, որոնք անհրաժեշտության դեպքում պետք է կարգավորեք: Դուք անպայման պետք է փոխեք օգտվողին և տնային գրացուցակը յուրաքանչյուր ֆայլում: UWSGI ini- ն պետք է լավ լինի, քանի դեռ չեք փոխել իմ կոդը, անհրաժեշտության դեպքում համոզվեք, որ փոխեք օգտվողին և վիրտուալենվին:

Քանի որ CCS811 սենսորը միտումնավոր է օգտագործվել arduino- ի համար, այն չի կարող i2c ավտոբուսի վրայով շփվել ազնվամորու pi- ի արագությամբ: Կարգավորող ֆայլում դուք պետք է նվազեցնեք արագությունը մինչև 10000 baudrate (ես օգտագործել եմ 9600):

Դուք նաև ստիպված կլինեք ձեռք բերել ադաֆրուտի տվիչի գրադարանը: Ես կարող եմ սա բացատրել այստեղ, բայց կա ադաֆրուտի կատարյալ ուղեցույց, որը շատ լավ բացատրում է այս ամենը:

Քանի որ մենք ցանկանում ենք, որ պիթոնի սցենարներն ինքնաբերաբար գործեն, երբ ազնվամորին միացված է, ստիպված կլինեք օգտվել ծառայություններից: Նրանք պետք է լավ լինեն, եթե դու պահես իմ ծածկագիրը: Այն, ինչ պետք է անեք, որպեսզի նրանք աշխատեն, նրանց միացնելն է: Նախքան դա անելը կա մի վերջին բան.

Քանի որ մենք օգտագործում ենք nginx վեբ սերվեր, մենք ստիպված կլինենք անջատել կանխադրվածը և այն փոխարինել մեր սեփական կազմաձևով: Դա անելու համար պետք է հետևել հետևյալ քայլերին.

  • conf/nginx պատճենել *հասանելի կայքերին *
  • Հեռացրեք կանխադրված-կազմաձևման հղումը
  • Ավելացրեք հղում նոր կազմաձևին
  • Վերագործարկեք nginx- ը ՝ փոփոխությունները պահպանելու համար

me@my-rpi: ~/project1 $ sudo cp conf/project1-*. ծառայություն/այլն/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi:/project1 $ sudo systemctl start project1-* me@my-rpi: ~/project1 $ sudo systemctl կարգավիճակի նախագիծ 1-*

Nginx- ը և mysql- ը պետք է անընդհատ աշխատեն: Նրանք սկսվում են ազնվամորու պի հետ միասին: Վեբ սցենարը և սենսորային սցենարը դեռ ոչ միայն:

Դա անելու համար դուք դեռ պետք է միացնեք այս երկու ծառայությունները այս հրամաններով.

sudo systemctl միացնել project1-flask.service- ը

sudo systemctl միացնել project1-sensor.service

Քայլ 5: Տվյալների բազա

Տվյալների շտեմարան
Տվյալների շտեմարան

Իմ տվյալների բազան բաղկացած է երեք աղյուսակից: Օգտագործողը կապ չունի այլ աղյուսակների հետ: Սա օգտագործվում է միայն մուտք գործելու և կայք մուտք գործելու համար: Երբ սարքը միացված է, CO2- ի և TVOC- ի արժեքը տվյալների բազայում կգրվեն յուրաքանչյուր 50 վայրկյանը մեկ: Temperatureերմաստիճանը եւ խոնավությունը յուրաքանչյուր 5 րոպեն մեկ: Այս կերպ մենք ստանում ենք անցյալի հստակ ակնարկ:

SQL ֆայլը կարելի է գտնել այստեղ, սակայն ազնվամորի pi- ի տվյալների բազան ստանալու համար պետք է հետևել հետևյալ քայլերին.

Նախորդ քայլում փաթեթների տեղադրումից հետո mariadb/mysql- ը պետք է անմիջապես գործարկվի: Դուք կարող եք դա ստուգել այս տողով.

me@my-rpi: ~ $ sudo systemctl կարգավիճակ mysql

Տվյալների բազան և օգտվողներ ստեղծելու համար կարող եք պարզապես գործարկել sql- սցենարները կոդի մեջ GitHub- ից: Եթե դա ճիշտ եք արել, դուք պետք է տեսնեք ձեր աղյուսակները ՝ օգտագործելով այս հրամանը.

me@my-rpi: ~ $ echo 'ցուցադրել սեղաններ;' | mysql project1 -t -u project1 -admin -p

Այժմ մենք ամեն ինչ պատրաստ ենք: Դուք կարող եք ստուգել սա առանց պատյանների, որպեսզի համոզվեք, որ ամեն ինչ աշխատում է: Եթե միացված չեք wifi- ին, ապա ձեզ հարկավոր է այն միացնել ethernet մալուխով և այն ձեռքով գործարկել:

Քայլ 6: Միացեք Wi-Fi- ին

Բացեք wpa-supplicant կազմաձևման ֆայլը nano- ով (իրականում կարևոր չէ, պարզապես համոզվեք, որ կարող եք աշխատել տեքստային խմբագրիչի հետ):

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Գնացեք ֆայլի ներքևում և ավելացրեք հետևյալը (փոխարինեք ssid- ի և գաղտնաբառի անունը ձեր անուններով).

ցանց = {

ssid = "ssid-name" psk = "գաղտնաբառ-անուն"}

Գաղտնագրված գաղտնաբառ ստեղծելու համար կարող եք օգտագործել wpa_passphrase- ը և պարզապես պատճենել այն wpa_supplicant.conf psk- ում ՝ բաներն ավելի ապահով դարձնելու համար:

wpa_passphrase "ssid-name" "password-name"

Եթե ցանկանում եք, որ այն ինքնաբերաբար միանա այս Wi-Fi ցանցին, իսկ կազմաձևման ֆայլում կան այլ անձինք, համոզվեք, որ առաջնահերթությունը փոխում եք ավելի բարձր մակարդակի ՝ կազմաձևման ֆայլում ցանցին ավելացնելով այս տողը.

առաջնահերթություն = 2

Մի մոռացեք վերակազմավորել ինտերֆեյսը հետևյալով.

wpa_cli -i wlan0 վերակազմավորել

Այժմ դուք արդեն պատրաստ եք և միացված եք wifi ցանցին:

Քայլ 7: Ամեն ինչ միասին հավաքելը

Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը

Քանի որ ամեն ինչ լարված է և զոդված, մենք կարող ենք գործին մոտենալ: Սա նախագծված էր այնպես, որ դուք կարողանայիք բացել պատյանը ՝ առանց թուլացած լարերի: Սա նշանակում է, որ ամեն ինչ կցված է ներքևի մասին: Առաջին բանը, որ պետք է անել, ազնվամորիին մի փոքր հարմարվելն է: Ամեն անկյունում դրա մեջ անցքեր կան, բայց դրանք այնքան էլ մեծ չեն, որքան պետք է լինեն: Տրամագիծը պետք է բավարար լինի 3 մմ պտուտակ ներսում տեղադրելու համար: Մենք ստիպված էինք փայլեցնել անցքերը, որպեսզի դրանք մի փոքր ավելի լայնանան:

Երկրորդ բանը, որ պետք է անել, յուրաքանչյուր անցքի մեջ պտուտակով թելը կտրելն է: Սա կարող է դժվար թվալ, բայց հեշտությամբ կարելի է անել ճիշտ գործիքների օգնությամբ: Ես խորհուրդ կտայի դա անել տեղական շինարարական խանութում, պարզապես խնդրեք թել կտրելու գործիք: Քանի որ հայրս ոսկերիչ է, նա գործիքներ ուներ դա անելու աշխատավայրում: Ես կարող եմ նոր stl ֆայլ վերբեռնել, որպեսզի այն հետագայում տպվի, բայց դրա համար անհրաժեշտ կլինի շատ ճշգրիտ տպիչ:

Երրորդ քայլը պտուտակն է պտտել ներքևի մասի վրա: Ձեզ հարկավոր է 4 մմ տրամագծով 4 պտուտակ ՝ 3 մմ տրամագծով: Դրանից հետո կարող եք PCD- ի տախտակը ներքևի մասի վերևում տրամադրված տեղում դնել: CCS811 սենսորը կարող է մտցվել ձախ կողմում նախատեսված տեղ, իսկ DHT11- ը կարող է կցվել աջ ափսեին: Երկուսն էլ մեկուսացված են և բավականաչափ օդափոխվում են, բայց հետո մենք նկատեցինք, որ ներսում դեռ տաքանում էր: Այդ մասին ավելի ուշ:

Այնուհետեւ դուք պետք է կցեք LED- ները իրենց խողովակին: Մենք դա արեցինք 2 բաղադրիչ սոսինձով, բայց դուք կարող եք դա անել, ինչպես ցանկանում եք: Համոզվեք, որ դրանք կպչում են այնտեղ:

Այժմ դուք կարող եք կցել LCD- էկրանը, ձեզ հարկավոր են նախորդ տրամագծով նույն տրամագծով պտուտակներ, բայց մի փոքր ավելի երկար: Իմը 1 սմ էր Եթե չորս պտուտակները պտուտակված են, մնում է միայն մեկ բան անել: Կցեք վերին հատվածը: Ձեզ անհրաժեշտ է չորս պտուտակ ՝ նույն տրամագծով և դրանք 2 սմ են: Այժմ ամեն ինչ պետք է տեղում լինի, և դուք կարող եք այն սկսել:

Քայլ 8: Սկսեք այն

Այս ծրագրի մեկնարկի գործընթացը շատ հեշտ է.

  1. Կցեք հոսանքի մալուխը պատյանի ձախ կողմում: Դա շատ տեսանելի չէ, բայց դուք կարող եք տեսնել անցքերի միջոցով: Եթե այն ձեռք եք բերել մեկ անգամ, դա նորից խնդիր չի լինի:
  2. Giveամանակ տվեք սկսելու համար:
  3. IP հասցեն էկրանին կհայտնվի տասը վայրկյան: Միակ բանը, որ դուք պետք է անեք, համոզվեք, որ միացված եք նույն ցանցին և մուտքագրեք IP հասցեն ձեր դիտարկիչի հասցեի տողում:
  4. Դուք այժմ կայքում եք: Դուք դեռ հաշիվ չունեք, այնպես որ ստեղծեք հաշիվ:
  5. Եթե գրանցված եք, մուտք գործեք:
  6. Կատարած! Կայքի բոլոր տվյալները կարող եք տեսնել, իսկ LCD- էկրանը ցույց է տալիս օդի ընթացիկ որակը:

Քանի որ ջերմությունը բարձրանում է, մենք տեղադրեցինք սենսորները պատյան ներքևում: Այս կերպ ջերմաստիճանը մեծ ազդեցություն չի ունենա գրանցված արժեքների վրա: Այսպիսով, օպտիմալ չափումների համար սարքը կանգնեցրեք կամ կարող եք պարզապես այն կախել պատից:

Խորհուրդ ենք տալիս: