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

Fanair: եղանակային կայարան ձեր սենյակի համար. 6 քայլ (նկարներով)
Fanair: եղանակային կայարան ձեր սենյակի համար. 6 քայլ (նկարներով)

Video: Fanair: եղանակային կայարան ձեր սենյակի համար. 6 քայլ (նկարներով)

Video: Fanair: եղանակային կայարան ձեր սենյակի համար. 6 քայլ (նկարներով)
Video: Тонкости работы с монтажной пеной. То, что ты не знал! Секреты мастеров 2024, Նոյեմբեր
Anonim
Fenair: եղանակային կայան ձեր սենյակի համար
Fenair: եղանակային կայան ձեր սենյակի համար

Կան անհամար եղանակներ ՝ պարզելու ընթացիկ եղանակը, բայց հետո միայն եղանակը գիտեք դրսում: Ի՞նչ անել, եթե ցանկանում եք իմանալ եղանակը ձեր տան ներսում, որոշակի սենյակի ներսում: Դա այն է, ինչ ես փորձում եմ լուծել այս նախագծով:

Fanair- ն օգտագործում է բազմաթիվ սենսորներ `զգալու համար.

  • ջերմաստիճանը
  • խոնավություն
  • լույս
  • որոշակի գազեր
  • օդի ճնշում

Այն շատ կոմպակտ է և օգտագործում է Raspberry Pi 3 B- ն ՝ արժեքները ստանալու, դրանք MySQL տվյալների բազայում պահելու, այնուհետև դրանք հեշտությամբ հասանելի դարձնելու համար կայքում: Կոդի և վեբ կայքի մեջ ներառված է ձեր գտնվելու վայրի եղանակի փաստացի տվյալներ ստանալու հնարավորությունը, որպեսզի կայքը կարողանա օգտագործվել նաև արտաքին եղանակը ստուգելու համար:

Քայլ 1: Ստացեք բոլոր անհրաժեշտ պարագաները

Ստացեք բոլոր պահանջվող իրերը
Ստացեք բոլոր պահանջվող իրերը

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

Ավելի կոնկրետ իրերի համար ես պատրաստել եմ այս նյութերի օրինագիծը:

  • Ազնվամորի Պի 3 Բ
  • MPC3008-8-ալիք 10-բիթանոց ADC
  • AM2301 rmերմաչափի ջերմաստիճանի եւ խոնավության ցուցիչ
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS նախատիպի պատյան (սև)
  • LDR
  • MQ135 գազի սենսոր
  • 2x BC517 Դարլինգթոնյան տրանզիստոր
  • RGB LED
  • Resistor Pack
  • Բզզոց
  • Լարերը
  • BMP280 բարոմետր
  • Հանգիստ USB օդափոխիչ (5 Վ)

Այս ամենը միասին կարժենա մոտ 110 եվրո: Հիշեք, որ ընդհանուր գինը մոտավոր է: Բացի այդ, իմ նախագիծը լուսանկարում ունի LCD էկրան, բայց այն կապված չէ, քանի որ իմ դեպքում բավարար տարածք չկար, ուստի այն ներառված չէ ուսանելի առարկայի մեջ:

Քայլ 2. Պատրաստեք ձեր ազնվամորի Պի -ն

Ձեռք բերեք ձեր Raspian Jessie- ը Pixel օպերացիոն համակարգով Raspberry Pi- ի պաշտոնական կայքից և ներբեռնվելուց հետո այն զնգացրեք: Դուք կստանաք պատկերի ֆայլ: Pi- ում այն ձեռք բերելու համար դուք պետք է այն գրեք SD- քարտին `օգտագործելով Win32 Disk Imager- ը: Տեղադրվելուց հետո ընտրեք պատկերի ֆայլը և այն կրիչը, որտեղ դուք գտնվում եք SD- քարտում: Այնուհետև կտտացրեք գրել և սպասեք մինչև այն ավարտվի:

