Удаленная загрузка кода на плату Arduino через интернет
Недавно я использовал Particle Photon, который позволяет мне загружать прошивку (файл .bin) удаленно через Интернет.
Я хотел бы использовать что-то подобное для своего Arduino, но не могу найти ничего подобного. Кто-нибудь знает какой-либо возможный способ загрузки прошивки на мою плату Arduino, удаленно подключенную к Интернету через Ethernet-экран любого модуля Wi-Fi?
@Chang Zhao, 👍3
Обсуждение2 ответа
Лучший ответ:
Вы можете загрузить данные на плату Arduino через Ethernet, если прошьете ее с помощью специального загрузчика под названием Ariadne.
Вам понадобится модуль Ethernet или шилд, использующий чип контроллера Ethernet W5100, W5200 или W5500. Вы не можете использовать Ethernet-контроллер ENC28J60 с Ариадной.
Вам понадобится программатор ISP, чтобы записать загрузчик Ariadne на плату Arduino. Если у вас нет программатора ISP, вы можете использовать запасную плату Arduino в качестве программатора "Arduino как ISP". Если вы собираетесь приобрести программатор ISP, я рекомендую 6-контактный USBasp. USBasp хорошо работает с Arduino IDE и имеет очень разумную цену. Вы можете купить их на eBay.
Описание того, как работает процесс загрузки Ариадны через Ethernet:
- Скомпилируйте скетч, который хотите загрузить.
- Используйте avr-objcopy, чтобы преобразовать шестнадцатеричный файл скетча, созданного в результате компиляции Arduino IDE, в двоичный файл (.bin).
- Выполните сброс платы Arduino, чтобы активировать код загрузчика. Вы можете сделать это, нажав кнопку сброса на плате, но необходимость иметь физический доступ к плате сводит на нет многие преимущества загрузки через Ethernet. По этой причине загрузка обычно выполняется путем отправки команды на вашу плату Arduino, которая заставляет приложение сбросить микроконтроллер, активируя сторожевой таймер и затем позволяя ему истечь. Для этой цели в аппаратном пакете Ariadne имеется библиотека EthernetReset, но вы можете легко реализовать собственное решение, если у вас есть другие потребности.
- Запустите загрузку .bin-файла по протоколу TFTP на IP-адрес вашей платы Arduino в течение 10 секунд после активации загрузчика после перезагрузки. Загрузка не обязательно должна завершиться в течение 10 секунд, ее достаточно только начать.
Вы можете получить загрузчик Ariadne, а также подробные инструкции здесь: https://github.com/loathingKernel/ariadne-bootloader
некоторые ссылки на https://github.com/codebndr/Ariadne-Bootloader не работают! но можно ли связать меня с каким-нибудь программистом интернет-провайдера?, @Chang Zhao
Я хочу знать, как загрузчик может прошить новую прошивку из Интернета?, @Chang Zhao
* «некоторые ссылки на github.com/codebndr/Ariadne-Bootloader не работают» * Проект перенесен на https://github.com/loathingKernel/ariadne-bootloader. Если вы обнаружите в этом репозитории неработающие ссылки, сообщите мне, и я их исправлю., @per1234
*"Можно ли связать меня с каким-нибудь интернет-программистом"* Что вы под этим подразумеваете? Вы просите ссылку на покупку программатора ISP? Если да, то вот: www.ebay.com/itm/232327462892., @per1234
* «Я хочу знать, как загрузчик может прошивать новую прошивку из Интернета?» * Я добавил краткое описание процесса загрузки в свой ответ. После прочтения, если у вас возникнут какие-либо конкретные вопросы, дайте мне знать, и я постараюсь улучшить свой ответ. Я не хочу воспроизводить здесь [полную документацию по Ариадне](http://loathingkernel.github.io/ariadne-bootloader/). Идея ответа заключалась только в том, чтобы объяснить, что это вариант загрузки прошивки через Интернет с кратким описанием, чтобы сделать его больше, чем просто ссылку., @per1234
Можете ли вы объяснить пункт 3: после того, как я нажму кнопку сброса на моем uno, какую команду запустить, чтобы загрузить загрузчик ariadne, @Chang Zhao
http://loathingkernel.github.io/ariadne-bootloader/#using-a-tftp-client-to-upload-the-sketch, @per1234
Это поможет. ESP8266 в качестве беспроводного программатора AVR (arduino) ISP.
https://github.com/rene-win/esp_avr_programmer
или
https://github.com/jeelabs/esp-link
ESP8266 можно запрограммировать с помощью Arduino IDE. Таким образом, его можно использовать для многих проектов Arduino. И его также можно запрограммировать OTA (по воздуху).
https://arduino-esp8266.readthedocs.io/en/latest/ota_updates/readme .html
звучит великолепно. Я также наткнулся на ArduRF1 от Тинди, который имеет встроенную возможность удаленной загрузки прошивки через Интернет с поддержкой встроенной батареи Lipo., @Chang Zhao
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как получить уникальный идентификатор для всех плат Arduino?
- Как очистить буфер FIFO на MPU6050?
- Элегантное решение для обновления содержимого TFT-дисплея
- Считывание нескольких поворотных энкодеров
- Что выбрать между датчиками температуры и влажности: AM230x или DHT22?
вы хотите использовать экран/модуль Ethernet?, @Juraj
@Юрай, да, у меня есть сетевой экран., @Chang Zhao