Budget: 5000 UAH Deadline: 7 days
Если есть возможность прикрутить туда память (SPI/I2C), то вполне реализуемо - иначе реализуемо, но без HTTP, только UDP, который он будет дергать сам и смотреть есть ли прошивка
Здравствуйте, коллеги
Дано ардуиноподобные платы (амперка). Которая выступает в роли клиента и стучится за разными данными на сервер.
Необходим механизм удаленной перепрошивки Искры.
Желательно без дополнительных модулей. Теоретически знаю, что есть решения по обновлению через вайфай модуль. Но это план Б скорее.
Это когда мы через DHCP получаем IP адрес на ардуину, а потом уже подключаем ее к сети Wifi. После этого уже указываем на какую-то версию обновлений и прошиваем.
Логика работы, как я её вижу.
Выложил на сервер (не ардуина) в определенное место новый архив или файл. Отметил какой-то флажок в веб интерфейсе на сервере. Ардуина увидела необходимость обновиться и обновилась.
Amp_v.20_05_08_2020 - , что-то нажал и обновило.
И параллельно есть пара квестов по программированию на ардуине. Кому интересно, жду в проект. От Вас предложение по реализации, условия по времени и стоимость.
Спасибо и хорошего дня.
Budget: 5000 UAH Deadline: 7 days
Если есть возможность прикрутить туда память (SPI/I2C), то вполне реализуемо - иначе реализуемо, но без HTTP, только UDP, который он будет дергать сам и смотреть есть ли прошивка
Здравствуйте.Правильно ли я понимаю что вы хотите реализовать перепрошивку даже без дополнительного МК соторый будет прошивать эту Ардуино?
Хотелось бы. Но скорее всего это не реально. Поэтому базовых сценария два.
1. Вынесения настроечных параметров на сервер и при соединении с сервером запрашиваем их и «запись» этих параметров в ардуину или в карту памяти(которую можем добавить).
Скорее всего этот сценарий реален с точки зрения «динамической настройки параметров каких-то с сервера» - задержек, имени и параметров.
2. Либо прошивка через дополнительную плату. Вроде WiFi. Тогда теоретически целиком.
3. А вот через сам езернет модуль. Скорее всего не выйдет, либо нужен волшебник.
Такая возможность есть но не на всех модулях Ethernet и имеет свои нюансы.
Если вам интересно то можем пообщаться в л.с.
Вариант с ардуиной самой по себе:
Добавляем место для хранения новой прошивки: spi flash, sd card, spi psram (я бы выбрал это, что бы не изнашивать flash, можно ещё и ионистор добавить). В коде самой прошивки идёт проверка на сервере новой прошивки и флага обновления. Если такое появляется - оно скачивается во внешнее место для хранения. Проверяется CRC или хеш. Если ок, перезагружаемся.
Дальше работает переделанный бутлоадер. Он проверяет есть ли во внешнем месте хранения новая прошивка. Для надёжности можно ещё раз посчитать CRC или хеш, сравнить с установленной - и если разные прошить новую.
Минут тут такой: если сломать в самой прошивке (скетче) функцию поиска и скачивания обновления - то работать перестанет.
Можно добавить ещё один МК(ардуину или что-то другое, например какой-нибудь STM32), который будет подключен к ethernet шилду, а для ардуины выглядеть как прозрачная прослойка. У него прошивку не меняем, и там закладываем функцию поиска обновления.
По сути, тот же вариант, что с esp8266.
Можно взять что-то покрупнее. Onion Omega2/аналогичный модуль у китайцев дешевле/б/у роутер с openwrt. Он становиться и ethernet-шилдом и удалённым программатором.
И средой для запуска кода на js/python/bash/lua/c. Ардуина управляет релешками, что-то критическое по времени делает, содержит защитные алгоритмы.
К последнему варианту. Существует или существовал arduino yun ethernet shield. По факту это есть SoC от роутера с openwrt и дополнительным софтом. У него как раз есть функция прошивки скетча по сети.
Если я не ошибаюсь в библиотеке ArduinoOTA есть скетч OTASckethDownload, который каждые 5 сек. проверяет наличие файла на HTTP и автоматически сам себя обновляет.
Hello. I am looking for a mentor in Linux. I have experience as a strong junior DevOps specialist, but Linux and Kubernetes are my weak points. While I have some project experience with Kubernetes, my interaction with Linux is very superficial. Creating something, adding, renaming, opening, etc. is clearly not enough. I need a mentor who can help me improve in this area. The main task is to ensure that the knowledge sticks in my head, possibly through some pet project, tasks, or something along those lines, rather than just "repeat after me." I have taken courses on my own, but they don't particularly "stick" in my head. Here is a rough list of what I think I need: - Linux/Unix systems — in-depth administration of operating systems, file systems, user and access rights management, processes and services (systemd), Bash scripting, logging, monitoring, security configuration, automation of administrative tasks; - Networking technologies — OSI model and TCP/IP stack, DNS, HTTP/HTTPS, SSL/TLS, SSH, VPN, load balancing, proxy servers, NAT, routing, network utilities (ping, traceroute, netstat, ss, tcpdump, curl), diagnosing and troubleshooting network issues; If Kubernetes can be added to this list, that would be great. Perhaps you can suggest something from your side. The format of the sessions, as I see it, is twice a week, meetings, discussions, consultations. More details can be your ideas and suggestions. Regarding the cost per hour or per month - please propose.
Development of a Power App, support for me as a beginner. Canvas App, assistance in developing the Screen Help in developing the data structure for the App Programming functions Assistance in creating Date-verse Tables