Home-meteo/2 Прошивка arduino.md

3.9 KiB
Raw Blame History

2. Прошивка Arduino nano

В каталоге arduino лежит файлы для прошивки arduino nano (ATmega328P).

Для прошивки: устанавила Arduino IDE (из AUR)

**yay -S --aur arduino-ide-bin **

и пакет для доступа к ней через терминал:

sudo pacman -S arduino

Разрешаем текущему пользователю доступ к последовательным портам (и соответсвующим lock файлам) :

sudo usermod -a -G uucp $USER sudo usermod -a -G lock $USER

Так как при каждом перетыкивании платы в USB-порт linux увеличивает его значение (USB0, затем USB1, USB2... и т.д.), я добавила правило для именования порта для arduino, то есть чтобы порт всегда назывался одинаково ("/dev/arduino") и всегда имел права 666:

выполняем в терминале:

**lsusb **

ищем в нём нашу ардуинку: должно быть что-то вроде:

Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics CH340 serial converter

запоминаем полученный ID!

выполняем команды:

sudo nano /etc/udev/rules.d/99-arduino.rules

вставляем код (замените ID 1a86:7523 на ваши, если плата отличается)

SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="arduino", MODE="0666"

Выполняем запись и выходим: жмём Ctrl+O, затем Ctrl+X.

применяем правило:

sudo udevadm control --reload-rules && sudo udevadm trigger

проверяем:

** ls -l /dev/arduino**

должно вывести примерно так:

lrwxrwxrwx 1 root root 7 фев 21 15:54 /dev/arduino -> ttyUSB0

Запускаем Arduino IDE:

в Менеджере плат (кнопка слева) ищем и устанавливаем: Arduino AVR Boards

затем (кнопка ниже) ищем и устанавливаем библиотеку: Adafruit SHT31 Library.

Теперь надо выбрать модель платы: Инструменты -> Плата -> Менеджер плат -> Arduino AVR Boards - Arduino Nano

Выбрать порт: Инструменты -> Серийный порт: /dev/tty/USB0 (обычно arduino IDE сама определяет нужный порт, просто тыкаем в него)

Выбираем загрузчик: Инструменты -> Processor -> Atmega328P (Old bootloader)

Теперь всё должно быть готово для прошивки: вставляем код sketch_hum_temp.ino и жмем на кнопку слева (->) "Загрузить на плату". В случае успеха :) ошибок быть не должно и прошивка загрузится, замигает красный светодиод и перестанет - значит данные отправляются в порт USB.

Для проверки, что данные приходят: или в Arduino IDE тыкаем кнопку "Монитор порта" (изображена в виде лупы вверху слева)). , или в терминале вводим: cat /dev/arduino

должно будет вывести сообщения инициализации датчика и отправлять данные о температуре и влажности каждые 30 секунд.

если всё OK, тогда жмем Ctrl+С чтобы прервать чтение из порта, закрываем терминал и закрываем IDE (чтобы освободить порт arduino)