Удаленная загрузка кода на плату Arduino через интернет

Недавно я использовал Particle Photon, который позволяет мне загружать прошивку (файл .bin) удаленно через Интернет.

Я хотел бы использовать что-то подобное для своего Arduino, но не могу найти ничего подобного. Кто-нибудь знает какой-либо возможный способ загрузки прошивки на мою плату Arduino, удаленно подключенную к Интернету через Ethernet-экран любого модуля Wi-Fi?

, 👍3

Обсуждение

вы хотите использовать экран/модуль Ethernet?, @Juraj

@Юрай, да, у меня есть сетевой экран., @Chang Zhao


2 ответа


Лучший ответ:

5

Вы можете загрузить данные на плату 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:

  1. Скомпилируйте эскиз, который хотите загрузить.
  2. Используйте avr-objcopy, чтобы преобразовать шестнадцатеричный файл эскиза, созданного в результате компиляции Arduino IDE, в двоичный файл (.bin).
  3. Выполните сброс платы Arduino, чтобы активировать код загрузчика. Вы можете сделать это, нажав кнопку сброса на плате, но необходимость иметь физический доступ к плате сводит на нет многие преимущества загрузки через Ethernet. По этой причине загрузка обычно выполняется путем отправки команды на вашу плату Arduino, которая заставляет приложение сбросить микроконтроллер, активируя сторожевой таймер и затем позволяя ему истечь. Для этой цели в аппаратном пакете Ariadne имеется библиотека EthernetReset, но вы можете легко реализовать собственное решение, если у вас есть другие потребности.
  4. Запустите загрузку .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


1

Это поможет. 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