{"id":6038,"date":"2024-01-17T18:22:40","date_gmt":"2024-01-17T17:22:40","guid":{"rendered":"https:\/\/arduino.net.pl\/?p=6038"},"modified":"2024-01-17T20:57:56","modified_gmt":"2024-01-17T19:57:56","slug":"esp-now-i-micropython","status":"publish","type":"post","link":"https:\/\/arduino.net.pl\/index.php\/esp-now-i-micropython\/","title":{"rendered":"ESP-NOW i MicroPython"},"content":{"rendered":"\n<p>Oto prosty tutorial, kt\u00f3ry ilustruje, jak wys\u0142a\u0107 i odebra\u0107 dane za pomoc\u0105 wbudowanej biblioteki <code>espnow<\/code> na mikroprocesorze ESP32 C3 Super Mini (ale te\u017c ka\u017cdym innym esp) w j\u0119zyku MicroPython:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2024\/01\/8abc3993-dca8-492e-871a-3c04900e847a.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2024\/01\/8abc3993-dca8-492e-871a-3c04900e847a.jpeg\" alt=\"\" class=\"wp-image-6042\" style=\"aspect-ratio:4\/3;object-fit:cover\" srcset=\"https:\/\/arduino.net.pl\/wp-content\/uploads\/2024\/01\/8abc3993-dca8-492e-871a-3c04900e847a.jpeg 1024w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2024\/01\/8abc3993-dca8-492e-871a-3c04900e847a-300x300.jpeg 300w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2024\/01\/8abc3993-dca8-492e-871a-3c04900e847a-150x150.jpeg 150w, https:\/\/arduino.net.pl\/wp-content\/uploads\/2024\/01\/8abc3993-dca8-492e-871a-3c04900e847a-768x768.jpeg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Wysy\u0142anie danych (Sender):<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">\nimport network\nimport espnow\nimport time\n\n# Inicjalizacja interfejsu Wi-Fi\nsta = network.WLAN(network.STA_IF)\nsta.active(True)\nsta.disconnect()\n\n# Inicjalizacja ESPNow\nesp_now = espnow.ESPNow()\nesp_now.active(True)\n\n# Adres MAC odbiornika\nreceiver_mac = b&#039;\\xbb\\xbb\\xbb\\xbb\\xbb\\xbb&#039;\n\n# Dodanie odbiornika\nesp_now.add_peer(receiver_mac)\n\n# Wysy\u0142anie danych\nesp_now.send(receiver_mac, &quot;Starting...&quot;)\n\nfor i in range(100):\n    esp_now.send(receiver_mac, str(i) * 20, True)\n    time.sleep(0.1)\n\nesp_now.send(receiver_mac, b&#039;end&#039;)\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Odbieranie danych (Receiver):<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; light: false; title: Kod:; toolbar: true; notranslate\" title=\"Kod:\">\nimport network\nimport espnow\n\n# Inicjalizacja interfejsu Wi-Fi\nsta = network.WLAN(network.STA_IF)\nsta.active(True)\nsta.disconnect()\n\n# Inicjalizacja ESPNow\nesp_now = espnow.ESPNow()\nesp_now.active(True)\n\nwhile True:\n    host, msg = esp_now.recv()\n\n    if msg:  # msg == None w przypadku timeout w recv()\n        print(&quot;Received from {}: {}&quot;.format(host, msg.decode()))\n\n        if msg == b&#039;end&#039;:\n            break\n<\/pre><\/div>\n\n\n<p>W powy\u017cszym kodzie, <code>sender<\/code> inicjalizuje interfejs Wi-Fi, nast\u0119pnie inicjalizuje ESPNow, dodaje odbiornika i wysy\u0142a dane. <code>receiver<\/code> r\u00f3wnie\u017c inicjalizuje interfejs Wi-Fi, inicjalizuje ESPNow, a nast\u0119pnie w niesko\u0144czonej p\u0119tli odbiera dane i wypisuje je na konsol\u0119. P\u0119tla jest przerywana, gdy odebrane dane to <code>b'end'<\/code>.<\/p>\n\n\n\n<p>Pami\u0119taj, \u017ce adres MAC odbiornika (<code>receiver_mac<\/code>) w obu przypadkach musi by\u0107 dostosowany do rzeczywistego adresu MAC odbiornika ESP32.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">LINKI<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dokumentacja:\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.micropython.org\/en\/latest\/library\/espnow.html\">https:\/\/docs.micropython.org\/en\/latest\/library\/espnow.html<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Film:\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/youtu.be\/zitT1Roc_mU?si=pqMxBo6I2A8bcCR0\">https:\/\/youtu.be\/zitT1Roc_mU?si=pqMxBo6I2A8bcCR0<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Oto prosty tutorial, kt\u00f3ry ilustruje, jak wys\u0142a\u0107 i odebra\u0107 dane za pomoc\u0105 wbudowanej biblioteki espnow na mikroprocesorze ESP32 C3 Super Mini (ale te\u017c ka\u017cdym innym esp) w j\u0119zyku MicroPython: Wysy\u0142anie&#8230;<\/p>\n","protected":false},"author":3,"featured_media":6042,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-6038","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/6038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/comments?post=6038"}],"version-history":[{"count":6,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/6038\/revisions"}],"predecessor-version":[{"id":6052,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/posts\/6038\/revisions\/6052"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/media\/6042"}],"wp:attachment":[{"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/media?parent=6038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/categories?post=6038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduino.net.pl\/index.php\/wp-json\/wp\/v2\/tags?post=6038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}