Удаленная прошивка Ардуины + EthernetShield
Здравствуйте, коллеги
Дано ардуиноподобные платы (амперка). Которая выступает в роли клиента и стучится за разными данными на сервер.
- Iskra Neo
- Ethernet Shield
- + пара релешек
Необходим механизм удаленной перепрошивки Искры.
Желательно без дополнительных модулей. Теоретически знаю, что есть решения по обновлению через вайфай модуль. Но это план Б скорее.
Это когда мы через DHCP получаем IP адрес на ардуину, а потом уже подключаем ее к сети Wifi. После этого уже указываем на какую-то версию обновлений и прошиваем.
Логика работы, как я её вижу.
Выложил на сервер (не ардуина) в определенное место новый архив или файл. Отметил какой-то флажок в веб интерфейсе на сервере. Ардуина увидела необходимость обновиться и обновилась.
Amp_v.20_05_08_2020 - , что-то нажал и обновило.
И параллельно есть пара квестов по программированию на ардуине. Кому интересно, жду в проект. От Вас предложение по реализации, условия по времени и стоимость.
Спасибо и хорошего дня.
-
72 3 0 Если есть возможность прикрутить туда память (SPI/I2C), то вполне реализуемо - иначе реализуемо, но без HTTP, только UDP, который он будет дергать сам и смотреть есть ли прошивка
-
Здравствуйте.Правильно ли я понимаю что вы хотите реализовать перепрошивку даже без дополнительного МК соторый будет прошивать эту Ардуино?
-
Вариант с ардуиной самой по себе:
Добавляем место для хранения новой прошивки: spi flash, sd card, spi psram (я бы выбрал это, что бы не изнашивать flash, можно ещё и ионистор добавить). В коде самой прошивки идёт проверка на сервере новой прошивки и флага обновления. Если такое появляется - оно скачивается во внешнее место для хранения. Проверяется CRC или хеш. Если ок, перезагружаемся.
Дальше работает переделанный бутлоадер. Он проверяет есть ли во внешнем месте хранения новая прошивка. Для надёжности можно ещё раз посчитать CRC или хеш, сравнить с установленной - и если разные прошить новую.
Минут тут такой: если сломать в самой прошивке (скетче) функцию поиска и скачивания обновления - то работать перестанет.
Можно добавить ещё один МК(ардуину или что-то другое, например какой-нибудь STM32), который будет подключен к ethernet шилду, а для ардуины выглядеть как прозрачная прослойка. У него прошивку не меняем, и там закладываем функцию поиска обновления.
По сути, тот же вариант, что с esp8266.
Можно взять что-то покрупнее. Onion Omega2/аналогичный модуль у китайцев дешевле/б/у роутер с openwrt. Он становиться и ethernet-шилдом и удалённым программатором.
И средой для запуска кода на js/python/bash/lua/c. Ардуина управляет релешками, что-то критическое по времени делает, содержит защитные алгоритмы.
-

Если я не ошибаюсь в библиотеке ArduinoOTA есть скетч OTASckethDownload, который каждые 5 сек. проверяет наличие файла на HTTP и автоматически сам себя обновляет.
-
Current freelance projects in the category Desktop Apps
Account reconciliation tool with the bank, cards, and accountantTechnical Assignment: Tool for Reconciling Accounts with Bank, Cards, and AccountantGeneral Goal A local tool (script/small application in Python) is needed, which is manually run once every 1-2 months on my computer and performs reconciliation between: Invoices I issued to… Python, Desktop Apps ∙ 16 hours 31 minutes back ∙ 31 proposals |
Add pauses of 10-30 seconds between sending emails.Hello! I am looking for an experienced 1C / BAS (BAF) programmer to promptly resolve a technical issue with email distribution.Problem essence: We use the accounting program BAF (Business Automation Framework), version 2.0. Once a month, there is a need to send about 300 emails… Web Programming, Desktop Apps ∙ 6 days 8 hours back ∙ 10 proposals |
Reverse engineering of console utilities for querying SSD controllers (Flash ID)1. Purpose of the work Extraction of the application programming interface (API) for interaction with SSD/NVMe controllers from the provided set of console utilities (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron, etc.). The result should be working code in C/C++… C & C++, Desktop Apps ∙ 6 days 19 hours back ∙ 6 proposals |