Съдържание:
- Консумативи
- Стъпка 1: Прототипиране
- Стъпка 2: Подготовка на Raspberry Pi
- Стъпка 3: База данни
- Стъпка 4: Бекенд
- Стъпка 5: Frontend
- Стъпка 6: Показване на таблото за управление на дисплея
- Стъпка 7: Запояване на електрониката
- Стъпка 8: Захранване
- Стъпка 9: Жилища
Видео: Табло за управление на мотоциклети Raspberry Pi: 9 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Като студент по мултимедийни и комуникационни технологии в Howest Kortrijk, трябваше да направя свой собствен IoT проект. Това ще комбинира всички модули, последвани през първата година, в един голям проект. Тъй като карам мотоциклета си много в свободното си време, реших да използвам придобитите си умения в MCT, за да създам нещо за моя мотоциклет: Интелигентно табло за управление.
MotoDash е табло за управление на Raspberry Pi, предназначено за фанатични мотоциклетисти, което дава възможност на ездача да следи представянето им.
Какви са характеристиките на това табло за управление?
- Преглед на текущия ъгъл на наклон
- Преглед на текущото ускорение
- Възможност за следене на температурата на маслото
- Автоматично превключване към тъмна тема, когато карате в тъмното
- Влезте в данните за вашите пътувания и прегледайте собствената си статистика
Консумативи
Основен изчислителен блок:
Raspberry Pi Това е основният контролер на системата
Електроника:
- USB зарядно устройство за мотоциклет 12V-5V Основно захранване за RPi
- 4 Pin Fused Relay 12V Превключете, за да включите/изключите захранващата верига на RPi
- Платформа с джъмперни проводници (по избор) За тестване и прототипиране
-
Breakout Pi plus Това е прототипна платка, където можете да запоявате всичките си компоненти. Той е направен така, че да се побира директно върху Raspberry Pi, така че размерите на проекта остават до минимум.
Комплект резистори
Различни цветове на тел 0,2 мм
Сензори и модули:
- Водоустойчив 1-жичен температурен сензор DS18B20 Сензор за температура на маслото
- Сензор за наклон/ускорение с 3 оси Gyro Accelerometer MPU6050
- Резистор, зависим от светлина (LDR)
MCP3008-8-канален 10-битов ADC с SPI интерфейс
TFT SPI дисплей (или всеки друг LCD дисплей, който отговаря на вашите нужди)
RGB LED
Корпус:
- Пластмасова кутия
- Малина пи калъф
Инструменти:
- Поялник и спойка
- 2,5 мм винтове и дистанционни елементи
- Водоустойчиви кабелни съединители
- Супер лепило
- …
Стъпка 1: Прототипиране
Преди да направим всичко постоянно, ще сглобим проекта на макет. Тази стъпка може да бъде пропусната, ако сте абсолютно сигурни, че няма да направите грешка. Схемата за електричество/макет може да бъде намерена в PDF по -долу. Съберете веригата точно както е описано. Уверете се, че използвате само 3.3V щифт, а не 5V щифт на RPi. Също така, преди да включите малиновия Pi, проверете отново веригата си. Уверете се, че няма къси панталони!
Стъпка 2: Подготовка на Raspberry Pi
На първо място, ние ще настроим Raspberry Pi. Raspberry Pi е мини компютър, който може да работи със собствена операционна система. За този проект той отговаря за обработката на сензорни данни, хостването на уебсайта, изпълнението на бекенда и базата данни, …
1. Инсталирайте персонализирано Raspbian изображение
Предоставеното изображение вече съдържа софтуерните пакети, необходими за стартиране на този проект:
- Apache за интерфейса на уебсайта
- MariaDB за базата данни
- PhpMyAdmin за манипулиране на базата данни
- Персонализирани разрешения, за да се избегнат проблеми
Персонализираното изображение може да бъде изтеглено от тук.
Урок за инсталиране на изображения можете да намерите тук:
След като изображението е инсталирано, свържете Raspberry Pi към вашия компютър с Ethernet кабел. Сега можете да използвате SSH клиент, за да се свържете с него на IP адреса 169.254.10.1
Добра практика е незабавно да зададете нова парола, като използвате командата passwd
2. Конфигуриране на безжична точка за достъп
Когато проектът приключи, искаме да можем да се свържем с RPi през wifi, така че нека го превърнем в безжична точка за достъп. Урок за това можете да намерите тук.
Трябва само да следвате този урок до стъпка 7. Стъпка 8 не се изисква, тъй като не е необходимо да свързваме интернет връзка, а да създадем самостоятелна мрежа.
3. Активиране на интерфейси
Влезте в raspi-config
sudo raspi-config
Отидете на опциите за свързване и активирайте 1-проводник, SPI и I2C и рестартирайте Pi
3. Настройване на драйвери за дисплея
Инициализиране на дисплея
Редактирайте файла /etc /modules
sudo nano /etc /модули
Добавете следните 2 реда
spi-bcm2835fbtft_device
Сега редактирайте /etc/modprobe.d/fbtft.conf
sudo nano /etc/modprobe.d/fbtft.conf
Добавете следния ред
опции fbtft_device име = tm022hdh26 gpios = нулиране: 25, dc: 24, led: 18 завъртане = 90 скорост = 80000000 fps = 60
Рестартирайте Pi. Ако видите, че подсветката на дисплея светва, всичко е наред. Това ще инициализира дисплея всеки път, когато Pi се стартира, но сега ще показва само черен екран. За да изведем съдържанието на Pi на дисплея, трябва да копираме съдържанието на главния екран на малкия LCD. За това ще използваме услуга, наречена „fbcp“.
Инсталиране на услугата fbcp
sudo apt-get install cmake
git clone
cd rpi-fbcp
mkdir build
cd компилация/
cmake..
направете
sudo инсталирате fbcp/usr/local/bin/fbcp
Сега инсталирахме услугата. Въпреки това, тъй като използваме Pi без глава, няма наличен екран за копиране на съдържанието. За да принудите Pi да извежда съдържание на екрана, редактирайте /boot/config.txt
sudo nano /boot/config.txt
Намерете и декомментирайте или добавете следните редове към този файл:
hdmi_force_hotplug = 1
hdmi_cvt = 640 480 60 0 0 0 0
display_rotate = 0
hdmi_group = 2
hdmi_mode = 87
Рестартирайте RPi и тествайте услугата fbcp, като въведете fbcp в конзолата. Сега трябва да видите съдържанието на екрана на LCD дисплея.
Стартиране на fbcp при стартиране
Редактирайте /etc/rc.local и добавете следния ред между ip адреса и изходната линия
fbcp &
Сега дисплеят трябва да се включва всеки път, когато RPi се стартира
Стъпка 3: База данни
За да регистрирам и съхранявам сензорни данни, създадох собствена база данни, която съдържа 4 таблици. Диаграмата EER е показана на изображението по -горе.
1. Устройства
Тази таблица съдържа всеки сензор. Той описва името на сензора, описание и измервателна единица. Тази таблица има връзка един към много с действията на таблицата, тъй като в моя случай сензорът за ускорение може да изпълнява различни задачи.
2. Действия
Тази таблица съхранява действия за различни сензори. Едно действие винаги е свързано с определен сензор. Например: действието „TEMP“е свързано с устройството, което измерва температурата. Това би бил 1-проводният температурен сензор.
3. История
Тази таблица съдържа всички регистрационни файлове на сензорите. Всеки регистър има идентификатор на действие, стойност, времева отметка и езда
4. Пътувания
Тази маса съхранява различни пътувания. Всеки път, когато потребителят започне ново пътуване, в тази таблица се прави нов запис
За да получите тази база данни на вашия Raspberry Pi, преминете към моя GitHub и клонирайте/изтеглете хранилището. Под базата данни ще намерите 2.sql файла. Стартирайте ги в работната маса на PhpMyAdmin или MySQL. Сега базата данни трябва да е във вашия RPi.
Стъпка 4: Бекенд
Ако все още не сте, преминете към моя GitHub и клонирайте/изтеглете хранилището. Под папката Backend ще намерите пълния бекенд за проекта.
Папката съдържа класове за четене на сензори под /helpers, файлове за комуникация с базата данни под /repositories, а основното приложение се намира в корена под името app.py.
Инсталиране на пакети на Python
Преди да се опитаме да стартираме нещо, първо трябва да инсталираме някои пакети за python. Влезте в терминала на вашия RPi и въведете следните команди:
pip3 инсталирайте mysql-конектор-python
pip3 инсталирайте flask-socketio
pip3 инсталирайте колба-кор
pip3 инсталирайте gevent
pip3 инсталирайте gevent-websocket
ВАЖНО ЗАБЕЛЕЖКА: ако сте променили паролата си за Mariadb/Mysql, променете паролата в config.py!
Тествайте бекенда
Стартирайте app.py с помощта на интерпретатора python3 (/usr/bin/python3). Уверете се, че няма грешки.
Стартиране на бекенда при зареждане
Редактирайте motoDash_backend.service и променете YOURFILEPATH на пътя, където е записано хранилището.
Сега копирайте този файл в/etc/systemd/system/
sudo cp motoDash_backend.service /etc/systemd/system/motoDash_backend.service.
Сега бекендът ще се стартира автоматично всеки път, когато се стартира RPi.
Стъпка 5: Frontend
Насочете се към GitHub Repo. Копирайте съдържанието на директорията Frontend в/var/www/html.
Това е всичко, което трябва да направите, за да работи интерфейсът. Тази папка съдържа всички уеб страници, стилове и скриптове за уеб интерфейса. Той също така комуникира с бекенда. За да проверите дали всичко работи както трябва, уверете се, че сте свързани към вашия RPi и въведете IP адреса на RPi в браузър. Трябва да видите началната страница на уеб интерфейса.
Забележка: Уебсайтът е отзивчив, така че можете да го използвате както на мобилни устройства, така и на настолни компютри
Стъпка 6: Показване на таблото за управление на дисплея
Фронтендът има своя собствена скрита уеб страница, използвана само за малкия дисплей. Ще направим Pi зареждането автоматично на този уебсайт в режим на цял екран.
Уверете се, че RPi е настроен на автоматично влизане в работния плот в raspi-config под опциите за зареждане
sudo raspi-config
Сега отидете в скритата конфигурационна папка и създайте нов файл там
cd.config
sudo mkdir -p lxsession/LXDE -pi
sudo nano lxsession/LXDE-pi/автостарт
Добавете следните редове в този файл и запишете
@xscreensaver -no -splash
@xset е изключен
@xset -dpms
@xset е празно
@chromium-browser --noerrors --disable-session-crashed-bubble --disable-infobars --kiosk --incognito
Сега Pi трябва да стартира тази уеб страница всеки път
Стъпка 7: Запояване на електрониката
Вземете пробивната дъска и подредете компонентите си върху нея по структуриран начин. Няма да обсъждам оформлението на това как запоявах компонентите върху него, тъй като свърших доста лоша работа по него. Използвах отделни щифтове на платката, така че имах нужда само да свържа сензорите и модулите към десния щифт. Уверете се, че знаете кой щифт е за какво!
Някои съвети при запояване:
- Използвайте изолирани проводници, когато пресичате по -големи разстояния. Последното нещо, което искате, е къси панталони във вашата верига
- След запояване на компонент или проводник проверете неговата непрекъснатост с мултицет. Проверявайте също редовно за късо съединение.
- Не използвайте твърде много или твърде малко спойка!
- Ако не знаете как да запоявате, първо го практикувайте на друга дъска за прототипи. Урок за запояване можете да намерите тук.
Сега запоявайте проводниците достатъчно дълго към сензорите и поставете около тях свиваща се обвивка, за да сте сигурни, че всичко не е късо и чисто.
Когато приключите, проверете два пъти за къси или лоши връзки и проверете всяка връзка с електрическата схема дали тя е правилната. След като сте сигурни, че всичко е направено правилно, продължете и поставете пробивната платка на RPi, завъртете я здраво с помощта на 2,5 мм винтове и стойки. Свържете сензорите към десните щифтове и ги тествайте с помощта на уебсайта.
Стъпка 8: Захранване
За захранване на Raspberry Pi ще използваме 12V-5V usb адаптер. Този адаптер ще бъде свързан към батерията на мотоциклета. За да се уверим, че RPi се включва, когато ключът за запалване е включен, ще използваме реле. Релето ще затвори силовата верига на RPi, когато открие напрежение от задната светлина (задната светлина винаги се включва при включване на запалването).
За по-подробен урок по този въпрос, вижте тази страница: https://www.hondagrom.net/threads/2017-gromsf-msx125sf-wire-up-auxiliary-power-for-pcv-wb2-and-other-fuel -контролери.16921/
Стъпка 9: Жилища
Показване на жилища
За дисплея вземете твърда пластмасова кутия около размера на дисплея. Изрежете квадратна дупка в него, голяма колкото дисплея, и съответстващи отвори, за да завиете дисплея. Отпред трябва да пробиете още 2 отвора за RGB LED и LDR.
Монтирах тази кутия върху държач за смартфон с помощта на болт.
Температурен сензор
За поставяне на сензора за температура, 3D отпечатах манометър, който пасва на моя мотоциклет.
Малина Пи
Монтирайте самия малинов Pi на сигурно място вътре в мотоциклета, поставих го под един от калниците с помощта на някои велкро ленти. И го защити от елементите с помощта на корпус и малко пластмаса.
Акселерометър
Монтирайте акселерометъра на сигурно място, за предпочитане върху самата рамка на мотоциклета.
Забележка:
Не е нужно да имате точно същото жилище като мен, вие сте свободни да го завършите както искате. Просто се уверете, че електронните компоненти са защитени от дъжд и прах.
Препоръчано:
Табло за управление на СЗО за COVID-19: 8 стъпки (със снимки)
Табло за управление на СЗО за COVID-19: Тези инструкции показват как да използвате ESP8266/ESP32 и LCD за изграждане на ситуация на COVID-19 Табло за управление на СЗО
Създайте табло за управление на времето, използвайки API на Dark Sky: 5 стъпки (със снимки)
Изградете табло за управление на времето, използвайки API на Dark Sky: Dark Sky е специализирана в прогнозиране на времето и визуализация. Най -готиният аспект на Dark Sky е техният API за времето, който можем да използваме за извличане на метеорологичните данни от почти всяка точка на света. Не само времето е дъждовно или слънчево, но и температурата
Guino: Табло за управление за вашия Arduino: 4 стъпки (със снимки)
Guino: Табло за управление на вашия Arduino: Този проект е част от експерименти, направени, докато правите художник в резиденция в Instructables. Другите проекти можете да видите тук. Може да се окаже трудна задача за отстраняване на грешки и визуализиране на данни в реално време на дъската на Arduino. Обикновено сте заседнали със
Циферблат на слънчева енергия за мотоциклети: 5 стъпки (със снимки)
Часовник за набиране на мотоциклет със слънчева енергия: Имах тахо циферблат, останал от стария ми мотоциклет, когато замених механичния брояч на оборотите с електронен панел (това е друг проект!) И не исках да го изхвърлям. Тези неща са проектирани да бъдат осветени с подсветка, когато светлините на велосипеда са изключени
Табло за управление на електрически велосипед (EBike) и монитор на батерията: 12 стъпки (със снимки)
Табло за управление на електрически велосипеди (EBike) и монитор на батерията: Този проект е схема на Arduino, която следи напрежението и тока на батерията с модул ACS 712. Измерванията се съобщават чрез Bluetooth с модул HC-05 на устройство с Android. По принцип пренасочвате отрицателната връзка между y