Ավարտելուց հետո File Explorer- ում կտտացրեք SD քարտին և բացեք «cmdline.txt» անունը կրող ֆայլը, իսկ տեքստային ֆայլի վերջը գնացեք rootwait- ից առաջ և, իհարկե, գրեք «ip = 254.169.10.2»: Պահելուց հետո պետք է աջ սեղմել պատուհանի ներսում և ստեղծել նոր ֆայլ ՝ «ssh»: Ուշադրություն դարձրեք, որ այս ֆայլը չունի ֆայլի ընդլայնում: Համոզվելու համար, որ այն չունի ընդլայնում, կտտացրեք «դիտել» ֆայլը Explorer- ում և ստուգեք «թաքնված ֆայլերը»: Եթե այն իսկապես անվանափոխի այն և ջնջի ընդլայնումը, այնպես որ այն պարզապես կարդում է «ssh»:

Դա անելուց հետո դուք վերջապես կարող եք տեղադրել ձեր SD քարտը Raspberry Pi- ում: Ներբեռնեք ssh հաճախորդ (խորհուրդ եմ տալիս MobaXterm): Եվ ssh- ի միջոցով միացեք ավելի վաղ «254.169.10.2» IP- ին: Օգտվողի անունն է 'pi', գաղտնաբառը 'ազնվամորու': Եթե ցանկանում եք, կարող եք փոխել գաղտնաբառը ՝ տերմինալում մուտքագրելով «sudo passwd» հրամանը և հետևելով հրահանգներին: Քանի որ մենք Fanair- ի համար օգտագործելու ենք SD- քարտի մի լավ հատված, դուք պետք է երկարացնեք առկա պահեստը ՝ մուտքագրելով «sudo rapi-config» ՝ ընտրելով «Ընդլայնված ընտրանքներ», այնուհետև «Ընդլայնել ֆայլային համակարգը»: Եթե հուշվի վերագործարկեք:

Մենք կօգտագործենք 1-լար, SPI և I2C ինտերֆեյս: Դրանք օգտագործելու համար նախ պետք է դրանք կարգավորել:

Քայլ 3: Միացրեք ամեն ինչ միասին

Միացրեք ամեն ինչ միասին
Միացրեք ամեն ինչ միասին
Միացրեք ամեն ինչ միասին
Միացրեք ամեն ինչ միասին

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

Շրջանը, որն անհրաժեշտ կլինի, կարծես վերը նշվածն է, հարմարության համար ներառված է նաև տախտակի տարբերակը:

Քայլ 4: Ստեղծեք ձեր տվյալների շտեմարանը

Ստացված բոլոր տվյալները արդյունավետ պահպանելու համար մենք կօգտագործենք TSQL MySQL տվյալների բազան: Նախքան MySQL- ը տեղադրելը, եկեք համոզվենք, որ ամեն ինչ արդիական է `տերմինալում մի քանի հրաման մուտքագրելով.

  • 'sudo apt-get թարմացում'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

Ընդունեք յուրաքանչյուր հուշում `մուտքագրելով« y »և մուտքագրեք:

MySQL տեսակը տեղադրելու համար.

  • 'sudo apt-get տեղադրել mysql-server'
  • 'sudo apt-get install mysql-client'

Երբ հուշվում է, ստեղծեք ձեր նախընտրած արմատային գաղտնաբառը:

Մուտքի տեղադրումն ավարտելուց հետո ՝ օգտագործելով.

'mysql -uroot -p'

Եվ մուտքագրեք ձեր գաղտնաբառը:

Ստացեք Fanair կոդը My Github- ից: Կտտացրեք «Կլոնավորել կամ ներբեռնել», այնուհետև «Ներբեռնել ZIP» կոճակին: Բացեք ծածկագիրը ձեր ընտրած թղթապանակում: Լիովին գործող տվյալների բազա ստեղծելու հարցումը գտնվում է տվյալների բազայի թղթապանակում: Բացեք ֆայլը, պատճենեք ծածկագիրը և տեղադրեք այն տերմինալում MySQL- ով բացված: Այնուհետև կտտացրեք մուտքագրել և տվյալների բազան պատրաստ է:

Քայլ 5: theամանակն է օրենսգրքի համար:

Բոլոր սենսորներից օգտվելու համար ակնհայտորեն անհրաժեշտ է գործարկել ծրագիր: Բարեբախտաբար, ծածկագիրն արդեն ավարտված է (մեծ մասամբ), և մենք արդեն ներբեռնել ենք տվյալների բազայի SQL հարցումը ստանալիս:

Ինչպես ասացի, կան մի քանի բաներ, որոնք դեռ պետք է փոխվեն / ավելացվեն, որպեսզի ծրագիրը ճիշտ աշխատի: Առաջին հերթին ծրագիրը օգտագործում է Darksky API- ն ՝ եղանակի տվյալները ստանալու համար ՝ հիմնված երկայնության և լայնության վրա: Դրանից օգտվելու համար հարկավոր է գրանցվել: Առաջին 1000 զանգերն անվճար են, իսկ հետո այն արժե $ 0,0001 մեկ զանգի համար: Ես լսել եմ, եթե չվճարեք, ձեր հաշիվն արգելափակվում է: Beիշտն ասած, $ 0,0001 մեկ զանգի համար բավականին էժան է: Fanair- ը ամեն ժամ զանգում է ամենաթարմ տվյալներին, ինչը նշանակում է, որ մեկ տարվա ընթացքում լրիվ դրույքով աշխատելու դեպքում այն կարժենա ձեզ միայն 0,876 դոլար: Դուք նաև 41 օր անվճար եք ստանում, եթե Fanair- ը աշխատում է լրիվ դրույքով:

Գրանցվելուց հետո փնտրեք ձեր API բանալին: Գտեք ձեր գտնվելու վայրի երկայնությունը և լայնությունը google քարտեզներում կամ փորձեք այն Google- ում: Ստեղծեք նոր տեքստային ֆայլ ՝ Fanair- ի արմատային գրացուցակը (դասերով, main.py…): Անվանեք ֆայլը 'key_location.txt': Բացեք տեքստային ֆայլը և առաջին տողում տեղադրեք Darksky API ստեղնը: Երկրորդ տողում տեղադրեք ձեր երկայնությունը, իսկ երրորդ գծում ՝ ձեր լայնությունը (երկուսն էլ տասնորդական ձևաչափով): Ավարտելուց հետո պահպանեք ֆայլը:

Նույն գրացուցակում ստեղծեք մեկ այլ տեքստային ֆայլ, որը կոչվում է 'database_dsn.txt': Առաջին տողում պետք է գրվի 'localhost': Երկրորդ տողը «արմատ» է: Երրորդ տողում դուք պետք է մուտքագրեք ձեր տվյալների բազայի համար ավելի վաղ կազմված ձեր գաղտնաբառը, իսկ չորրորդ և վերջին տողը `« fanair »:

Աջ սեղմեք main.py ֆայլին և ընտրեք խմբագրել: «Fanair = Fanair (5, 26, 17, 27, 22, 4," AM2301 ", 1, 0, 0, 0," key_location.txt "," database_dsn.txt ") 'պետք է փոխվի: Եթե հետևում եք նկարին, ապա առաջին 5 արժեքները պետք է փոխվեն '5, 26, 17, 27, 22, 4' 'մինչև '20, 21, 26, 19, 13': «/home/muhsin/Applications/Fanair» - ը նույնպես պետք է փոխվի ձեր Fanair արմատային ուղու վրա (որտեղ main.py- ն է): Համոզվեք, որ շեմը դրեք «տան» դիմաց, բայց ոչ «Fanair» - ից հետո:

Այժմ այս ամենը հիանալի է, բայց կոդը պետք է մուտքագրվի Pi- ում: Բարեբախտաբար մեզ համար sftp արձանագրությունը գոյություն ունի: Ֆայլերը Pi- ի վրա դնելու համար օգտագործեք sftp հաճախորդ, ինչպիսին է FileZilla- ն, կամ եթե որոշել եք օգտագործել MobaXterm- ը, կարող եք ֆայլերը հեշտությամբ վերբեռնել տերմինալից ձախ գտնվող sftp ինտերֆեյսում:

Իմ փորձով ես միշտ չէ, որ ստանում եմ Raspberry Pi- ի ճիշտ ամսաթիվը և ժամը: Համոզված լինելու համար, որ դուք կստանաք տվյալների ճիշտ ժամանակը, ես առաջարկում եմ հետևել այս ուղեցույցին ՝ Raspberry Pi համաժամացման ամսաթիվը և ժամը:

Եվ վերջապես, անհրաժեշտ է տեղադրել մի քանի գրադարաններ և մի քանի ինտերֆեյս ակտիվացնել:

'sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 տեղադրել adafruit_python_dht'

1-լար:

  1. 'sudo raspi-config'
  2. «Միացման տարբերակներ»
  3. «1 մետաղալար»
  4. Միացնել
  5. 'sudo nano /boot/config.txt'
  6. Ավելացրեք այս տողը ֆայլում ՝ 'dtoverlay = w1-gpio'
  7. «sudo reboot»

SPI:

  1. 'sudo raspi-config'
  2. «Միացման տարբերակներ»
  3. 'SPI'
  4. Միացնել
  5. «sudo reboot»
  6. 'sudo nano /boot/config.txt'
  7. Որոնեք «dtparam = spi = on» և մեկնաբանեք այն ՝ հեռացնելով հեշթեգը:
  8. 'sudo apt-get տեղադրել python3-dev

Սմբուս:

  1. 'sudo raspi-config'"
  2. «Միացման տարբերակներ»
  3. «I2C»
  4. Միացնել
  5. «sudo reboot»
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c- գործիքներ'
  8. 'sudo nano /boot/config.txt'
  9. Որոնեք dtparam = i2c_arm = on և մեկնաբանեք այն ՝ հեռացնելով հեշթեգը:

շիշ

pip3 տեղադրել Flask

mysql միակցիչ

'pip3 install -Iv mysql -connector == 2.1.4'

spidev

'pip3 տեղադրել py-spidev'

դարսկի

'pip3 տեղադրել darkskylib'

Քայլ 6: Փորձիր այն:

Եթե ձեզ հաջողվել է հասնել դրան, ապա թեքեք ձեր մեջքին: Այժմ ամեն ինչ արված է, որպեսզի Ֆենեյրը ճիշտ աշխատի: Այսպիսով, այն փորձարկելու համար մուտքագրեք 'cd ""': Ֆայլի գտնվելու վայրը «/home/pi» է, օրինակ, եթե դուք պարզապես կպցրել եք ձեր տնային գրացուցակում: Այնուհետև մուտքագրեք «python3 main.py» և թողեք 15 րոպե հանգստանա, որպեսզի ավարտելուց հետո այն ունենա տվյալներ տվյալների բազայում: Դրանից հետո սեղմեք 'ctrl + c' stop ծրագիրը դադարեցրեք և մուտքագրեք 'python3 Flask.py': Ձեր կայքը աշխատելու համար անհրաժեշտ է որոնել ձեր Pi- ի IP հասցեով, որը կազմել եք դրանից հետո `« 5000 »(այսպես ՝ 169.254.10.1:5000 '):

Գործարկումից հետո այն ինքնաբերաբար գործարկելու համար.

'sudo nano /etc/rc.local'

Ֆայլի վերջում ԲԱՅ BE ԱՌԱ exit 0 ելքից.

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

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

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