Mundarija:

Fanair: xonangiz uchun ob -havo stantsiyasi: 6 qadam (rasmlar bilan)
Fanair: xonangiz uchun ob -havo stantsiyasi: 6 qadam (rasmlar bilan)

Video: Fanair: xonangiz uchun ob -havo stantsiyasi: 6 qadam (rasmlar bilan)

Video: Fanair: xonangiz uchun ob -havo stantsiyasi: 6 qadam (rasmlar bilan)
Video: Life in UZBEKISTAN, The Paradise and CHEAPEST Country You Will Love 2024, Noyabr
Anonim
Fanair: Sizning xonangiz uchun ob -havo stantsiyasi
Fanair: Sizning xonangiz uchun ob -havo stantsiyasi

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

Barcha kerakli narsalarni oling
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

Hamma narsani bir -biriga ulang
Hamma narsani bir -biriga ulang
Hamma narsani bir -biriga ulang
Hamma narsani 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:

  1. "sudo raspi-config"
  2. "Interfeys imkoniyatlari"
  3. '1 sim'
  4. Yoqish
  5. "sudo nano /boot/config.txt"
  6. Faylga ushbu qatorni qo'shing: 'dtoverlay = w1-gpio'
  7. "sudo qayta ishga tushirish"

SPI:

  1. "sudo raspi-config"
  2. "Interfeys imkoniyatlari"
  3. "SPI"
  4. Yoqish
  5. "sudo qayta ishga tushirish"
  6. "sudo nano /boot/config.txt"
  7. "Dtparam = spi = on" ni qidiring va xeshtegni olib tashlash orqali izoh qoldiring.
  8. sudo apt-get install python3-dev

Smbus:

  1. "sudo raspi-config"
  2. "Interfeys imkoniyatlari"
  3. "I2C"
  4. Yoqish
  5. "sudo qayta ishga tushirish"
  6. "sudo apt-get install -y python-smbus"
  7. "sudo apt-get install -y i2c-tools"
  8. "sudo nano /boot/config.txt"
  9. 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: