Mundarija:
- Ta'minotlar
- 1 -qadam: Rasbian -ni o'rnating
- 2 -qadam: Kodni olish va sozlash
- 3 -qadam: Arduino bilan aloqa
- 4-qadam: Switch-it-ni ulash
- 5 -qadam: Kodni ishga tushirish
- 6 -qadam: (ixtiyoriy) uy -joy
Video: Haqiqiy vaqtda oqim o'lchovi bilan avtomatik o'tish: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
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
Birinchidan, biz Rasbian-ni SD-kartaga joylashtiramiz. Biz buni balenaEtcher yordamida qilamiz.
- BalenaEtcher -ni oching
- Rasbian tasvirini tanlang
- SD-kartani tanlang
- 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:
- SD-kartadagi yuklash katalogiga kiring
- "Cmdline.txt" ni oching
- Hujjatning oxiriga "169.254.10.1" qo'shing va saqlang
- Yuklash katalogiga "ssh" deb nomlangan faylni qo'shing (bu faylga kengaytmani bermang)
- 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.
- PuTTy -ni oching
- APIPA manzilimizni xost nomi sifatida to'ldiring (169.254.10.1)
- Port 22 va SSH tanlanganligiga ishonch hosil qiling
- Endi siz ulanishni ochishingiz mumkin
- Odatiy foydalanuvchi nomi: pi
- 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
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
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
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
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:
Haqiqiy vaqtda suv sathining o'lchagichi: 6 qadam (rasmlar bilan)
Haqiqiy vaqtda quduqdagi suv sathini o'lchash moslamasi: Bu yo'riqnomada qazilgan quduqlarda foydalanish uchun arzon, real vaqtda suv sathini o'lchash moslamasi qanday qurilishi tasvirlangan. Suv sathi o'lchagichi qazilgan quduq ichida osib qo'yish, kuniga bir marta suv sathini o'lchash va ma'lumotlarni WiFi yoki uyali aloqa orqali yuborish uchun mo'ljallangan
Haqiqiy vaqtda quduq suvining harorati, o'tkazuvchanligi va suv sathi o'lchagichi: 6 qadam (rasmlar bilan)
Haqiqiy vaqtda quduq suvining harorati, o'tkazuvchanligi va suv sathi o'lchagichi: Bu yo'riqnomada harorati, elektr o'tkazuvchanligi (EC) va qazilgan quduqlardagi suv sathini kuzatish uchun arzon, real vaqtda suv hisoblagichini qanday qurish kerakligi tasvirlangan. Hisoblagich qazilgan quduq ichiga osib qo'yish, suvning haroratini o'lchash uchun mo'ljallangan, EC va
LightMeUp! Haqiqiy vaqtda o'zaro faoliyat platformali LED chiziqli boshqaruv: 5 qadam (rasmlar bilan)
LightMeUp! Haqiqiy vaqtda o'zaro faoliyat platformali LED chiziqli boshqaruv: LightMeUp! RGB LED-Strip-ni real vaqtda boshqarish uchun men ixtiro qilgan tizim, shu bilan birga narxni past va ishlashni yuqori darajada ushlab turish. Server Node.js-da yozilgan va shuning uchun uni o'zaro ishlatish mumkin, mening misolimda men uzoq muddatli foydalanish uchun Raspberry Pi 3B dan foydalanaman
Haqiqiy vaqtda tezlikni sozlash bilan velosiped simulyatori: 5 qadam
Haqiqiy vaqtda tezlikni sozlash bilan velosiped simulyatori: Ushbu loyiha magnit qamish kalitidan foydalanib, tezlik o'lchagichini yaratadi va YouTube yoki boshqa ommaviy axborot vositalarida velosipedda birinchi odamlarning video tezligini boshqaradi. Arduino milya tezligini hisoblab chiqadi va keyin bu ma'lumotni kompyuter tugmachalarini bosishni taqlid qilish uchun ishlatadi.
Haqiqiy vaqtda MPU-6050/A0 Arduino va Android bilan ma'lumotlarni qayd qilish: 7 qadam (rasmlar bilan)
Arduino va Android bilan MPU-6050/A0 ma'lumotlarini real vaqt rejimida yozish: Men Arduino-ni mashinada o'rganish uchun ishlatishdan manfaatdorman. Birinchi qadam sifatida men Android qurilmasi bilan real vaqtda (yoki unga juda yaqin) ma'lumotlarni ko'rsatish va logger yaratmoqchiman. Men MPU-6050 dan akselerometr ma'lumotlarini olishni xohlayman, shuning uchun men