
Агуулгын хүснэгт:
- Алхам 1: Материал
- Алхам 2: Цахилгаан хэлхээ
- Алхам 3: Мэдрэгчдийг кодлох
- Алхам 4: Мэдрэгчийг бэлтгэх, байрлуулах
- Алхам 5: Матрицын модулийг бэлтгэх, байрлуулах
- Алхам 6: Үүнийг IoT болгох
- Алхам 7: Raspberry Pi -ийг холбох
- Алхам 8: Өгөгдлийн санг тохируулах
- Алхам 9: Вэбсайт үүсгэх
- Алхам 10: Дэлхийн сүлжээнд холбогдох
- Алхам 11: дуусгах
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00

Шинэ медиа, харилцаа холбооны технологийн оюутны төслийн нэг хэсэг болох фоксболын ширээний миний хувилбарт тавтай морилно уу. Би үндсэндээ хөл бөмбөг, бассейны ширээний эргэн тойронд өссөн тул эдгээр төхөөрөмжүүдийн аль нэгийг интернетэд холбох нь зүйтэй гэж бодсон.
Үндсэн тохиргоо нь Raspberry Pi -тэй холбогдсон фосболын ширээг ашиглах бөгөөд энэ нь дараахь бүх ажлыг хийх боломжтой юм.
- IR LED/хүлээн авагч болон 8x8 цэг матрицын модулийг жолоодохын тулд GPIO зүү ашигладаг
- Nginx ашиглан Flask вэбсайт ажиллуулдаг
- Өгөгдөл хадгалах MySQL/MariaDB мэдээллийн санг ажиллуулдаг
Энэхүү төслийг дахин бүтээхийн тулд танд дараах чадварууд хэрэгтэй болно.
Арын хэсэг:
- Вэбсайт үйлчлүүлэгчийн хувьд HTML/CSS/Javascript -ийг ойлгох
- Вэбсайтын серверийн тал дээр Python-ийг Flask/Flask-SocketIO/Jinja2 ашиглан ойлгох.
- MySQL -ийн үндсэн мэдлэг
- Вэб сервер хэрхэн ажиллуулахаа мэддэг байх
Прототип
- Цахилгаан хэлхээг утсаар холбох үндсэн мэдлэг
- Гагнах
- Python дээр скрипт хэрхэн бичих талаархи үндсэн ойлголт
- Линукс дээр ажиллах (Raspbian)
- Маш их дибаг хийх шаардлагатай болно
Алхам 1: Материал
Хүснэгтэнд шаардлагатай бүх хэсгүүдийн жагсаалтыг энд оруулав.
- Raspberry Pi Model 3 (бүрхүүлтэй)
- Пи-г талхны самбарт холбох зориулалттай T-Cobbler
- Хөл бөмбөгийн ширээ (Би үүнтэй төстэй маш хуучин ширээ ашигласан. Нүх өрөмдөхөд бэлэн байх ёстой)
- MAX7219 Arduino цэг матрицын модуль (2)
- IR LED ялгаруулагч (2+ нь эвдэрдэг, үүнтэй төстэй)
- IR хүлээн авагч (2+, учир нь тэд бас эвддэг, үүнтэй адил)
- Үндсэн гагнуургүй талхны хавтан
- Маш олон утас (бөмбөгний ширээний хэмжээнээс хамаарна)
- эрэгтэй холбогч (30+)
- эмэгтэй холбогч (10+)
- 100-220 Ом эсэргүүцэл (4+)
- гагнуурын материал
- утас оосор
- LED эзэмшигч
- Бөмбөгийг ховилд оруулахыг хүсвэл зарим мод/эрэг
Энэ төслийн нийт өртөг нь таны хөл бөмбөгийн ширээний өртөгөөс (үнэтэй) хамаарна. Хүснэгтээс гадна материал нь хамгийн ихдээ 150 евро байх болно.
Алхам 2: Цахилгаан хэлхээ



Гагнахаасаа өмнө бүх бүрэлдэхүүн хэсгүүдийг угсарч, би үүнийг талхны самбар дээр туршиж үзэхийг зөвлөж байна. Алдагдсан эд ангиудыг хэдэн цагийн турш гагнахаас өмнө солих нь илүү хялбар байдаг.
Эхэндээ би 74HC595 ээлжийн регистр (анхны зураг) болон транзисторын массив бүхий 8x8 LED матрицыг хэрэгжүүлэхийг оролдсон боловч олон утас, маш бага гаралтын улмаас MAX7219 цэг матрицын модульд шилжсэн, учир нь энэ нь зөвхөн 5 утас шаарддаг бөгөөд шууд удирддаг. SPI автобус.
Миний эцэст нь ашигласан хэлхээг Fritzing ашиглан зурсан болно. IR LED ба хүлээн авагчийг үнэгүй GPIO зүүтэйгээ холбох боломжтой гэдгийг анхаарна уу.
IR хүлээн авагч ба LED нь бие биентэйгээ шууд харьцах ёстой бөгөөд LED -ийн дээд хэсгийг хүлээн авагч руу чиглүүлэх ёстой. Учир нь бид бөмбөгний хөдөлгөөнөөр таслагдах шууд туяаг дуурайхыг хүсч байгаа бөгөөд энэ тохиолдолд хүлээн авагчийн DATA шугам 0 -ээс 1 болж өөрчлөгдөх болно.
Алхам 3: Мэдрэгчдийг кодлох

Би энэ төслийн ихэнх хэсгийг Pycharm ашиглан кодчилсон, учир нь энэ нь алсын орчуулагч ашиглан Raspberry Pi -д SSH -ийг хялбархан байршуулах боломжийг олгодог. Энэ програм хэрхэн ажилладаг талаар би дэлгэрэнгүй ярихгүй, гэхдээ маш их мэдээллийг pycharm вэбсайтаас олж болно.
Би одоогоор төсөл дээр ажиллаж байгаа боловч бүх зүйл дууссаны дараа төслийг бүхэлд нь github профайл дээр ашиглах боломжтой болно
Мэдрэгчийн код нь миний Flask серверийн арын хэсэгт ажилладаг 3 ангиас бүрдэнэ (үүнийг дараа тайлбарлах болно):
- Зорилго ангилал (холбоос) -Энэ файл нь SPI төхөөрөмж/автобус, зүү дугаарыг зөв оруулах замаар дуудаж болох бүх тусдаа бүрэлдэхүүн хэсгүүдийг эхлүүлдэг.
- Матрицын анги (холбоос) -Энэ бол MAX7219 модулийг асаах гол анги юм
- LED ба хүлээн авагчийн анги (холбоос) - Энэ нь RPi -ийн CPU ачааллыг бууруулахын тулд тусдаа утас ашиглан хэт улаан туяаны цацрагийг асаах гол анги юм.
LED ба хүлээн авагч хоёулаа 38 кГц давтамжтай ажилладаг бөгөөд хүлээн авагчид 50% дээш, 50% доош импульс зөв ажиллахыг үргэлж хүлээж байдаг.
Алхам 4: Мэдрэгчийг бэлтгэх, байрлуулах



Одоо бид IR LED болон хүлээн авагчийг бэлтгэх гэж байна. Хүснэгтийн зураг дээр RPi болон мэдрэгчийг байрлуулах байршлыг олж болно.
Гэхдээ эхлээд утсыг бэлтгэх хэрэгтэй:
- RPi/талхны самбараас мэдрэгчийн байршил хүртэл шаардлагатай утасны хэмжээг хэмжих эсэхийг шалгаарай
- IR хүлээн авагчийг утасны нэг үзүүрт гагнах (COM/GND/V+)
- Утасны нөгөө үзүүрт эрэгтэй холбогч хэсгүүдийг гагнана
Одоо бид хүснэгтийг бэлдэх гэж байна.
- Хаана өрөмдөх талаар үндсэн зураг зурах (зураг дээр үндэслэн). 2 нүхийг хооронд нь зэрэгцүүлэх нь маш чухал бөгөөд учир нь энэ нь цацрагийн байршил болно.
- Нүх өрөмдөх
- Хэрэв танд LED эзэмшигч (линк) байгаа бол илүү бат бөх болгохын тулд тэдгээрийг нүхэнд хийж болно
- LED + хүлээн авагчийг хоёр талд нь оруулна уу
- Хэт их хөндлөн гарахгүйн тулд утсыг + модоор наа
- Эр зүүг талхны самбар дээр өмнө нь өгсөн схемийн дагуу оруулна
Алхам 5: Матрицын модулийг бэлтгэх, байрлуулах

Дараа нь бид 2 LED матрицын модулийг холбох гэж байна
Тэмдэглэл:
Хуучин хөл бөмбөгийн ширээ ашигласан болохоор тамхины савнаас болж дээд хэсэг рүү дээшээ нүх гарчихсан байсан. Хэрэв танд эдгээр зүйл байхгүй бол та тэдгээрийг үүсгэх хэрэгтэй болно.
Утас бэлтгэхийн тулд:
- Талхны самбараас утсыг ширээний дээд хэсэг рүү хэмжинэ
- Утасны эхний үзүүрт зарим эмэгтэй холбогчийг гагнана
- Утасны нөгөө үзүүрт зарим эрэгтэй холбогчийг гагнана
Матрицыг байрлуулах:
- Матрицыг дээд талын нүхээр гаргаж ав
- Туузан + хөндлөн гарахаас зайлсхийхийн тулд утсыг дотор нь туузаар наа
- Эр зүүг талхны самбар дээр өмнө нь өгсөн схемийн дагуу оруулна
Хэзээ нэгэн цагт би матрицын модулийн бүрхүүл оруулах жижиг DIY алхам нэмж оруулах болно, гэхдээ одоогоор тэд нүцгэн байна.
Алхам 6: Үүнийг IoT болгох

Хэрэв та зүгээр л бүртгүүлж, оноогоо харуулахыг хүсч байвал аль нэг оноогоо 9 болтол эргүүлж, дараа нь дахин тохируулах жижиг питон скрипт бичиж төслийг дуусгаж болно.
Гэсэн хэдий ч хэрэв та хүснэгтээ интернетэд холбохыг хүсч байвал дараагийн алхамуудыг хийх хэрэгтэй.
Дараагийн хэдэн алхам дээр бид дараахь зүйлийг авч үзэх болно.
- Raspberry Pi -ийг тохируулах
- Хадгалах мэдээллийн сан бүрдүүлэх
- Вэбсайт үүсгэх
- Үүнийг онлайнаар байршуулж байна
Энэ үед, хэрэв та git -г мэддэг бол файлуудаа хянахын тулд GitHub/GitLab дээр репозитор хийхийг зөвлөж байна. Хэрэв тийм биш бол та зураг дээрх шиг бүтэцтэй хавтас үүсгэж болно.
Төслийн бүрэн хувилбар удахгүй GitHub дээр тавигдах болно. Гэсэн хэдий ч шаардлагатай бүх файлууд бүхий түр зуурын rar файл байдаг.
Алхам 7: Raspberry Pi -ийг холбох
Дараа нь бид бөөрөлзгөнө pi орчныг тохируулах гэж байна, үүнийг хийхийн тулд та дараах алхмуудыг хийх хэрэгтэй.
- SSH -ээр Rasberry Pi дээрээ холбогдоорой (та PuTTY ашиглаж болно)
- Фолдер үүсгэнэ үү (жишээ нь mkdir төсөл), cd командыг ашиглан энэ хавтас руу шилжих
- Python3 -m venv --system-site-packages env командыг ашиглан энэ фолдерт виртуал Python орчныг бий болгох
- Source/env/bin/activate командыг ашиглан виртуал орчуулагчийг идэвхжүүлнэ үү
- Python -m pip install pack -name командын тусламжтайгаар requirements.txt -аас багцуудыг суулгаарай
- Өмнө нь өгсөн project_example.rar файлаас файлуудыг өөрийн төслийн хавтсанд SSH -ээр дамжуулна уу
Одоо та Raspberry Pi дээрээ бүрэн төслийг ажиллуулах боломжтой байх ёстой. PyCharm шиг Python IDE -ийг ашиглахыг танд зөвлөж байна, энэ нь танд алсын орчуулагчаас SSH дээр дибаг хийх, шаардлагатай бол өөрчлөлтийг шууд оруулах боломжийг олгодог.
Алхам 8: Өгөгдлийн санг тохируулах

Одоо та энэ загварт суурилсан маш энгийн мэдээллийн санг бий болгох хэрэгтэй.
Үүнийг хийх хамгийн хялбар арга бол MySQL ажлын санд мэдээллийн бааз үүсгэх бөгөөд эндээс та тест хийх боломжтой болно.
Үүнийг хийсний дараа та мэдээллийн баазынхаа овоолгыг экспортлож, RPi дээрээ байршуулж, sudo mariadb <pathtofile/file.sql ашиглан ажиллуулж болно.
Алхам 9: Вэбсайт үүсгэх



Дараа нь та project_example.rar файлд оруулсан кодыг шинжлэх (ашиглах) боломжтой.
Үндсэн файл бол энэ төслийн талх, цөцгийн тос болох Flask.py юм.
- Вэбсайтын арын хэсгийг зохицуулдаг Flask-SocketIO програмыг ажиллуулдаг
- Өгөгдлийн сан болон Колбоны хооронд холболт үүсгэнэ
- Нэвтрэх баталгаажуулалт, хэрэглэгчийн бүртгэлийг хангадаг
- Тоглоомын үеэр вэбсайтыг бодит цаг хугацаанд шинэчлэхийн тулд socketio ашиглан тоглоом хэрхэн тоглох талаар шаардлагатай кодыг өгдөг
- Тоглоомын үр дүнг мэдээллийн санд оруулдаг
Статик болон загварын хавтаснаас вэбсайтын урд хэсгийг хангадаг HTML/CSS/JS -ийг олох боломжтой. Эдгээрийг өөрийн үзэмжээр өөрчилж болно.
Алхам 10: Дэлхийн сүлжээнд холбогдох
Манай вэбсайтыг вэбтэй холбохын тулд бид nginx болон uwsgi -ийг ашиглах болно. Төслийн жишээнд та хэрэгтэй файлуудыг conf хавтаснаас олох боломжтой.
Юуны өмнө та эдгээр файлд дараахь зүйлийг шинэчлэх хэрэгтэй.
- Uwsgi-flask.ini-д та virtualenv параметрийн замыг өөрийн орчуулагч руу өөрчлөх хэрэгтэй.
- Project1-flask.service дээр та файлын [Service] хэсгийг өөрийн итгэмжлэл болон холбогдох файлуудын замтай хамт шинэчлэх хэрэгтэй.
- Nginx файлд та сервер болон байршил / замыг холбогдох сокет руу шинэчлэх хэрэгтэй
Дараа нь анхдагч nginx вэб серверийн файлыг өөрийн nginx тохиргооны файлын байршлаар солих шаардлагатай байна. Үүнийг хийхийн тулд linux командын жишээг доор харуулав.
- me@my-rpi: ~/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1
- me@my-rpi: ~/project1 $ sudo rm/etc/nginx/sites-enabled/defaul t
- me@my-rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1
- me@my-rpi: ~/project1 $ sudo systemctl nginx.service-ийг дахин эхлүүлнэ үү
Эцэст нь та өөрчлөн тохируулсан үйлчилгээг systemd фолдер дээрээ нэмэх хэрэгтэй болно, үүнийг хэрхэн хийх тухай жишээ энд байна.
- me@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
- me@my-rpi: ~/project1 $ sudo systemctl демон-дахин ачаална
- me@my-rpi: ~/project1 $ sudo systemctl start project1-*
- me@my-rpi: ~/project1 $ sudo systemctl status project1-*
Хэрэв та вэб серверийг бөөрөлзгөнө pi-г эхлүүлэхийг хүсч байвал sudo systemctl enable project1-*. Үйлчилгээний командыг ашиглах хэрэгтэй.
Хэрэв зөв хийсэн бол системийг дахин ачаалсны дараа таны вэбсайт таны IP хаяг дээр ажиллаж байх ёстой. Хэрэв та эдгээр тохиргооны файлуудын аль нэгийг засварлахыг хүсвэл үйлчилгээг үргэлж зогсоож, файлуудыг дахин ачаалж, демоныг дахин ачаалах командыг ашиглаад, дараа нь эхлүүлэх шаардлагатай болно.
Алхам 11: дуусгах

Энэхүү зааварчилгааны төгсгөлийн хэсгийг бичиж байхдаа энэ бяцхан сургуулийн төсөл одоо хүртэл хийгдэж байгаа ажил хэвээр байна.
Би үүнийг 2.5 долоо хоногийн дотор хийхэд тоолж баршгүй олон цаг зарцуулсан. Бүх зүйл жаахан яарсан ч гэсэн би амжилтанд хүрсэндээ бахархаж байна. Угсрах үе шатанд би тоо томшгүй олон алдаа/алдаа/алдаатай мэдрэгчтэй тулгарсан тул хэрэв бүх зүйл эхний оролдлогоор ажиллахгүй бол сэтгэлээр унах хэрэггүй.
Таны хийж чадах хамгийн сайн зүйл бол интернэтээс тусламж хүсэх эсвэл хайх явдал юм. Танд туслах хүсэлтэй илүү сайн мэдлэгтэй олон хүмүүс байдаг.
Эцэст нь хэлэхэд, надад маш их зөвлөгөө өгч, энэ төслийг дуусгахад тусалсан Шинэ медиа, харилцаа холбооны технологийн багш нартаа баярлалаа гэж хэлмээр байна.
Зөвлөмж болгож буй:
Сагсан бөмбөгийн цагираг бүхий "CleanBasket" бинк: 4 алхам

Сагсан бөмбөгийн цагираг бүхий "CleanBasket" бинк: Та үргэлж цэвэрхэн ширээтэй болохыг хүсдэг үү? Тэгвэл CleanBasket мэдээж танд зориулагдсан болно. Үргэлж бүх зүйлийг хогийн саванд хийж, түүгээрээ оноо цуглуул. Өндөр оноотой үдшийг эвдэхийг хичээгээрэй
Сагсан бөмбөгийн машин: 5 алхам

Сагсан бөмбөгийн машин: Хорио цээрийн үеэр би ихэнх цагаа youtube үзэх, видео тоглоом тоглоход зориулдаг. Хожим нь хөх туяа миний нүдийг гэмтээж байгааг анзаарсан. Тэгээд би тоглох сагсан бөмбөгийн машин хийхээр шийдсэн. Сагсан бөмбөгийн машиныг улам хүндрүүлэхийн тулд би зарлаж байна
Ширээний теннисний бөмбөгийн хий үзэгдэл: 4 алхам

Ширээний теннисний бөмбөгийн сүнс: Ширээний теннисний бөмбөг, LED, гар урлалын хэрэгслийг ашиглан энгийн гэрэлтүүлэг хий үзэгдэл хий. Энэ бол анги, клуб, үйлдвэрлэгчдийн орон зайд зориулсан Halloween -ий гайхалтай, хямд гар урлал юм. Энэ нь хөгжилтэй, бүтээлч төсөл болохоос гадна циркийн анхан шатны
WebFoos - Ухаалаг хөл бөмбөгийн ширээ: 6 алхам

WebFoos - Ухаалаг хөл бөмбөгийн хүснэгт: Howest -д сурч байсан анхныхаа сургуулийнхаа төслийн хувьд би ухаалаг Foosball ширээ хийхээр шийдсэн. Хүснэгт нь гоолыг бүртгэж, тоглосон тоглолт, тоглолтын статистик, хэрэглэгчийн/багийн статистик мэдээллийг онлайн вэбсайтад хадгалдаг
Автономит хөл бөмбөгийн ширээ: 5 алхам (зурагтай)

Автономит хөл бөмбөгийн хүснэгт: Төслийн гол зорилго нь хүний тоглогч робот өрсөлдөгчтэй тулгардаг Автономит Хөлбөмбөгийн Ширээний (AFT) ажлын загварыг дуусгах явдал байв. Тоглоомын хүний үүднээс авч үзвэл хөл бөмбөгийн ширээ нь энгийн ширээтэй маш төстэй юм. Тоглогч