Mundarija:
- 1 -qadam: Barcha kerakli narsalarni oling
- 2 -qadam: Raspberry Pi -ni tayyorlang
- 3 -qadam: Hammasini bir -biriga ulang
- 4 -qadam: Ma'lumotlar bazasini yarating
- 5 -qadam: Kod vaqti keldi
- 6 -qadam: Sinab ko'ring
Video: Fanair: xonangiz uchun ob -havo stantsiyasi: 6 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Hozirgi ob -havoni bilishning son -sanoqsiz usullari bor, lekin siz faqat tashqaridagi ob -havoni bilasiz. Agar siz uyingiz ichidagi, ma'lum bir xonadagi ob -havo haqida bilmoqchi bo'lsangiz? Men bu loyihani hal qilishga harakat qilaman.
Fanair bir nechta sensorlardan foydalanadi:
- harorat
- namlik
- yorug'lik
- ma'lum gazlar
- havo bosimi
Bu juda ixcham va Raspberry Pi 3 B -dan foydalanadi, qiymatlarni olish, ularni MySQL ma'lumotlar bazasida saqlash va keyin ularni veb -saytga osongina joylashtirish. Veb -sayt tashqi ob -havo ma'lumotlarini tekshirish uchun ishlatilishi mumkin bo'lgan joy va ob -havo ma'lumotlarini olish imkoniyatiga ega.
1 -qadam: Barcha kerakli narsalarni oling
Birinchidan, sizga simlar / o'tish kabellari kabi asosiy elektronika kerak bo'ladi. Agar siz hamma narsani doimiy loyiha sifatida lehimlashni rejalashtirmoqchi bo'lsangiz, demak, sizga lehimlanadigan temir, lehim va o'zingizning qulayligingiz uchun hamma narsani lehimlash uchun tenglikni kerak bo'ladi.
Aniqroq narsalar uchun men ushbu materiallar ro'yxatini tuzdim.
- Malinali Pi 3 B.
- MPC3008-8 kanalli 10 bitli ADC
- AM2301 termometrining harorat va namlik sensori
- WR Rademacher WR-tyoe 930-1 tenglikni
- Prototip uchun ABS qutisi (qora)
- LDR
- MQ135 gaz sensori
- 2x BC517 Darlington tranzistorli
- RGB LED
- Rezistorlar to'plami
- Buzzer
- Simlar
- BMP280 barometri
- Tinch USB -fan (5V)
Hammasi birgalikda bu taxminan 110 evroga tushishi kerak. Umumiy narx taxminiy ekanligini unutmang. Bundan tashqari, mening loyihamda fotosuratda LCD displey bor, lekin u ulanmagan, chunki mening ishimda bo'sh joy etarli emas, shuning uchun u ko'rsatmaga kiritilmagan.
2 -qadam: Raspberry Pi -ni tayyorlang
Raspberry Jessie -ni Pixel operatsion tizimi bilan Raspberry Pi rasmiy saytidan oling va uni yuklab olingandan so'ng uni oching. Siz rasm faylini olasiz. Uni Pi-ga olish uchun uni Win32 Disk Imager yordamida SD-kartaga yozish kerak bo'ladi. O'rnatilgandan so'ng, rasm faylini va siz SD-karta joylashgan diskni tanlang. Keyin yozishni bosing va tugashini kuting.
Ish tugagandan so'ng, Fayl Explorer-dagi SD-kartangizni bosing va "cmdline.txt" nomli faylni oching, rootwaitdan oldin matnli faylning oxiriga o'ting va "ip = 254.169.10.2" deb yozing. Saqlagandan so'ng, deraza ichidagi biror joyni sichqonchaning o'ng tugmasi bilan bosish va "ssh" nomli yangi fayl yaratish kerak. E'tibor bering, bu fayl kengaytmasiga ega emas. Kengaytma yo'qligiga ishonch hosil qilish uchun "Explorer" da "ko'rish" tugmasini bosing va "yashirin fayllar" ni tekshiring. Agar u nomini o'zgartirsa va kengaytmani o'chirib tashlasa, u faqat "ssh" ni o'qiydi.
Bu bajarilgandan so'ng, siz nihoyat SD-kartangizni Raspberry Pi-ga qo'yishingiz mumkin. Ssh mijozini yuklab oling (MobaXterm ni tavsiya qilaman). Va ssh yordamida avval o'rnatilgan "254.169.10.2" IP -ga ulaning. Foydalanuvchi nomi 'pi', parol 'malina'. Agar xohlasangiz, terminalda "sudo passwd" buyrug'ini yozib va ko'rsatmalarga amal qilib, parolni o'zgartirishingiz mumkin. Biz Fanair uchun SD-kartaning yaxshi qismini ishlatmoqchi bo'lganimiz uchun, "Kengaytirilgan imkoniyatlar" ni tanlab, "sudo rapi-config" yozib, keyin "Fayl tizimini kengaytirish" ni tanlab, mavjud xotirani kengaytirishingiz kerak. Agar qayta ishga tushirish so'ralsa.
Biz 1 simli, SPI va I2C interfeysidan foydalanamiz. Ulardan foydalanish uchun avval ularni sozlash kerak!
3 -qadam: Hammasini bir -biriga ulang
O'chirish davri keldi! Birinchi marta siz uni non taxtasida sinab ko'rishingiz kerak, lekin agar bunga vaqtingiz bo'lmasa, uni birga lehimlashga urinib ko'rishingiz mumkin.
Sizga kerak bo'lgan sxema yuqoridagi kabi ko'rinadi, qulaylik uchun non taxtasi versiyasi ham kiritilgan.
4 -qadam: Ma'lumotlar bazasini yarating
Siz olgan barcha ma'lumotlarni samarali saqlash uchun biz TSQL MySQL ma'lumotlar bazasidan foydalanamiz. MySQL -ni o'rnatishdan oldin, terminalda bir nechta buyruqlarni yozib, hamma narsa yangilanganligiga ishonch hosil qilaylik:
- "sudo apt-get update"
- "sudo apt-get upgrade"
- "sudo apt-get dist-upgrade"
"Y" yozib, kiriting.
MySQL -ni o'rnatish uchun:
- "sudo apt-get mysql-serverni o'rnatish"
- "sudo apt-get mysql-client o'rnatish"
Agar so'ralsa, o'zingiz xohlagan parolni yarating.
Kirishni o'rnatish tugagandan so'ng:
mysql -uroot -p
Va parolingizni yozing.
My Github -dan Fanair kodini oling! "Klonlash yoki yuklab olish" ni bosing, so'ng "ZIP -ni yuklab olish" -ni bosing. O'zingiz xohlagan papkada kodni oching. To'liq ishlaydigan ma'lumotlar bazasini yaratish so'rovi ma'lumotlar bazasi papkasida. Faylni oching, kod nusxasini oling va terminalga MySQL ochiq holda joylashtiring. Keyin Enter ni bosing va ma'lumotlar bazasi tugadi!
5 -qadam: Kod vaqti keldi
Barcha sensorlardan foydalanish uchun, albatta, dasturni ishga tushirish kerak. Yaxshiyamki, kod allaqachon bajarilgan (ko'pincha) va biz ma'lumotlar bazasi SQL so'rovini olganda uni allaqachon yuklaganmiz.
Aytganimdek, dasturning to'g'ri ishlashi uchun hali ham ba'zi narsalarni o'zgartirish / qo'shish kerak. Birinchidan, dastur uzunlik va kenglik bo'yicha ob -havo ma'lumotlarini olish uchun Darksky API -dan foydalanadi. Undan foydalanish uchun siz ro'yxatdan o'tishingiz kerak. Birinchi 1000 ta qo'ng'iroq bepul va keyin har bir qo'ng'iroq uchun $ 0,0001 turadi. Agar siz to'lamasangiz, hisobingiz bloklanadi, deb eshitdim. Rostini aytsam, har bir qo'ng'iroq uchun $ 0.0001 juda arzon. Fanair har soatda eng so'nggi ma'lumotlarni chaqiradi, bu shuni anglatadiki, agar bir yil ichida to'liq ishlasa, bu sizga atigi 0,876 dollar turadi. Agar Fanair to'liq vaqtda ishlasa, siz 41 kun bepul olasiz.
Ro'yxatdan o'tgandan so'ng, API kalitini qidiring. Google xaritalaridan joylashuvingizning uzunlik va kengliklarini qidiring yoki uni google orqali tekshirishga harakat qiling. Yangi matnli faylni Fanair -ning asosiy katalogini yarating (sinflar bilan, main.py …). Faylga 'key_location.txt' nomini bering. Matn faylini oching va birinchi qatorga Darkskiy API kalitini qo'ying. Ikkinchi satrda uzunlikni va uchinchi qatorda kenglikni joylashtiring (ikkalasi ham o'nlik formatda). Ishingiz tugagach, faylni saqlang.
Xuddi shu katalogda 'database_dsn.txt' nomli boshqa matnli fayl yarating. Birinchi qatorda "localhost" deb yozish kerak. Ikkinchi qator - "ildiz". Uchinchi qatorga ma'lumotlar bazasi uchun avval tuzgan parolingizni, to'rtinchi va oxirgi qatorga 'fanair' yozishingiz kerak.
Main.py faylini o'ng tugmasini bosing va tahrirlashni tanlang. 'Fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' ni o'zgartirish kerak. Agar siz rasmga amal qilgan bo'lsangiz, birinchi 5 qiymat "5, 26, 17, 27, 22, 4" dan "20, 21, 26, 19, 13" ga o'zgartirilishi kerak. '/home/muhsin/Applications/Fanair' ham Fanair ildiz yo'liga o'zgartirilishi kerak (bu erda main.py). "Uy" oldiga chiziq qo'yganingizga ishonch hosil qiling, lekin "Fanair" dan keyin emas.
Endi bu juda yaxshi, lekin kod Pi -ga kirishi kerak. Yaxshiyamki, biz uchun sftp protokoli mavjud. Fayllarni Pi -ga joylashtirish uchun FileZilla kabi sftp mijozidan foydalaning yoki agar siz MobaXterm -dan foydalanishga qaror qilgan bo'lsangiz, siz fayllarni terminalning chap tomonidagi sftp interfeysiga osongina yuklashingiz mumkin.
Mening tajribamda men har doim Raspberry Pi -da to'g'ri sana va vaqtni topa olmayman. To'g'ri vaqtni olishingizga ishonch hosil qilish uchun men ushbu qo'llanmani bajarishni taklif qilaman: Raspberry Pi sinxronlash sanasi va vaqti.
Va nihoyat, bir nechta kutubxonalarni o'rnatish va bir nechta interfeyslarni faollashtirish kerak:
sudo apt-get install build-essential python-dev
Adafruit DHT:
'pip3 o'rnatish adafruit_python_dht'
1-simli:
- "sudo raspi-config"
- "Interfeys imkoniyatlari"
- '1 sim'
- Yoqish
- "sudo nano /boot/config.txt"
- Faylga ushbu qatorni qo'shing: 'dtoverlay = w1-gpio'
- "sudo qayta ishga tushirish"
SPI:
- "sudo raspi-config"
- "Interfeys imkoniyatlari"
- "SPI"
- Yoqish
- "sudo qayta ishga tushirish"
- "sudo nano /boot/config.txt"
- "Dtparam = spi = on" ni qidiring va xeshtegni olib tashlash orqali izoh qoldiring.
- sudo apt-get install python3-dev
Smbus:
- "sudo raspi-config"
- "Interfeys imkoniyatlari"
- "I2C"
- Yoqish
- "sudo qayta ishga tushirish"
- "sudo apt-get install -y python-smbus"
- "sudo apt-get install -y i2c-tools"
- "sudo nano /boot/config.txt"
- Dtparam = i2c_arm = on ni qidiring va xeshtegni o'chirib tashlab, izoh qoldiring.
kolba
pip3 Flaskni o'rnating
MySQL ulagichi
'pip3 install -v mysql -ulagichi == 2.1.4'
spidev
"pip3 py-spidev-ni o'rnating"
qorong'i
'pip3 darkskylib -ni o'rnating'
6 -qadam: Sinab ko'ring
Agar siz hozirgacha bunga erishgan bo'lsangiz, o'zingizni orqangizga bosing. Endi hamma narsa Fanairning to'g'ri ishlashi uchun qilingan. Buni tekshirish uchun 'cd ""' yozing. Fayl joylashuvi "/home/pi" dir, masalan, agar siz faqat uy katalogingizga joylashtirgan bo'lsangiz. Keyin "python3 main.py" ni kiriting va 15 daqiqaga qoldiring, shunda u bajarilganda ma'lumotlar bazasida ma'lumotlar bo'ladi. Shundan so'ng, "ctrl + c" tugmachalarini bosib dasturni to'xtating va "python3 Flask.py" yozing. Sizning veb -saytingiz ishlayaptimi yoki yo'qligini bilish uchun siz Pi: "5000" bilan IP manzilingizga kirishingiz kerak (masalan: 169.254.10.1:5000 ').
Yuklashdan keyin uni avtomatik ravishda ishga tushirish uchun:
"sudo nano /etc/rc.local"
Fayl oxirida, lekin 0 chiqishidan oldin:
'sudo python3 "/main.py" &'
"sudo python3" /Flask.py "va"
Sizni tabriklaymiz, siz skriptni ishga tushirishdan boshlashingiz kerak va siz bajargansiz! Agar siz loyihani davom ettirishni rejalashtirmoqchi bo'lsangiz va hali hammasi joyida qolishiga ishonch hosil qilish uchun men sizga hamma narsani bir -biriga lehimlashni taklif qilaman. Agar siz uni aylantirish uchun o'ynamasangiz, albatta, non paneli ham ishlaydi.
Tavsiya:
SmartBox - xonangiz uchun aqlli uy tizimi: 6 qadam
SmartBox - Sizning xonangiz uchun aqlli uy tizimi: Hammaga salom! Men sizga aqlli xona tizimini qanday yasashni tushuntiraman. Bu tizim ikkita qurilmani o'z ichiga oladi: namlik sensori va harorat sensori bo'lgan umumiy qurilma, bu sizning xonangizdagi hayot sifatini o'lchaydi. Siz
MQTT va AWS -ga asoslangan shamol sörfü uchun shamol stantsiyasi: 3 qadam (rasmlar bilan)
MQTT & AWS -ga asoslangan shamol sörfü uchun shamol stantsiyasi: Shenchjenda juda chiroyli plyaj bor. Yoz kunlarida men suzishni yaxshi ko'raman. Yelkanli sport uchun men hali ham boshlang'ichman, menga dengiz suvining yuzimga tekkanini yoqtiraman va yana shu sport turi bilan ko'plab yangi do'stlarim bor
Arduino bilan ishlaydigan chang zarralarini nazorat qilish stantsiyasi: 4 qadam (rasmlar bilan)
Arduino bilan ishlaydigan chang zarralarini kuzatish stantsiyasi: Siz o'zingizning uyingizdagi changning ifloslanishini 50 dollardan past narxda kuzatib boradigan asboblarni o'z qo'llaringiz bilan Internet -tarmog'ini osongina qura olasiz va chang darajasi juda yuqori bo'lganda xonani ventilyatsiya qilishingiz mumkin. tashqarida va agar shunday bo'lsa, sizga xabar bering
Vaqt o'tishi bilan rasmlar uchun kamera osonlashtirildi: 22 qadam (rasmlar bilan)
Vaqt o'tishi bilan suratga olish uchun kamera osonlashtirildi. Men boshqa ko'rsatmalarni vaqtni tez suratga olish filmlarini suratga olishni tekshirib ko'rdim. U kino qismini juda yaxshi yoritgan. U filmlar yaratish uchun yuklab olishingiz mumkin bo'lgan bepul dasturiy ta'minot haqida gapirib berdi. Men o'z -o'zimga aytdim, men o'ylaymanki, agar men qila olsam
Yotoqxona elektr stantsiyasi/NiMH zaryadlash stantsiyasi: 3 qadam
Yotoqxona elektr stantsiyasi/NiMH zaryadlash stantsiyasi: Menda elektr stantsiyasi bor. Men bitta dastgohga zaryadlangan hamma narsani siqib chiqarmoqchi edim va unda lehimlash uchun joy bo'lishi kerak edi. Quvvatli narsalar ro'yxati: uyali telefon (buzilgan, lekin u mening telefonim batareyalarini zaryad qiladi, shuning uchun u har doim ulanadi va zaryadlanadi)