Агуулгын хүснэгт:

Slimbox - ухаалаг Bluetooth чанга яригч!: 10 алхам (зурагтай)
Slimbox - ухаалаг Bluetooth чанга яригч!: 10 алхам (зурагтай)

Видео: Slimbox - ухаалаг Bluetooth чанга яригч!: 10 алхам (зурагтай)

Видео: Slimbox - ухаалаг Bluetooth чанга яригч!: 10 алхам (зурагтай)
Видео: Samsung Level Slim Box - recenzja głośnika |Opinie RTV AGD 2024, Долдугаар сарын
Anonim
Slimbox - ухаалаг Bluetooth чанга яригч!
Slimbox - ухаалаг Bluetooth чанга яригч!

Хөөе!

MCT Howest Kortrijk дахь сургуулийнхаа төслийн хувьд би өөр өөр мэдрэгч бүхий LCD Bluetooth, чанга яригч төхөөрөмж, LCD болон RGB NeoPixel бөгжийг хийсэн. Бүх зүйл Raspberry Pi дээр ажилладаг (мэдээллийн сан, вэбсервер, арын хэсэг).

Тиймээс би энэ төслийг 3 долоо хоногийн дотор хэрхэн алхам алхамаар хийснийг танд үзүүлэх болно.

Энэ бол миний анхны зааварчилгаа юм, хэрэв танд асуулт байвал би аль болох хурдан хариулахыг хичээх болно!

Миний GitHub:

Алхам 1: хангамж

Хангамж
Хангамж
Хангамж
Хангамж
Хангамж
Хангамж

DS18B20 температур мэдрэгч

DS18B20 бол Maxim Integrated-ийн үйлдвэрлэсэн температурыг хэмждэг нэг утастай мэдрэгч юм. 2 төрлийн DS18B20 мэдрэгч байдаг, зөвхөн бүрэлдэхүүн хэсэг (миний ашигладаг байсан), ус үл нэвтрэх хувилбар нь хамаагүй том, гэхдээ энэ нь миний төсөлд хэрэгтэй зүйл биш байсан тул би зөвхөн бүрэлдэхүүн хэсгийг ашигласан. Мэдрэгч нь -55 ° C -аас +125 ° C (-67 ° F -аас +257 ° F) хүртэл температурыг хэмжих боломжтой бөгөөд -10 ° C -аас +85 ° C хүртэл 0.5 ° C нарийвчлалтай байдаг. Түүнчлэн 9 битээс 12 бит хүртэл програмчлагдах нарийвчлалтай.

Мэдээллийн хуудас:

Потенциометрийн мэдрэгч

Потенциометр бол гурван терминал бүхий резистор бөгөөд мэдрэгчийн дээд хэсгийг эргүүлэх замаар гараар тохируулж болно. Дээд хэсгийн байрлал нь потенциометрийн гаралтын хүчдэлийг тодорхойлдог.

LSM303 Accelerometer + Compass Breakout

LSM303 таслах самбар нь Adafruit-ийн үйлдвэрлэсэн гурвалсан тэнхлэг бүхий акселерометр ба соронз хэмжигч / луужингийн хослол юм. Энэ нь Raspberry Pi -ийн I2C интерфэйстэй хэрэглэгддэг.

Тойм:

Мэдээллийн хуудас:

MCP3008

Миний потенциометрийн өгөгдлийг уншихын тулд би MCP3008 -ийг ашигласан бөгөөд энэ нь SPI интерфейстэй дижитал хөрвүүлэгчтэй 8 битийн 10 битийн аналог бөгөөд програмчлахад маш хялбар юм.

Мэдээллийн хуудас:

Чанга яригч - 3 инч диаметртэй - 8 Ом 1 Ватт

Энэ бол хүчдэл ба амперыг тооцоолсны дараа миний сонгосон чанга яригч конус бөгөөд энэ нь Adafruit -ийн үйлдвэрлэсэн миний Raspberry Pi төсөлд төгс тохирсон байв.

Тойм:

MAX98357 I2S ангилал-D моно өсгөгч

Энэ бол чанга яригчтай хамт ирдэг өсгөгч бөгөөд энэ нь өсгөгч төдийгүй I2S дижиталаас аналог хөрвүүлэгч тул миний чанга яригч болон аудио системд төгс тохирно.

Тойм:

Мэдээллийн хуудас:

Ардуино Уно

Arduino Uno бол Arduino.cc-ийн үйлдвэрлэсэн Microchip ATmega328P микроконтроллер дээр суурилсан нээлттэй эх үүсвэр бүхий микроконтроллер самбар юм. Uno самбар нь 14 дижитал тээглүүр, 6 аналог пинтэй бөгөөд Arduino IDE програм хангамжаар бүрэн програмчлах боломжтой.

Тойм:

Түвшин шилжүүлэгч

Энэ бол Arduino Uno ба Raspberry Pi хоёрын хоорондох холбоо, өөр өөр хүчдэл болох Arduino: 5V & Raspberry Pi: 3.3V -ийг хариуцдаг жижиг самбар юм. NeoPixel бөгж нь Arduino -той холбогдсон бөгөөд тэнд ажилладаг бол бусад бүх зүйл Raspberry Pi дээр ажилладаг тул үүнийг хийх шаардлагатай байна.

RGB NeoPixel бөгж

Энэ бол 12 RGB гэрлээр дүүргэсэн жижиг бөгж юм (хэрэв та хүсвэл илүү их RGB гэрэлтэй том бөгж худалдаж авах боломжтой). Энэ нь миний хувьд Arduino Uno -тэй холбогдсон боловч бусад олон төхөөрөмжтэй холбогдож болох бөгөөд ашиглахад үнэхээр хялбар юм.

Тойм:

LCD дэлгэц 16x2

Би температур, эзлэхүүн, IP хаягаа хэвлэхийн тулд үндсэн LCD дэлгэц ашигласан.

Мэдээллийн хуудас:

Raspberry Pi 3B+ ба 16GB SD карт

Миний бүх төсөл Raspberry Pi 3B+ дээр тохируулсан зурагтай ажилладаг бөгөөд үүнийг дараа нь зааварчилгаа өгөхөд тань туслах болно.

GPIO T-Part, 2 Breadboards болон олон тооны холбогч утас

Надад хэрэгтэй бүх зүйлийг холбох самбар, холбогч утас, би GPIO T хэсгийг ашигласан тул надад илүү их зай байгаа бөгөөд аль зүү нь тодорхой байна.

Алхам 2: Схем ба утас

Схем ба утас
Схем ба утас
Схем ба утас
Схем ба утас
Схем ба утас
Схем ба утас

Миний Fritzing -ийг ашигласан схемийн хувьд энэ бол таны суулгаж болох програм бөгөөд энэ нь янз бүрийн үзэл бодлын хувьд маш хялбархан схемийг бий болгох боломжийг олгодог.

Fritzing татаж авах:

Тиймээс бүх зүйлийг зөв холбосон эсэхээ шалгаарай! Миний хувьд утаснуудын өнгө нь схемийнхтэй ижил биш байна.

Алхам 3: Өгөгдлийн сангийн дизайн

Өгөгдлийн сангийн дизайн
Өгөгдлийн сангийн дизайн

Бид холбогдсон 3 мэдрэгчээс маш их мэдээлэл цуглуулж байгаа тул өгөгдөл, мэдрэгчийг хадгалах мэдээллийн сан хэрэгтэй байна. Дараа нь бид Raspberry Pi дээрх өгөгдлийн санг хэрхэн тохируулах, түүнд хэрхэн өгөгдөл оруулахыг харах болно. Гэхдээ эхлээд мэдээллийн баазын дизайн эсвэл ERD (Entity Relationship Diagram) хийх ёстой бөгөөд миний уур амьсгалыг 3NF ашиглан хэвийн болгосон. Тиймээс л бид мэдрэгчүүдийг өөр хүснэгтэд хувааж ID -тай ажилладаг.

Ерөнхийдөө энэ бол цаашид ажиллахын тулд үнэхээр үндсэн бөгөөд хялбар мэдээллийн сангийн загвар юм.

Алхам 4: Raspberry Pi бэлтгэх

Одоо бид төслийн зарим үндсийг хийж дууслаа. Raspberry Pi -ийг эхлүүлцгээе!

SD картны тохиргоо

Нэгдүгээрт, танд зургаа оруулах боломжтой 16 ГБ хэмжээтэй SD карт, эх зургийг SD карт руу оруулах програм хэрэгтэй.

Програм хангамж:

Зургийг эхлүүлэх:

Тиймээс эдгээрийг татаж авсны дараа:

  1. SD картаа компьютер дээрээ тавь.
  2. Дөнгөж татаж авсан Win32 -ийг нээнэ үү.
  3. Та саяхан татаж авсан Raspbian зургийн файлыг сонгоно уу.
  4. SD картынхаа байршилд 'бичих' дээр дарна уу.

Энэ нь таны техник хангамжаас хамаарч хэсэг хугацаа шаардаж магадгүй юм. Үүнийг хийсний дараа бид зургийг RPi -д оруулахаас өмнө эцсийн тохируулга хийхэд бэлэн байна.

  1. SD картынхаа лавлах руу очиж 'cmdline.txt' файлыг хайж олоод нээнэ үү.
  2. Одоо нэг мөрөнд 'ip = 169.254.10.1' нэмнэ үү.
  3. Файлыг хадгална уу.
  4. Өргөтгөл, контентгүйгээр 'ssh' нэртэй файл үүсгээрэй.

Одоо та SD картаа компьютерээсээ аюулгүйгээр гаргаж аваад Raspberry Pi -д хүчгүйгээр оруулах боломжтой. SD карт RPI -д орсны дараа компьютерээсээ LAN кабелийг RPi LAN порт руу холбоно уу.

Одоо бид Raspberry Pi -ээ хянахыг хүсч байна, үүнийг Putty -ээр дамжуулан хийдэг.

Шаваасны програм хангамж:

Татаж авсны дараа Putty програмыг нээж, '169.254.10.1' IP ба '22' порт, SSH холболтын төрлийг оруулна уу. Одоо бид эцэст нь командын шугамын интерфэйсийг нээж, гарааны хэрэглэгчийн мэдээлэл -> Хэрэглэгч: pi & Нууц үг: бөөрөлзгөнө ашиглан нэвтрэх боломжтой боллоо.

Raspi-тохиргоо

sudo raspi-config

Энэ төслийн хувьд үнэхээр чухал зүйл бол интерфэйс хэсэг бөгөөд бид маш олон янзын интерфэйсийг идэвхжүүлж, дараах бүх интерфэйсийг идэвхжүүлэх ёстой.

  • Нэг утас
  • ТХН
  • I2C
  • Цуврал

Raspi-config-ийг хийж дууссаны дараа интернетээр холбогдохыг хичээцгээе.

Wi-Fi холболт

Нэгдүгээрт, та дараах тушаалуудад үндэс байх ёстой

sudo -i

Та root болсны дараа дараах тушаалыг ашиглана уу. SSID бол таны сүлжээний нэр бөгөөд нууц үг нь нууц үг юм.

wpa_passphrase "ssid" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf

Хэрэв та алдаа гаргасан бол энэ файлыг оруулснаар энэ сүлжээг шалгах, шинэчлэх эсвэл устгах боломжтой.

нано /etc/wpa_supplicant/wpa_supplicant.conf

Тиймээс бид сүлжээнд нэвтэрсний дараа WPA клиент интерфэйсийг оруулъя

wpa_cli

Өөрийн интерфэйсийг сонгоно уу

wlan0 интерфэйс

Файлыг дахин ачаална уу

дахин тохируулах

Эцэст нь та сайн холбогдсон эсэхийг харж болно:

ip a

Шинэчлэх, сайжруулах

Одоо бид интернетэд холбогдсон байгаа тул аль хэдийн суулгасан багцуудыг шинэчлэх нь ухаалаг алхам байх тул бусад багцыг суулгахаасаа өмнө үүнийг хийцгээе.

sudo apt-get update

sudo apt-get шинэчлэлт

MariaDB мэдээллийн сан

MariaDB мэдээллийн сангийн серверийг суулгана уу:

sudo apt-get суулгах mariadb-сервер

Apache2 вэб сервер

Apache2 вэб серверийг суулгана уу:

sudo apt install apache2

Python

Python суулгах:

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

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

Python багц

Арын хэсгийг төгс ажиллуулахын тулд та эдгээр бүх багцыг суулгах хэрэгтэй болно.

  • Колбо
  • Колбо-Корс
  • Колбо-MySql
  • Колбо-залгуур
  • PyMySQL
  • Хүсэлт
  • Питон сокет
  • RPi. GPIO
  • Гевент
  • Gevent-вэбсокет
  • Ужсон
  • Wsaccel

Илтгэгчийн номын сан

Adafruit -аас чанга яригчийн номын санг суулгана уу.

curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash

Дахин ачаалах цаг боллоо

sudo дахин ачаална уу

Алхам 5: Манай мэдээллийн баазыг RPi руу инженерчлэх

Бидэнд хэрэгтэй бүх зүйлээ суулгасны дараа Raspberry Pi дээрээ зохион бүтээсэн мэдээллийн баазаа оруулцгаая!

Тиймээс бид эхлээд MySql ажлын талбар дахь мэдээллийн баазаа инженерчлэх хэрэгтэй бөгөөд үүнийг хийхдээ өгөгдлийн сангийнхаа кодыг бүрэн хуулж, доторх "харагдах" бүх үгийг устгах хэрэгтэй. Тиймээс үүнийг хуулж авсны дараа шаваасыг дахин нээж, нэвтэрч, бичнэ үү.

sudo mysql

Одоо та mysql интерфэйсэд байгаа бөгөөд өгөгдлийн сангийнхаа кодыг хуулж оруулаад enter дарна уу.

Одоо бид зөвхөн хэрэглэгч бий болгох хэрэгтэй

"Хэрэглэгч" -ээр тодорхойлогдсон USER 'хэрэглэгч' үүсгэх.

БҮХ ДАВУУ ТАЛААР ХАНГАХ *. * 'Хэрэглэгч';

Одоо дахин ачаална уу.

Тиймээс бүх зүйл одоо тохируулагдсан байх ёстой, та Pi болон MySql Workbench -тэй холболт хийх боломжтой тул хүснэгт дээрх бүх өгөгдлийг шалгах нь илүү хялбар болно.

Алхам 6: Манай RPi дээр Bluetooth -ийг тохируулах

Бид Bluetooth чанга яригч бүтээж байгаа тул энэ нь хэвлэл мэдээллийн хэрэгслийг манай эх сурвалжаас Raspberry Pi руу илгээж байгаа бөгөөд үүнийг маш амархан хийх боломжтой гэсэн үг юм.

Bluetooth холболтын эх сурвалж:

Аль хэдийн ажиллаж байсан bluealsa -г устгаж байна

sudo rm/var/run/bluealsa/*

A2DP профайлыг угаалтуурын дүрд нэмнэ үү

sudo bluealsa -p a2dp -sink &

Bluetooth интерфэйсийг нээгээд bluetooth -ээ асаана уу

bluetoothctl

асаах

Хослуулах агент тохируулах

төлөөлөгч асаалттай байна

анхдагч төлөөлөгч

Таны RPi -ийг илрүүлэх боломжтой болго

дээр илрүүлэх боломжтой

  • Одоо bluetooth төхөөрөмжөөсөө RPi -г хайж, түүнтэй холбогдоно уу.
  • Хоёр төхөөрөмж дээрх хослолыг баталгаажуулж, шаваасандаа 'тийм' гэж бичнэ үү.
  • A2DP үйлчилгээнд зөвшөөрөл өгөөд дахин "тийм" гэж бичнэ үү.
  • Үүнийг хийсний дараа бид төхөөрөмждөө итгэж болох тул бид холбогдохыг хүсэх болгондоо энэ бүхнийг давах шаардлагагүй болно

XX: XX: XX: XX: XX: XX -д итгээрэй (Таны bluetooth mac хаяг манай эх төхөөрөмжөөс)

Хэрэв та өөрийн RPi -ийг үргэлжлүүлэн олж илрүүлэхийг хүсч байвал энэ бол таны өөрийн сонголт, гэхдээ хүмүүс таны хайрцагтай холбогдохыг оролдохгүй байхын тулд би үүнийг дахин унтраахыг илүүд үзэж байна

илрүүлэх боломжтой

Дараа нь бид Bluetooth интерфэйсээсээ гарах боломжтой

гарах

Эцэст нь бидний аудио чиглүүлэлт: манай эх төхөөрөмжийг манай RPi руу дамжуулж байна

bluealsa-aplay 00: 00: 00: 00: 00: 00

Одоо манай төхөөрөмж манай Raspberry -тэй бүрэн холбогдсон бөгөөд та Pi төхөөрөмж дээр эх төхөөрөмжөөсөө медиа тоглуулах боломжтой байх ёстой.

Алхам 7: Бүрэн арын хэсгийг бичих

Тиймээс одоо тохиргоо дуусч, бид эцэст нь арын програмаа бичиж эхлэх боломжтой боллоо!

Би PyCharm -ийг бүхэлд нь ашигладаг байсан тул та PyCharm төсөл нь таны Raspberry Pi -тэй холбогдсон эсэхийг шалгах хэрэгтэй бөгөөд энэ нь таны байршуулах замыг тохиргоонд тохируулсан бөгөөд танд хэрэгтэй бүх багцыг суулгасан гэсэн үг юм. 4.

Би өөрийн ангиудыг ашигладаг байсан бөгөөд эдгээр нь бүгд GitHub -д багтсан болно. Алга болсон тохиолдолд линк нь танилцуулгад байна;)

Миний арын файлд би урсгал хийх ангиудыг ашигладаг байсан тул бүх зүйл нэгэн зэрэг ажиллах боломжтой бөгөөд энэ нь бие биенээ тасалдуулахгүй. Доод талд нь та бүх чиглэлийг авсан тул бид урд талынхаа өгөгдлийг хялбархан авах боломжтой болно.

Алхам 8: Frontend бичих (HTML, CSS & JavaScript)

Одоо арын хэсэг дууссаны дараа бид урд талын хэсгийг бүрэн бичиж эхэлж болно.

HTML & CSS -ийг маш хялбархан хийж, гар утсаараа аль болох их ажиллахыг хичээсэн, учир нь бид ихэнхдээ Bluetooth -ийг хөдөлгөөнт төхөөрөмжөөс холбодог тул гар утасны самбараас удирдах нь илүү хялбар байх болно.

Та хяналтын самбараа хүссэнээрээ зохион бүтээж болно, би кодоо, загвараа энд үлдээе, та дуртай зүйлээ хийж болно!

Javascript нь тийм ч хэцүү биш байсан, миний арын чиглэлээс ирсэн хэдэн GET -тэй, олон тооны үйл явдлыг сонсогчид болон зарим сокетио бүтэцтэй ажилладаг байсан.

Алхам 9: Миний хэргийг үүсгэж, бүгдийг нэгтгэх

Миний хэргийг үүсгэж, бүгдийг нь нэгтгэж байна
Миний хэргийг үүсгэж, бүгдийг нь нэгтгэж байна
Миний хэргийг үүсгэж, бүгдийг нь нэгтгэж байна
Миний хэргийг үүсгэж, бүгдийг нь нэгтгэж байна
Миний хэргийг үүсгэж, бүгдийг нь нэгтгэж байна
Миний хэргийг үүсгэж, бүгдийг нь нэгтгэж байна

Би анх хэргийг хэрхэн яаж харуулахыг хүсч байгаагаа зурсан зургуудаас эхэлж, нэг чухал зүйл бол бид хайрцгийг хийх том хэлхээтэй болсон тул бүх зүйл багтахаар том хэмжээтэй байх ёстой байв.

Би хэргийг модон материалаар хийсэн, хэрэв та байшин барихад тийм ч их туршлагагүй, бас хийж болох олон зүйл байгаа бол ажиллахад хамгийн хялбар гэж бодож байна.

Би дарсны лонхтой хайрцагнаас модоо хөрөөдөөд эхэллээ. Би үндсэн хайрцагтай болсныхоо дараа нүхийг нь өрөмдөж (хайрцагны урд талд маш олон зураг дээр харагдаж байгаа шиг харагдаж байна: P), хадаасаа хадаж хийсэн нь үнэхээр энгийн хэрэг байсан, гэхдээ энэ нь үнэхээр дажгүй харагдаж байна, төгс тохирно.

Тэгээд хэргийг хийсний дараа хамгийн сүүлчийн зураг дээр харж байгаа шиг бүгдийг нэгтгэх цаг болжээ! Энэ нь хайрцаг доторх эмх замбараагүй байдал боловч бүх зүйл ажилладаг бөгөөд надад тийм ч их зай байхгүй байсан тул хэрэв та миний төслийг дахин бүтээж байгаа бол том хайрцаг үүсгэхийг зөвлөж байна.

Алхам 10: Slimbox чанга яригчийг бүтээх замд тулгарч байсан зарим асуудал …

Bluetooth болон bluealsa алдаа

Би хөгжим тоглох эсвэл bluetooth -тэй холбогдохыг хүсэх болгондоо bluetooth болон bluealsa -аас алдаа авдаг байсан. Би энэ талаар бага зэрэг судалгаа хийсэн бөгөөд энэ бол миний асуудлын шийдэл байсан юм. Зарим шалтгааны улмаас миний bluetooth-ийг зөөлөн блоклосон бөгөөд энэ нь стандарт зөөлөн блоклогдсон эсэхийг мэдэхгүй байна. Та үүнийг Putty дээрээ дараах тушаалыг бичиж оруулснаар харж болно.

rfkill жагсаалт

Тиймээс хэрэв энэ нь зөөлөн блоклогдсон бол үүнийг ашиглана уу.

rfkill bluetooth -ийг блокоос гаргах

Үүний дараа та дахин ачаалахыг хүсч магадгүй, миний эх сурвалж:

Цуваа холболтын асуудал

Надад тулгарч байсан бас нэг том асуудал бол Arduino -тай түвшний тохируулагчаар холбогдож чадахгүй байсан юм. Зарим хайлт хийсний дараа миний '/dev/ttyS0' алга болсныг олж мэдсэн бөгөөд энэ нь таны RPi шинэчлэгдсэнтэй холбоотой байж магадгүй юм. Энэ талаар бас шийдэл олсон

Та raspi-config ашиглан цуваа консолыг дахин идэвхжүүлж, дахин ачаалж, "/boot/cmdline.txt" -аас "console = serial0, 115200" битийг гараар устгах хэрэгтэй болно. "Enable_uart = 1" нь 'дотор байгаа гэдгийг баталгаажуулна уу. /boot/config.txt ', дахин ачаална уу. Энэ нь таны ttyS0 порт болон'/dev/serial0 'зөөлөн холбоосыг буцааж авах ёстой.

Эх сурвалж:

Зөвлөмж болгож буй: