Mundarija:

Haqiqiy vaqtda oqim o'lchovi bilan avtomatik o'tish: 6 qadam
Haqiqiy vaqtda oqim o'lchovi bilan avtomatik o'tish: 6 qadam

Video: Haqiqiy vaqtda oqim o'lchovi bilan avtomatik o'tish: 6 qadam

Video: Haqiqiy vaqtda oqim o'lchovi bilan avtomatik o'tish: 6 qadam
Video: KİTOBNİ QANDAY O'QİSH KERAK ? 2024, Noyabr
Anonim
Haqiqiy vaqtda oqim o'lchovi bilan avtomatik almashtirish
Haqiqiy vaqtda oqim o'lchovi bilan avtomatik almashtirish
Haqiqiy vaqtda oqim o'lchovi bilan avtomatik almashtirish
Haqiqiy vaqtda oqim o'lchovi bilan avtomatik almashtirish
Haqiqiy vaqtda oqim o'lchovi bilan avtomatik almashtirish
Haqiqiy vaqtda oqim o'lchovi bilan avtomatik almashtirish
Haqiqiy vaqtda oqim o'lchovi bilan avtomatik almashtirish
Haqiqiy vaqtda oqim o'lchovi bilan avtomatik almashtirish

Menga avtomatlashtirish juda yoqadi, qachonki biror narsa sodir bo'lishi kerakligini boshqarish qobiliyati. Meni aynan shu g'oya paydo bo'ldi: o'z -o'zidan ishlab chiqarilgan, avtomatik rozetka. Qachon chiroqlarni yoqish kerakligini, telefonlarni zaryad qilish yoki ekranni quvvatlantirishni rejalashtirish uchun foydalanish mumkin. Bularning barchasiga qo'shimcha ravishda, siz rozetkadan qancha oqim o'tayotganini ko'rish qobiliyatiga egasiz.

Ushbu loyiha uchun zarur bo'lgan komponentlar:

Ta'minotlar

Biz boshlashdan oldin, bular, albatta, men kabi Switch-IT qutisini yaratish uchun kerak bo'ladi. Bu etkazib berish sizning mintaqangizga va joriy narxlarga qarab 50 dan 100 evrogacha turadi.

Uskuna

