Подготовка
SD карта должна быть минимум на 64 ГБ, класса А1 V10.
Проверить SD карту. В некоторых случаях SD карта может быть бракованной - установка и работа ОС становиться очень долгой. Необходимо выполнить проверку SD карты на скорость чтения/записи и проверку битых участков. Утилиты для проверки SD карт для Windows: H2testw.
Скачать программу создания образа
— Нажать пункт "Операционная система" и выбрать "Raspbery Pi OS (64-bit)".
— Нажать пункт "Запоминающее устройство" и выбрать ранее подготовленную SD карту.
— В всплывающем окне нажать на кнопку "Изменить параметры".
ВАЖНО! Имя хоста, имя пользователя и пароль должны быть записаны в Passwork / Kaiten
"Общее" необходимо заполнить следующие поля:
•"Имя хоста". Уникальное имя, которое создаётся по такому шаблону:
, где xxxx номер фотобокса, который предоставляет заказчик (как правило, наклейка-номер на фотобоксе). Должно получиться что-то вроде.
•Имя пользователя должно быть всегда "pi".
•Пароль должен состоять из 10 или более цифр. Можно сгенерировать пароль в Passwork.
•Если необходимо указываем сеть wifi, логин и пароль от нее. В дальнейшем поменять wifi можно с помощью команды:
•"Имя хоста". Уникальное имя, которое создаётся по такому шаблону:
, где xxxx номер фотобокса, который предоставляет заказчик (как правило, наклейка-номер на фотобоксе). Должно получиться что-то вроде.
•Имя пользователя должно быть всегда "pi".
•Пароль должен состоять из 10 или более цифр. Можно сгенерировать пароль в Passwork.
•Если необходимо указываем сеть wifi, логин и пароль от нее. В дальнейшем поменять wifi можно с помощью команды:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
•Выбрать часовой пояс:.
— На вкладке "Службы" выбрать пункт "Использовать аутентификацию по паролю".
— Сохранить настройки и запустить процесс записи образа.
— Вставить SD карту с полученным образом в слот для SD карты Raspbery Pi.
— На вкладке "Службы" выбрать пункт "Использовать аутентификацию по паролю".
— Сохранить настройки и запустить процесс записи образа.
— Вставить SD карту с полученным образом в слот для SD карты Raspbery Pi.
Важно!
Загрузочная SD-карта должна в конечном варианте быть вставлена не через USB адаптер, а в ридер SD карт в самойraspberry. Если оставить карту в ридере через некоторое время raspberry перестанет грузиться.
Если на этапе заполнения настроек какие-то параметры, например имя хоста, не удалось указать сразу, то сделать это можно через утилиту.
sudo raspi-config
Установить дополнительное ПО
Установка AnyDesk:
— Перейти на сайт и скачать AnyDesk для Raspbery Pi -
— Перейти на сайт и скачать AnyDesk для Raspbery Pi -
На момент написания руководства актуальная версия anydesk_6.3.0-1_armhf.
— Установить AnyDesk.
— Открыть командную строку и ввести
anydesk
Должен запуститься GUI интерфейс программы
Если AnyDesk не запускается - смотреть ошибки.
Если появляется ошибка libbrcmGLESv2.so: cannot open shared object file: No such file or directory, необходимо выполнить следующие команды:
sudo apt install libgles-dev libegl-dev
sudo ln -s /usr/lib/arm-linux-gnueabihf/libGLESv2.so /usr/lib/libbrcmGLESv2.so
sudo ln -s /usr/lib/arm-linux-gnueabihf/libEGL.so /usr/lib/libbrcmEGL.so
— Зайти в настройки AnyDesk в раздел "Безопасность", отметить пункт "Разрешить неконтролируемый доступ", установить пароль и записать данные в Passwork / Kaiton
Установить Dataplicity:
— Удаляем старую сборку:
sudo rm -rf /opt/dataplicity
sudo apt purge -y supervisor
sudo rm -rf /etc/supervisor
— Создам новый аккаунт на сайте https://www.dataplicity.com.
Для этого необходимо в строку ввода email вставить email вида:
hostname@rfa.ooo
то есть для станции 006151 - foodbox@rfa.ooo
Для этого необходимо в строку ввода email вставить email вида:
hostname@rfa.ooo
то есть для станции 006151 - foodbox@rfa.ooo
Сгенерированную сайтом команду необходимо вставить в терминал Raspbery Pi.После завершения установки в терминале, на сайте необходимо зайти в аккаунт и в настройках аккаунта установить пароль. Сохраняем логин-пароль в passwork / kaiton
— Авторизируемся в этом аккаунте, жмём add device:
— Копируем и выполняем команду в консоли raspberry, ждём пару минут и пробуем зайти в устройство через web формуdataplicity.
Установить git и zsh:
sudo apt update \
&& sudo apt full-upgrade \
&& sudo apt install git wget zsh curl \
&& sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)" \
&& zsh
Установить репозиторий проекта:
— Перейти в режим root пользователя
— Ввести команду
git config --global credential.helper 'store'
git clone https://gitlab.com/itfox-web/foodbox20/food-box-main-server-api.git
cd food-box-main-server-api
git submodule init && git submodule update --remote
cd food_box_raspberry_pi && git checkout dev && cd ..
cd food_box_waiter_front && git checkout dev && cd ..
Логин-пароль от deploy токена можно найти здесь:
https://passwork.me/#!/p/62039089a6fe803ac12b38b3#%2F
https://passwork.me/#!/p/62039089a6fe803ac12b38b3#%2F
Установить докер
— Выполнить команду
chmod +x docker-install-raspbian.sh
sudo ./docker-install-raspbian.sh
— Перегрузить Raspberry командой
reboot
Создать и заполнить .env файлы
Подготовку env файлов выполняет разработчик. Файл должен быть сохранен в Passwork
Дальнейшая работа ведётся через SSH подключение через VSCode
Файлы окружения нужно добавить в несколько мест
— В основной проект.
— В проект с билдом фронта.
Для того чтобы создать env файл для основного проекта необходимо перейти в папку:
/home/pi/food-box-main-server-api
на Raspbery и вставить содержимое env файла ранее подготовленный разработчиком. Сохранить файл.
Для того чтобы создать файл для билда с фронтом необходимо перейти в папку
/home/pi/food-box-main-server-api/food_box_waiter_front
на Raspbery и вставить содержимое env файла ранее подготовленный разработчиком. Сохранить файл.
Запустить docker:
docker-compose -f docker-compose-arm.yml up -d
выполняется после подключения и проверки всех датчиков
Создание суперпользователя админки Django
После установки докера и запуска системы нужно добавить супер-админа
В контейнере web выполнить команду
В контейнере web выполнить команду
python manage.py createsuperuser
...
email: fotobox20220919171229-admin@itfox-web.com
password: из_passwork
Проверка и настройка оборудования.
Проверка Весов
watch -n 0 scripts/weightscale/weightscale_j ttyACM0
Проверка камеры.
Ручной настройки требует только фотокамера - ее необходимо сфокусировать. После монтажа камеры нужно запуститькоманду
libcamera-vid -t 50000
Эта команда должна быть выполнена не из ssh терминала, а непосредственно из интерфейса raspberry os она должна открыть вид с камеры в режиме реального времени, тогда ее можно сфокусировать вручную
Настройка датчика температуры
— Включить I2C, этот интерфейс нужен для термодатчика:
sudo nano /boot/config.txt
Строка должна выглядеть так:
dtparam=i2c_arm=on,i2c_arm_baudrate=400000
— Перезагрузить Raspbery.
Проверка точечного температурного датчика:
source env/bin/activate
watch -n 0 scripts/temperature.py
Проверка массива инфракрасных датчиков
source
env/bin/activate
python3 scripts/temperature_array.py
Проверка Камеры
python3 scripts/camera.py
Всё вместе
python3 scripts/sensor_data.py
Финальная проверка должна работать так:
curl 127.0.0.1:9999/get_sensor_data
{
"temperature_sensor1"
: {
"sensor_id"
: 0,
"ambient_temperature"
: null,
"object_temperature"
: null,
"emmission"
: null,
"error_msg"
:
"Sensor 0 not found!"
},
"temperature_sensor2"
: {
"sensor_id"
: 1,
"ambient_temperature"
: null,
"object_temperature"
: null,
"emmission"
: null,
"error_msg"
:
"Sensor 1 not found!"
},
"temperature_array"
: {
"image_full_path"
:
"None"
,
"error_msg"
:
"Temperature array error"
},
"weight_sensor"
: {
"error_msg"
:
""
,
"weight"
: 1260,
"tare"
: 0 },
"camera_sensor"
: {
"image_title"
:
"None"
,
"image_paht"
:
"None"
,
"image_full_path"
:
"None"
,
"error_msg"
:
"No cameras available!"
,
"done"
:
false
},
"error_msg"
:
""
}
Должен вернуться валидный json с ссылкой на фото с камеры, параметрами весов, изображением из температурного датчика.
Определяем ip адрес - загружаем raspberry, открываем консоль, пишем:
pi@fotobox20220919171229:~ $ ifconfig
...
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.88.53 netmask 255.255.255.0 broadcast 192.168.88.255
...
Ip адрес - 192.168.88.53, если вы правильно указали имя сети и пароль, то ip адрес будет получен сразу.