Могу ли я перепрограммировать свой Arduino через экран Wi-Fi?

9

Мой Arduino подключен к некоторым источникам света в моем аквариуме, и я могу управлять ими через веб-браузер в моей локальной сети. Интересно, смогу ли я изменить программу на Arduino, не подключая ее к машине через USB, что было бы немного неудобно. Должен быть какой-то способ, которым я могу воспользоваться подключением Wi-Fi.

Я использовал Wixel Shield от Pololu для беспроводной передачи программ (он работает только как радио через последовательный порт), но это технология, отличная от моего WiFi-щита.

Кто-нибудь знает, как я могу сделать это через WiFi? Может быть, если я загружу новый код во флэш-память на WiFi-экране, он сможет загрузиться с флэш-памяти? Я не уверен, как это сделать или если это вообще возможно.

Возможно, совсем другой подход будет проще?

Осьминог
источник

Ответы:

8

Это возможно в теории, но не тривиально на практике. Часть кода, ответственная за загрузку вашего нового эскиза в Arduino, называется загрузчиком . Все популярные версии загрузчиков, о которых я знаю, основаны на последовательном / USB. Чтобы загрузить эскиз через экран WiFi, загрузчик должен быть переписан для связи с экраном WiFi вместо последовательного интерфейса. Это займет некоторую работу, но не невозможно на практике.

Обратите внимание, что вам придется делать это независимо от того, сохраняете ли вы эскиз на экране WiFi (что я думаю, будет сложно: я не уверен, возможно ли это вообще) или загружаете эскиз непосредственно в Arduino: загрузчик должен будет связаться со щитом, чтобы прочитать данные скетча.


Есть способ легко перепрограммировать Arduino по беспроводной сети, и это Bluetooth. Вам нужно будет получить модуль Bluetooth (я не знаю, будет ли работать экран Bluetooth) и подключить его к аппаратным последовательным портам. Загрузчик, который находится на вашем Arduino, может уже говорить по последовательному каналу, так что проблема решена. Вам придется (потенциально) решить еще две проблемы:

  • Самые дешевые Bluetooth-модули на Ebay - 3,3 В. Это означает, что вам нужно будет подать на них питание 3,3 В, а линия передачи от вашего Arduino должна быть смещена от 5 В до 3,3 В. Вы можете решить первую подзадачу (питание), купив модуль Bluetooth, который предназначен для связи 5 В, или если ваш Arduino имеет питание 3 В 3, используя его для питания модуля Bluetooth. Модуль 5V-ready также решает вторую проблему; В качестве альтернативы вы можете сдвинуть напряжение на выходе 5 В вашего Arduino, используя любой из методов, описанных в этом вопросе .
  • Чтобы автоматически запрограммировать Arduino, необходимо перезагрузить Arduino непосредственно перед загрузкой эскиза: когда Arduino работает нормально, загрузчик не активен. Сброс Arduino активирует загрузчик, позволяя загружать новые эскизы. на Arduino USB ловко использует линию DTR для сброса устройства. Однако большинство последовательных модулей Bluetooth предоставляют только TS / RX, поэтому вам, вероятно, придется сбросить Arduino вручную, чтобы загрузить эскиз, если только вы не найдете выход сигнала на модуле Bluetooth, который вы можете подключить к схеме сброса ,
angelatlarge
источник
2

Сегодня я узнал о продукте, который может достичь этого: ESP8266. Это позволит вам запрограммировать / перепрограммировать ваш Arduino через Wi-Fi соединение. Различные компании производят версии чипа по различным схемам раскладки. В частности, он может стать WiFi AVRISP для Arduino.

Вы также можете запрограммировать сам ESP8266 с помощью Arduino SDK, и он обладает достаточной мощностью.

Смотрите здесь на whatimadetoday (не мой пост) для хорошего представления о том, как начать работу с ESP8266 и Arduino SDK. Как только SDK настроен для программирования ESP8266, вы можете просмотреть Примеры IDE и найти «Arduino_Wifi_AVRISP».

Вы можете найти плату по ценам от 5 до 15 долларов.

Осьминог
источник