Elektronika

  • Malinali pi 4
  • 16 Gb (yoki undan ko'p) Micro SD-karta
  • Arduino Uno
  • 5V-3.3V darajali o'zgartirgich
  • 5V o'rni moduli
  • ACS712 20A - joriy modul
  • 1838-37,9 kHz chastotali IR-qabul qilgich
  • IR masofadan boshqarish pulti (men Elegoo -dan foydalanaman)
  • umumiy katodli RGB
  • 3 * 330Ω qarshilik
  • tugmani bosish
  • RFID-RC522
  • LCD 1602A-1
  • Niko devor rozetkasi
  • 10K Ω potmetr
  • 230 dan 5V gacha - 7A quvvat manbai

Kabellar

  • USB-B-USB-A kabeli
  • USB-C quvvat kabeli
  • Ethernet kabeli

Har xil

  • Erkak-Ayol jumper simlari
  • Erkak-erkak jumper simlari
  • Lehim qalay
  • Qisqartiruvchi naycha

Maxsus qismlar (ixtiyoriy)

  • 50 * yong'oq va qalin
  • qopqoqli 40x40x5 sm o'lchamdagi metall korpus
  • ikki tomonlama lenta
  • 6 * 1 sm balandlikdagi bo'shliqlar
  • etakchi
  • Velcro lenta
  • kabel qo'llanmalari

Dasturiy ta'minot

  • balenaEtcher:
  • PuTTy
  • rasbiy
  • Visual Studio kodi
  • Arduino IDE

1 -qadam: Rasbian -ni o'rnating

Rasbian o'rnatish
Rasbian o'rnatish
Rasbian o'rnatish
Rasbian o'rnatish

Birinchidan, biz Rasbian-ni SD-kartaga joylashtiramiz. Biz buni balenaEtcher yordamida qilamiz.

  1. BalenaEtcher -ni oching
  2. Rasbian tasvirini tanlang
  3. SD-kartani tanlang
  4. Flash tugmachasini bosib turguncha bir necha daqiqa kutib turing

Yuklash katalogiga APIPA qo'shilishi: RPI sozlamalarini dasturlash va sozlash uchun biz APIPA manzilidan foydalanamiz. Buning uchun:

  1. SD-kartadagi yuklash katalogiga kiring
  2. "Cmdline.txt" ni oching
  3. Hujjatning oxiriga "169.254.10.1" qo'shing va saqlang
  4. Yuklash katalogiga "ssh" deb nomlangan faylni qo'shing (bu faylga kengaytmani bermang)
  5. Buni qilganingizdan so'ng, siz SD -kartani kompyuterdan chiqarib olishingiz mumkin.

PuTTy yordamida RPIga kirish

Endi biz SD -kartani RPI -ga ulashimiz, chekilgan kabel yordamida RPI -ni shaxsiy kompyuteringizga ulashimiz mumkin.

RPI-ga ulanish uchun PuTTy-dan APIPA-manzilimiz bilan foydalanamiz.

  1. PuTTy -ni oching
  2. APIPA manzilimizni xost nomi sifatida to'ldiring (169.254.10.1)
  3. Port 22 va SSH tanlanganligiga ishonch hosil qiling
  4. Endi siz ulanishni ochishingiz mumkin
  5. Odatiy foydalanuvchi nomi: pi
  6. Standart parol bilan: malina

raspi-konfiguratsiya sozlamalari

Raspi-config-ni oching:

sudo raspi-config

  • Foydalanuvchi parolini o'zgartiring
  • Mahalliylashtirish variantlarida vaqt mintaqangizni tanlang
  • Wi-Fi-ni tarmoq parametrlari, keyin SSID va parolni to'ldirish orqali Wi-Fi-ni ishlatib sozlang.

Python 3 -ni o'rnating

Ushbu loyihada biz Python -dan foydalanmoqdamiz, shuning uchun biz quyidagi buyruqlar yordamida Python2 -ni Python3 insteatiga o'rnatamiz.

update-alternatives-install/usr/bin/python python /usr/bin/python2.7 1

update-alternatives-install/usr/bin/python python/usr/bin/python3 2

Python paketlar

Hammasi to'g'ri ishlashi uchun bizga bir nechta paket kerak bo'ladi, asosan Flask paketlari va ma'lumotlar bazasi bilan bog'lanish uchun. Biz paketlarni quyidagi buyruqlar yordamida o'rnatishimiz mumkin:

pip o'rnatish Flask

pip o'rnatish Flask_cors pip o'rnatish Flask_socketio pip o'rnatish Python-mysql-connecton

Ma'lumotlar bazasi

Keyinchalik biz ma'lumotlar bazasini boshqarish tizimini (MariaDB) o'rnatamiz, biz buni quyidagicha bajaramiz.

sudo apt install mariadb-server

Davom etish uchun "Y" ni kiriting va kiriting. Bir necha soniyadan so'ng, o'rnatish jarayoni tugadi va MariaDB deyarli foydalanishga tayyor.

Ma'lumotlar bazasiga parolni o'rnatish uchun buyruqni ishlating:

sudo mysql_secure_installation

Keyin Enter tugmasini bosing, chunki joriy parol bo'sh. Keyin parolni o'rnatish uchun "Y" tugmasini bosing, endi siz xohlagan parolni to'ldirishingiz mumkin, uni eslab qolishingizga ishonch hosil qiling, chunki biz orqa va old tomon o'rtasida to'g'ri aloqa o'rnatishimiz kerak.

Endi "Y" tugmachasini 3 marta bosing: anonim foydalanuvchilarni olib tashlash, masofadan turib ildiz kirishga ruxsat bermaslik va testlar bazasini olib tashlash. Nihoyat, imtiyozlarni qayta yuklash uchun yana "Y" tugmasini bosing.

Endi MariaDB va barcha kerakli paketlar muvaffaqiyatli o'rnatildi.

2 -qadam: Kodni olish va sozlash

Kodni olish va sozlash
Kodni olish va sozlash
Kodni olish va sozlash
Kodni olish va sozlash

Endi bizda barcha paketlar o'rnatilgan bo'lsa, biz kodni olishimiz mumkin.

Kod Github -da mavjud, shuning uchun uni klonlashingiz mumkin:

git klon

Bu frontend

git klon

Bu orqa qism

Ma'lumotlar bazasini o'zi o'rnatish

Ma'lumotlar bazasini o'rnatish uchun quyidagi buyruqlar yordamida orqa papkada joylashgan.sql fayliga o'ting (uni o'z yo'lingizga o'rnatganingizga ishonch hosil qiling.

mysql

mysql -u root -p switchit -dan chiqish uchun ma'lumotlar bazasi kalitini yarating <Your_Path_to_Backend_Repo/switchit.sql

Apache -ni o'rnatish

Endi bizda hamma kod va ma'lumotlar bazasi o'rnatilgandan so'ng, biz Apache-ni o'rnatib, uning orqa qismini ishga tushirishimiz mumkin. Biz buni quyidagicha qilamiz:

apt -get apache2 -y ni o'rnating

Keyin/var/ww/html -dagi fayllarni oldingi papkadagi papkadagi fayllar bilan almashtiring.

Agar hamma narsa yaxshi bo'lsa, siz brauzeringizdagi APIPA manzilidan foydalanib veb -saytingizga ulanishingiz kerak: 169.254.10.1.

3 -qadam: Arduino bilan aloqa

Arduino bilan aloqa
Arduino bilan aloqa

Hozirgi sensori va RFID sensorini o'qish uchun biz arduino ishlatamiz, buning uchun quyida berilgan arduino kodidan foydalaning. Uni USB-A-USB-B kabeli va arduino IDE dasturi yordamida yuklang. Yuklanganida, arduino qismi tugadi.

Endi biz PI -da ketma -ket qurilma nomini topishimiz kerak. Buning uchun /boot/config.txt -da "enable_uart = 1" to'g'ri o'rnatilganligiga ishonch hosil qiling. Bundan tashqari, "console = serial0, 115200" cmdline.txt -dan o'chirilganligiga ishonch hosil qiling.

Keyin portlarni tekshiring

ls -l /dev

Keyin seriya nomlaridan biri Arduino bo'lishi kerak. Bu nomni app.py dagi arduinocom funktsiyasida to'ldiring

ser = serial. Serial ('/dev/ttyS0', 9600)

Buni faqat ketma -ket aloqa ishlamasa bajaring.

4-qadam: Switch-it-ni ulash

Simlarni ulash-bu
Simlarni ulash-bu
Simlarni ulash-bu
Simlarni ulash-bu

Hamma narsani ulash juda oddiy, lekin siz quyidagilarni yodda tutishingiz kerak:

  • Devor rozetkasi bilan ehtiyot bo'ling, 230 volt o'limga olib kelishi mumkin.
  • RPI va Arduino o'rtasidagi aloqa uchun darajali konvertordan foydalanganingizga ishonch hosil qiling.
  • RGBni lehimlashdan oldin, qizil va yashil pinni ishlatganingizga ishonch hosil qiling. Buni oldindan sinab ko'ring!
  • O'chirishdan oldin hech narsa qisqa tutashmaganligini tekshiring.

5 -qadam: Kodni ishga tushirish

Endi hamma narsa to'g'ri ulangan, biz dasturni ishga tushirishimiz mumkin.

Ishga tushganda avtomatik ishga tushirish uchun quyidagi faylni yarating:

sudo nano myscript.service

Keyin joylashtiring (o'zingizning app.py katalogingizdan foydalanganingizga ishonch hosil qiling:

[Birlik] Tavsif = Keyin o'tish = tarmoq.target [Xizmat] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory = // app.py katalogiga o'tish // StandardOutput = irsiy StandardError = meros qilib qayta boshlash = har doim foydalanuvchi = pi [O'rnatish] WantedBy = multi-user.target

Keyin "ctrl + X" tugmachalarini bosing va uni/etc/systemd/system -ga nusxalash.

Keyin quyidagi buyruq avtomatik ravishda ishga tushiriladi:

sudo systemctl myscript.service -ni yoqadi

Bu haqda ko'proq ma'lumotni RaspBerry Pi saytida topishingiz mumkin.

Qayta ishga tushiring va tugadi

Endi PI -ni qayta ishga tushiring:

sudo reboot -h hozir

Siz Switch-it-ni shunday qilasiz!

Kuzatganingiz uchun tashakkur, bu foydali bo'ldi deb umid qilaman. Agar sizda biron bir maslahat yoki fikringiz bo'lsa, sharh qoldirishdan tortinmang.

6 -qadam: (ixtiyoriy) uy -joy

(Ixtiyoriy) uy -joy
(Ixtiyoriy) uy -joy
(Ixtiyoriy) uy -joy
(Ixtiyoriy) uy -joy
(Ixtiyoriy) uy -joy
(Ixtiyoriy) uy -joy
(Ixtiyoriy) uy -joy
(Ixtiyoriy) uy -joy

Siz uyni o'zingiz xohlagan tarzda qurishingiz mumkin. Men 40x40x5 sm qopqoqli metall korpusdan foydalanardim. Men metalldan foydalanganim uchun hamma narsani erdan olib tashlash uchun teshiklarni burg'ulashim kerak edi. Men 5V, 3.3V va gnd mavjud bo'lgan markaziy nuqtadan foydalanishni tanladim. Har bir elektr aloqasi uning ustiga qisqaruvchi naycha bilan lehimlanadi. Kabelni boshqarish uchun men tashuvchi bilaguzukli prokladkalarni ishlatardim.

Tavsiya: