Π‘ ΡΠΎΡΡΠΎΠΌ ΠΠΈΠΊΡΠΎΠΏΠΈΡΠΎΠ½ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ 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”