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

82 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

**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)