Хочу сделать контроллер с обновлением по воздуху. Как сделать это по блютуз, не нашел. По WiFi можно, но как задать SSID не понимаю (дисплея и кнопок не будет). По идее, нужно задавать эти параметры по блютузу и переключаться на Wifi. Но в этом случае не хватает памяти (библиотека работы с блютуз занимает 70% памяти). Варианты с проводным терминалом не подходят (тогда проще USB) Может, кто знает решение? Подскажите.
В соседней теме описал, как я это делал. Если не правильно, то подарите знания. Элементарный код занимает 70% памяти
Вот этот код занимает 70% памяти: Код (C++): #include "BluetoothSerial.h" BluetoothSerial ESP_BT; int incoming; void setup() { // put your setup code here, to run once: Serial.begin(9600); ESP_BT.begin("ESP32_LED_Control"); Serial.println("Bluetooth Device is Ready to Pair"); } void loop() { // put your main code here, to run repeatedly: if (ESP_BT.available()) { Serial.write(ESP_BT.read()); } Модуль китайский с ОЛЕД дисплеем. Попытка добавить работу с WiFi натыкается на сообщение о нехватке памяти.
Я все читал. Но намеков не понимаю. Видимо, я чтото не понимаю в Ардуино IDE. Впервые поставил IDE три дня назад. Если Вам сложно объяснить, где у меня косяк - не утруждайтесь.
@Ljutik, для обновления по воздуху используется технология Over The Air Updates (OTA). Для arduino-esp32 есть готовая библиотека ArduinoOTA, посмотрите в примерах BasicOTA.ino
В том то и проблема, что ArduinoOTA работает по WiFi. А как я подключусь к WiFi, если я заранее не знаю SSID и пароль, а дисплея и кнопок на устройстве нет? Вот здесь и помог бы Блютуз. Но как сделать ОТА по Блютуз - мне не понятно и библиотек я не нашел.
@Ljutik, что-то вы сами себя запутали. SSID и пароль вы сами задаете в скетче, как в режиме клиента, так и в режиме точки доступа. Прошейте из примеров скетч BasicOTA.ino, прописав в скетче ssid и password от вашего роутера.
Нет. Вы меня просто не поняли. Думаю чуть дальше. Изготовил я устройстройство, отдал заказчику. Какой у него SSID и пароль - я понятия не имею. Также, не имею понятия, какой IP адрес присвоить его роутер. А дисплея и кнопок на устройстве нет. Как быть? Я задумал ввести параметры подключения по Блютуз, а затем переключиться на WiFi. Но, по какой-то причине ( не могу разобраться) простейшая программа с Блютуз занимает 70% памяти и на WiFi ничего не остается.
А что, заказчик сам не может открыть код и вписать значения в 2 переменные? IP можно узнать прямо из кода, в чем проблема? OTA через BT не изобрели ещё
заказчик - это обычный потребитель который даже ее понимает что такое микроконтроллер. А слово Ардуино для него ассоциируется со словом нейтрино и ядерным реактором. Устанавливать на его компьютер IDE - это вообще космос. В идеале, делать обновление с телефона Андроид. Вопрос - обновление с Андроид по кабелю изобрели?
Думается мне такой процесс. Заказчик подключается к устройству по Блютуз и вносит в энергонезависимую память параметры подключения через простейшую программу на Андроиде (прогу я ему дам). Затем подключается по Wifi. И обновляет. Но осталась проблема памяти. Не могу понять, почему Блютуз сожрал всю память.