Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ
Π‘Π΅Π· Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ

🦊 ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ обновлСния OTA для ΠΌΠΈΠΊΡ€ΠΎΠΏΠΈΡ‚ΠΎΠ½Π° с Senko.

Π‘ ростом использования ΠΌΠΈΠΊΡ€ΠΎΠΏΠΈΡ‚ΠΎΠ½Π° Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… Espressif, стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²Π°ΠΆΠ½ΡƒΡŽ … Tagged with Python, ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ, Showdev.

Π‘ ростом ΠœΠΈΠΊΡ€ΠΎΠΏΠΈΡ‚ΠΎΠ½ ИспользованиС Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… Espressif, стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ Π’ эфирС ОбновлСния Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ поддСрТания бСзопасности.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я построил Π‘Π΅Π½ΠΊΠΎ , простой способ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свой ΠœΠΈΠΊΡ€ΠΎΠΏΠΈΡ‚ΠΎΠ½ ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠ· GitHub Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я использовал для своСго ESP8266 На основС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ„Π»ΠΎΡ‚.

RangerDigital/Π‘Π΅Π½ΠΊΠΎ

🦊 ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ OTA обновлСния для Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Micropython.

πŸ›  ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ

Senko синхронизируСт Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° вашСм ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· рСпозитория GitHub.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· .fetch () ΠΈΠ»ΠΈ .update () ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π‘Π΅Π½ΠΊΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ SHA1 Π₯Сши Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ.

Если это Π½Π΅ Ρ‚Π°ΠΊ, Π‘Π΅Π½ΠΊΠΎ сохраняСт ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡ‚ GitHub Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° ваш ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠ΄.

🚧 Π’Ρ‹ нСсСтС ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ сСтСвого соСдинСния ΠΈ стратСгии ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ!

πŸ”₯ Установка

Π‘Π΅Π½ΠΊΠΎ состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ senko.py ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Upip Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Senko ΠΈΠ· Pypi :

import upip

upip.install("micropython-senko")

πŸŽ‰ ИспользованиС

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° модуля ΠΈ создания Π‘Π΅Π½ΠΊΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π‘ вашим ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ GitHub Π Π΅ΠΏΠΎ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

# boot.py
import senko

OTA = senko.Senko(
  user="ocktokit", # Required
  repo="octokit-iot", # Required
  branch="master", # Optional: Defaults to "master"
  files = ["boot.py", "main.py"]
)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Senko!

ОбновлСниС

Π—Π°Ρ‚Π΅ΠΌ послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСтСвому Π²Ρ‹Π·ΠΎΠ²Ρƒ Wi-Fi Ota.update () :

# boot.py
import senko
import machine
import network

OTA = senko.Senko(
   user="ocktokit", 
   repo="octokit-iot", 
   files=["boot.py", "main.py"]
)

# Connect to Wi-Fi network.
connect_wlan()

if OTA.update():
    print("Updated to the latest version! Rebooting...")
    machine.reset()

Π­Ρ‚ΠΎ ΠΎΠ½ΠΎ! Π­Ρ‚Π° настройка постараСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ boot.py ΠΈ main.py ΠžΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² https://bednarski.dev !

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»: “https://dev.to/rangerdigital/simple-ota-updates-for-micropython-with-senko-4lea”