Mundarija:
- 1 -qadam: komponentlar
- 2 -qadam: simlarni ulash
- 3 -qadam: ma'lumotlar bazasi sxemasi
- 4 -qadam: Arduino Nano -ni sozlang
- 5 -qadam: Raspberry Pi -ni sozlang
- 6 -qadam: Uy -joy + zal
- Uy -joy
- Zal effekti sensori
- 7 -qadam: dasturni ishga tushirish
Video: Skate-o-metr: 7 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Men Howest Kortrijk talabasiman. Loyihani tuzishimiz kerak bo'lgan o'qituvchilarga o'z mahoratimizni ko'rsatish uchun men skeytbordim uchun RFID skaneri bilan odometr va tezlik o'lchagichni yaratishni tanladim. Men bu loyihani qanday amalga oshirganimni aytib beraman.
Men konkida uchishni va sayr qilishni yaxshi ko'rganim uchun shunday fikrga keldim. Men sayohat qilayotganimda, qancha masofani bosib o'tganimni va tezligimni ko'rish juda qulay bo'lardi.
Shuni yodda tutingki, bu prototip.
1 -qadam: komponentlar
Komponentlar
Men ushbu loyihani yaratish uchun quyidagi komponentlardan foydalandim:
- Skeytbord
- Potentsiometr
- LCD
- Zal effekti sensori
- 10k Ohm qarshilik
- Malinali pi
- Arduino Nano
- Jumper sim (urg'ochi - erkak)
- Jumper sim (Raspberry Pi)
- Jumper sim (erkakdan erkakgacha)
- PCB
- RFID skaneri
- RFID belgisi
- Powerbank
Havolalar va narxlar uchun BillOfMaterials -ga qarang
2 -qadam: simlarni ulash
Zalda 3 ta pin bor: VCC, GND va chiqish, er GND ga o'tadi. VCC 3.3V ga va bu misoldagi chiqish GPIO 26 ga o'tadi. 10K Ohmli rezistor chiqishni yuqori tortadi.
Nishonlarni o'qish uchun men malina pi va arduino nano o'rtasida USB orqali ketma -ket muloqotdan foydalanaman. Bu rasmda emas, lekin kerak!
D9 RST (Reset) D10 SDA (SS) (SPI SS) D11 MOSI (SPI MOSI) D12 MISO (SPI MISO) D13 SCK (SPI SCK) GND GND3.3V 3.3V
3 -qadam: ma'lumotlar bazasi sxemasi
Mening ma'lumotlar bazamda 3 ta jadval mavjud:
- Foydalanuvchilar
- Sessiya
- Ma'lumotlar
Har bir foydalanuvchi ma'lumotlarni alohida kuzatishi mumkin. Sessiyada ma'lumotlar bor, shuning uchun sessiya davom etayotgan vaqtda siz qanday tezliklarga erishganingizni bilasiz.
4 -qadam: Arduino Nano -ni sozlang
Avval arduino nano -ni USB kabeli orqali kompyuteringizga qo'ying. Yuklash uchun to'g'ri arduino va to'g'ri USB portini tanlang.
Keyin RFID nishonini o'qish uchun foydalanadigan kutubxonani qo'shishimiz kerak. "Rfid-master" ni yuklab oling va eskizga o'ting, kutubxonani qo'shing va keyin. ZIP kutubxonasini qo'shing. Yangi yuklab olingan zip -ga o'ting va uni ishlating, u avtomatik ravishda o'rnatiladi. Shundan so'ng, mening "RFID_Read.ino" tahririni yuklayman, bir vaqtning o'zida ctrl + O tugmachasini bosing va ushbu faylga o'ting va uni oching.
Agar siz yuqorida ko'rsatilgan barcha amallarni bajargan bo'lsangiz, faylni tekshirishingiz mumkin. Agar u birinchi marta xato qilsa, yana bir bor urinib ko'ring. Agar bu muvaffaqiyatli bo'lsa, uni arduino -ga yuklashingiz mumkin. Ctrl+shift+m yorliqlaridan foydalanib, ketma -ket monitorni ochishingiz mumkin. Siz bu erda faylni sinab ko'rishingiz mumkin. Agar test muvaffaqiyatli bo'lsa, arduino -ni ajratib, uni malina pi -ning USB portiga ulashingiz mumkin.
5 -qadam: Raspberry Pi -ni sozlang
Ushbu bosqichlarda biz malina pi ni ma'lumotlar bazasi va veb -server sifatida o'rnatamiz.
Bu misolda men "men" foydalanuvchisini ishlataman, agar siz boshqa foydalanuvchidan foydalansangiz, konfiguratsiya fayllarini o'zgartirish kerak, buni yodda saqlang!
1. Foydalanuvchi yarating:
O'zgaruvchini yarating
pieter@rpipieter: ~ $ user = men
Foydalanuvchini sudo qilish va barcha guruhlarga qo'shish
guruhlar = $ (id pi -Gn | sed 's /^pi // g' | sed 's / /, /g') sudo useradd $ {user} -s /bin /bash -m -G $ {groups} sudo sed "s/^pi/$ {user}/" /etc/sudoers.d/010_pi-nopasswd | sudo tee "/etc/sudoers.d/011_${user}-nopasswd" sudo passwd $ {user}
Hisobga kiring
pieter@rpipieter: ~ $ su - men
Parol: men@my-rpi: ~ $
2. Wi -Fi tarmog'iga ulaning
me@rpipieter: ~ $ sudo -iroot@rpipieter: ~# echo 'Parol' | wpa_passphrase 'Tarmoq nomi' >> /etc/wpa_supplicant/wpa_supplicant.conf root@rpipieter: ~# wpa_cli -i wlan0 root@rpipieter -ni qayta sozlang: ~# chiqish
Internet ishlayotganligini tekshiring
root@rpipieter: ~# wget google.com
3. Malina pi ni dolzarb qilish va kerakli paketlarni o'rnatish
me@my-rpi: ~ $ sudo apt yangilanishi
me@my-rpi: ~ $ sudo apt up me@rpipieter: ~ $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3 gitme@my-rpi: ~ $ sudo qayta ishga tushiring -h
4. Mening github omborini klonlash
men@rpipieter: ~ $ git klon
me@rpipieter: ~ $ CD skate-o-meter/skateometer/
5. Virtual muhitni yaratish
Bu buyruqlar bajarilganda, ko'plab paketlar o'rnatiladi, bunga biroz vaqt ketishi mumkin.
me@rpipieter: ~/skate-o-meter/skateometer $ python3 -m pip o'rnatish-pip setuptools g'ildiragini virtualizatsiya qilish
me@rpipieter: ~/skate-o-meter/skateometer $ python3 -m venv --system-site-packages env (env) me@rpipieter: ~/skate-o-meter/skateometer $ python -m pip mysql- ni o'rnatish ulagich-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-ulagich-python passlib pyserial pyjwt RPi. GPIO
6. Ma'lumotlar bazasini va foydalanuvchilarni yaratish
Biz MySQL ma'lumotlar bazasidan foydalanmoqdamiz
pieter@rpipieter: ~/skate-o-meter/skateometer $ cd
pieter@rpipieter: ~ $ sudo mysql
Keyin nusxa ko'chiring, joylashtiring
GRANT SELECT, INSERT, UPDATE, O'CHIRISH *. * TO 'som-data'@'localhost' ga; 'som-data'@'localhost' = PASSWORD ('sensor9810') uchun parolni o'rnating; mysql.user -dan * ni tanlang; 'Som9-admin'@'localhost' Foydalanuvchisini 'admin9810' tomonidan aniqlang; 'Som9-web'@'localhost' USET 'WEB9810' BILAN ISHLAB CHIQARING; "Som-sensor"@'localhost' identifikatori 'sensor9810' foydalanuvchisini yarating; Ma'lumotlar bazasini yaratish skateometerdb; Skateometerdb-dagi barcha imtiyozlarni berish.* Dan 'som-admin'@'localhost' ga GRANT OPSIYASI BILAN; GRANT SELECT, INSERT, UPDATE, O'chirish skateometerdb.* TO 'som-web'@'localhost' ga; GRANT SELECT, INSERT, UPDATE, O'chirish skateometerdb.* TO 'som-sensor'@'localhost'; YUQARISH IMKONIYATLARI;
Keyin biz aloqalar bilan mavjud ma'lumotlar bazasi sxemasini qo'shamiz.
me@rpipieter: ~/skate-o-meter/skateometer $ sudo mysql <sql/skateometerdb_dump-withoutdata.sql
7. Xizmatlar
Bu erda biz konfiguratsiya fayllarimizdan nusxa ko'chiramiz va xizmatlarni yoqish uchun papkani qayta yuklaymiz
me@rpipieter: ~/skate-o-meter/skateometer $ sudo cp conf/som-*. service/etc/systemd/systemme@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl daemon-reload
Endi biz malina pi ni har safar boshlaganimizda, u avtomatik ravishda ishga tushishi uchun xizmatlarni yoqamiz.
me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl som-flask.service-ni yoqadi
Symetlink /etc/systemd/system/multi-user.target.wants/som-flask.service → /etc/systemd/system/som-flask.service yaratildi. me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl som-data.service-ni yoqish symlink /etc/systemd/system/multi-user.target.wants/som-data.service →/etc/systemd/ system/som-data.service. me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl start som-data.service me@rpipieter: ~/skate-o-meter/skateometer $ sudo systemctl start som-flask.service
8. NGINX
me@rpipieter: ~/skate-o-meter/skateometer $ sudo cp conf/nginx/etc/nginx/sites-available/skateometerme@rpipieter: ~/skate-o-meter/skateometer $ sudo rm/etc/nginx/sites -enabled/default me@rpipieter: ~/skate-o-meter/skateometer $ sudo ln -s/etc/nginx/sites-available/skateometer/etc/nginx/sites-enabled/skateometerme@rpipieter: ~/skate-o -metr/skateometer $ sudo systemctl nginx.service -ni qayta ishga tushiring
6 -qadam: Uy -joy + zal
Uy -joy
Birinchidan, men skeytbordda LCD, potansiometr va buzzer uchun teshik qildim. Shundan so'ng, men LCD, potentsiometr va tenglikni lehim qildim. Keyin men 40 pinli RPI uchun o'tish simidan foydalanardim. Men bir tomonini malina pi ga qo'ydim, ikkinchi yarmini kesib tashladim, biz bu tomonni lehimlash uchun ishlatamiz. "Rpi-kabel" faylida siz qaysi simni lehimlashingiz kerakligini ko'rishingiz mumkin.
Qopqoq uchun men eski burilish qutisini ishlatardim, unga chekilgan kabel va qutiga o'tish simlari kirishi uchun teshiklar qo'ydim.
Men qutini skeytbord ostidagi vint bilan ushlab turaman. Qutiga men hamma narsani joylashtirdim, shuning uchun hammasi joyida bo'lishi uchun vintlardek va kauchuklardan foydalanardim. Bu narsalarni olib tashlashni osonlashtiradi.
RFID qutining yoritilgan joyiga o'rnatiladi va uni ziptirlar bilan ushlab turadi, men duch kelgan muammo shundaki, ba'zida u skaner qilmagan, lekin ba'zi o'zgarishlar bilan men uni ishlaganman.
Zal effekti sensori
Avval g'ildiragimni teshib, ichiga magnit qo'ydim.
Zal uchun 3 ta o'tish simlari ishlatiladi (erkakdan erkakgacha), men ularni tenglikni lehimlab qo'ydim, shuningdek zalning o'zida. Men yuk mashinamga ziptirlar bilan zal sensori o'rnatdim. Magnit va sensorning to'g'ri hizalanganligiga ishonch hosil qiling, aks holda u har doim ham pulsni qayd etmaydi.
7 -qadam: dasturni ishga tushirish
1 -qadam:
Malinani va quvvat bankini ulang.
2 -qadam:
Dastur boshlanishini kuting, buni LCD displeyda kuzatishingiz mumkin. Siz IP-manzilni ko'rasiz, bu IP-manzilga o'ting.
3 -qadam:
Foydalanuvchi yarating, buni ro'yxatdan o'tish orqali qilishingiz mumkin. Belgining UIDini LCD displeyda ko'rish uchun siz nishonni skanerlashingiz kerak.
4 -qadam:
Agar siz foydalanuvchi yaratgan bo'lsangiz, nishoningizni skanerlashingiz mumkin va sessiya boshlanadi.
5 -qadam:
Atrofda sayohat qiling
6 -qadam:
Seansni to'xtatish uchun nishonni qayta skanerlang
7 -qadam:
Sessiya va batafsil ma'lumotlarni ko'rish uchun tizimga kiring
Tavsiya:
Batareya bilan ishlaydigan ofis. Quyosh panellari va shamol turbinasi: Sharq/G'arbni avtomatik almashtirish bilan quyosh tizimi: 11 qadam (rasmlar bilan)
Batareya bilan ishlaydigan ofis. Quyosh tizimi Sharq/G'arbning avtomatik panellari va shamol turbinasi bilan almashinuvi bilan: Loyiha: 200 kvadrat metrli ofis batareyali bo'lishi kerak. Ofis, shuningdek, ushbu tizim uchun zarur bo'lgan barcha tekshirgichlar, batareyalar va komponentlarni o'z ichiga olishi kerak. Quyosh va shamol energiyasi batareyalarni zaryad qiladi. Faqat kichik muammo bor
LED muzli skate qanday qilish kerak: 6 qadam (rasmlar bilan)
Muzli konkida LEDni qanday yasash mumkin: men muz konkisiga neopikselli LEDlarni qo'ydim. Har safar Arduino platasiga ulangan mikrofon har qanday shovqinli ovozni eshitadi. LEDlarga turli xil signallarni yuboradi. Buni qilish oson, hatto yangi boshlanuvchilar uchun ham. Men kodlar va ko'rsatmalar bilan bo'lishdim. Kel urinib ko'ramiz
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan amalga oshirildi: 8 qadam (rasmlar bilan)
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'lga qo'yildi: 1 yil davomida 2 xil joyda muvaffaqiyatli ishlaganimdan so'ng, men quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasining loyiha rejalari bilan bo'lishaman va uning qanday qilib uzoq vaqt yashay oladigan tizimga aylanganini tushuntiraman. quyosh energiyasidan o'tgan davrlar. Agar ergashsangiz
Twinky bilan eng zo'r Arduino robot bilan tanishing: 7 qadam (rasmlar bilan)
Twinky bilan eng zo'r Arduino roboti bilan tanishing: Salom, men sizga "Jibo" ni o'zim qanday yaratganimni o'rgataman. lekin "Twinky" deb nomlangan, men buni ochib bermoqchiman … Bu nusxa emas! Men ikkiyuzlamachilik bilan qurardim va shundan keyingina shunga o'xshash narsaning mavjudligini tushundim: bu erda
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