Установка параметров после компиляции

Я очень новичок в arduino и искал это в сети, но не нашел.

В моем проекте есть 2 файла: файл ".ino" с скетчом и еще один файл ".h" с секретами и параметрами конфигурации, такими как интервалы чтения, учетные данные для подключения к Wi-Fi и т. Д. Теперь мне нужно во время выполнения иметь возможность подключиться к arduino либо по последовательному каналу, либо любым другим способом, чтобы установить эти параметры.

Правка:

Мой вопрос таков: Как я могу изменить параметры после компиляции скетча? например, как я могу указать учетные данные для arduino для подключения к Wi-Fi клиента, так как каждый клиент имеет разные учетные данные.

, 👍3

Обсуждение

в чем заключается ваш вопрос?, @jsotola

Если вы определили параметры как переменные, вы можете написать код для выбранного вами коммуникационного интерфейса (например, Serial), чтобы считывать новые значения из интерфейса и сохранять их в этих переменных. Вы пробовали это сделать? Неясно, в чем именно заключается ваша проблема с этим. Пожалуйста, объясните подробнее, что вы пробовали до сих пор и где вы столкнулись с проблемами, @chrisl

@jsotola Мой вопрос: как я могу изменить параметры после компиляции scketch? например, как я могу указать учетные данные для arduino для подключения к Wi-Fi клиента, поскольку каждый клиент имеет разные учетные данные., @Jaime Roman

@JaimeRoman Вы можете [отредактировать свой вопрос](https://arduino.stackexchange.com/posts/80768/edit ) включить эту деталь., @timemage

@chrisl Да, я точно думал что-то подобное, но я не нашел в сети, как это сделать. У вас есть какие-нибудь ссылки, которые объясняют, как это сделать?, @Jaime Roman

Google "Arduino EEPROM"., @Majenko

@Majenko Спасибо, @Jaime Roman


2 ответа


4

Скорее всего, для этого проекта требуются 2 функции:

  1. Способ ввода учетных данных Wi-Fi после запуска программы.
  2. Способ хранения учетных данных Wi-Fi между циклами питания.

Решением для 2 - го требования является использование энергонезависимой памяти. Обе проблемы были решены ранее для определенных типов ардуино. Вот проект на GitHub, в котором есть решения для плат, использующих процессоры ESP8266 или ESP32.

,

4

Вы можете установить параметры, такие как SSID и пароль, во время выполнения несколькими способами. Два наиболее очевидных из них:

  • небольшой диалог с использованием последовательного монитора или другой последовательной консоли;
  • веб - интерфейс, обслуживаемый Arduino, который позволяет вводить параметры.

Идея последнего заключается в том, что когда Arduino не может подключиться к доступной сети (потому что она неизвестна или потому что у нее нет правильных учетных данных), она настраивает себя как точку доступа с известным SSID, паролем и IP-адресом.

Затем вы можете (сначала) подключиться к сети Wi-Fi точки доступа Arduino, а затем открыть HTML-страницу из Arduino в веб-браузере, который позволяет вам вводить свои учетные данные Wi-Fi для "реальной" сети Wi-Fi. Вот как работает библиотека WifiManager (для ESP8266 и ESP32).

После ввода учетных данных вы можете сохранить их (постоянно) в EEPROM с помощью библиотеки EEPROM или, если MCU на вашем Arduino не имеет EEPROM, с помощью библиотеки, которая хранится во flash, например библиотеки FlashStorage для ардуино на базе SAMD21.

Те же механизмы можно использовать и для других параметров, которые вы можете задать во время выполнения.

,