在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用ESP32實現UDP通信的方法

嵌入式開發愛好者 ? 來源:嵌入式開發愛好者 ? 作者:嵌入式開發愛好者 ? 2022-11-14 10:21 ? 次閱讀

大家好,我是ST。

前面給大家分享了ESP32使用miropython編程環境搭建,今天給大家分享如何使用ESP32實現UDP通信

8fcbc438-629c-11ed-8abf-dac502259ad0.png

一、前言

ESP32本身自帶WIFI模塊,可以連接網絡。本文主要是用ESP32連接手機熱點,利用UDP協議將ESP32作為服務端,電腦利用網絡助手軟件作為客戶端與ESP32通信,從而通過無線通信去控制ESP32上的LED燈的亮滅。

二、連接網絡

Mriopython官方文檔給出了一些方法和完整的案例,我們先來看看。

下面是官方給出的方法,根據這些方法可以自由處理連接網絡的步驟,或者獲取需要的信息

91341f64-629c-11ed-8abf-dac502259ad0.jpg

下面是官方給出的一個連接網絡的完整案例

917c9f14-629c-11ed-8abf-dac502259ad0.jpg

解釋:wlan.connect(‘ssid’,’key’)中的ssid是需要連接WIFI的名字,key是需要連接WIFI的密碼

以下是我連接我手機WIFI熱點的函數代碼

defdo_connect():
wlan=network.WLAN(network.STA_IF)
wlan.active(True)
ifnotwlan.isconnected():
print('連接網絡...')
#連接WIFI
wlan.connect('11','1234567a')
whilenotwlan.isconnected():
pass
print("聯網成功!")
print('networkconfig:',wlan.ifconfig())

運行程序后,串口打印出ESP32的IP地址,有了這個地址,后面UDP客戶端就可以往這個IP地址上發送消息了。

91a21b90-629c-11ed-8abf-dac502259ad0.jpg

三、在ESP32端創建UDP服務端對象

本次實驗UDP服務端在ESP32上創建,UDP客戶端用電腦端的網絡助手上位機上創建。

代碼如下:

defstart_udp():
 #創建udp套接字
 udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
 #綁定一個固定的端口號,0.0.0.0表示綁定所有IP
udp_socket.bind(("0.0.0.0",7788))
 returnudp_socket

解釋:udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)中的socket.AF_INET表示用于Internet進程間通信,socket.SOCK_DGRAM表示用UDP協議。如果要用TCP協議則選擇socket.STREAM。7788為端口號,用戶可自行分配可用的端口號。

四、處理收到的數據

程序代碼如下:

def main():
    do_connect()
    udp_socket=start_udp()
    led=machine.Pin(22,machine.Pin.OUT)
    while True:
        #接收數據并拆包
        recv_data,sender_info=udp_socket.recvfrom(1024)
        #打印收到的數據
        print("{}發送{}".format(sender_info,recv_data))
        #取出接收到的數據
 recv_data_str=recv_data.decode("utf-8")
ifrecv_data_str=='led_off':
 led.value(1)
 elifrecv_data_str=='led_on':
 led.value(0)

解釋:當客戶端發送“led_off”時,熄滅ESP32上的LED燈,當客戶端發送“led_on”時,點亮ESP32上的LED燈。

五、整體程序代碼

代碼如下:

import socket
import time
import network
import machine


def do_connect():
    wlan=network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('連接網絡...')
        #連接WIFI
        wlan.connect('11', '1234567a')
        while not wlan.isconnected():
            pass
    print("聯網成功!")
print('networkconfig:',wlan.ifconfig())


def start_udp():
    #創建udp套接字
    udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    #綁定一個固定的端口號
    udp_socket.bind(("0.0.0.0",7788))
    return udp_socket


def main():
    do_connect()
udp_socket=start_udp()
    led=machine.Pin(22,machine.Pin.OUT)
    while True:
        #接收數據并拆包
        recv_data,sender_info=udp_socket.recvfrom(1024)
        #打印收到的數據
        print("{}發送{}".format(sender_info,recv_data))
        #取出接收到的數據
        recv_data_str=recv_data.decode("utf-8")
        if recv_data_str=='led_off':
            led.value(1)
        elif recv_data_str=='led_on':
            led.value(0)




if __name__ == "__main__":
    main()

運行程序,用電腦上的網絡助手創建UDP客戶端發送消息,ESP32串口打印如下

91c22f2a-629c-11ed-8abf-dac502259ad0.jpg

當發送led_off時,ESP32上的LED燈熄滅,當發送led_on時,ESP32上的LED燈點亮。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 無線通信
    +關注

    關注

    58

    文章

    4604

    瀏覽量

    143886
  • UDP
    UDP
    +關注

    關注

    0

    文章

    327

    瀏覽量

    34043
  • ESP32
    +關注

    關注

    18

    文章

    978

    瀏覽量

    17528

原文標題:使用ESP32實現UDP通信的方法

文章出處:【微信號:嵌入式開發愛好者,微信公眾號:嵌入式開發愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用ESP32實現藍牙通信

    上次給大家分享了如何使用ESP32實現UDP通信,今天跟大家聊聊如何使用ESP32實現藍牙
    發表于 11-21 09:31 ?1.6w次閱讀

    esp32 udp broadcast丟包怎么避免?

    esp32 udp broadcast 丟包
    發表于 06-17 06:05

    ESP32 UDP通信客戶端例程以及疑問

    本人在使用ESP32UDP通訊時,不知道怎么發送廣播包,請問應該如何發送廣播包呢。如下代碼,UDP client通信,當ip地址為192.168.1.220時,能夠發送出去,但換成
    發表于 12-29 13:44

    如何利用ESP32和Ubuntu搭建UDP通信系統?

    如何利用ESP32和Ubuntu搭建UDP通信系統?
    發表于 01-20 06:09

    esp32s2 AP模式UDP組網問題求解

    請問各位朋友們,我一塊ESP32s2開AP模式,建立UDP server。讓4塊STA模式的client ESP32連接。主機有何方法可以區分這4個從機。我想通過從機的AID和IP區分
    發表于 02-14 07:07

    淺談Zephyr ESP32 wifi如何使用

    和ethernt L2對接,因此在zephyr下只要通過簡單的配置就可以在應用層使用socket通過wifi進行網絡通信,而不需要去關心esp32 wifi驅動的細節。 配置方法 進行下面配置后開機
    的頭像 發表于 06-01 10:17 ?6980次閱讀

    ESP32 SDIO 使用教程

    ESP32 SDIO 使用教程本文旨在說明如何使用標準的 ESP32-WROOM-32D 開發板進行 SDIO 的通信。本文檔適用于所有需要與 ESP32 SDIO slave
    發表于 11-23 17:51 ?233次下載
    <b class='flag-5'>ESP32</b> SDIO 使用教程

    ESP32ESP-IDF 教學(九)—— 串口通信(UART)

    ESP32ESP-IDF 教學(九)—— 串口通信(UART)文章目錄ESP32ESP-IDF 教學(九)—— 串口
    發表于 11-26 13:21 ?44次下載
    <b class='flag-5'>ESP32</b> 之 <b class='flag-5'>ESP</b>-IDF 教學(九)—— 串口<b class='flag-5'>通信</b>(UART)

    ESP32作為從機實現BLE藍牙功能淺析

    引言去年11月份,自己接到的第一個任務就是藍牙,二維碼任務結束后自己又開始做這一個任務,由于還沒有定好應用場景,自己先根據自己的理解,介紹一下如何用ESP32實現BLE藍牙。開發環境本工程將
    發表于 12-07 13:51 ?16次下載
    <b class='flag-5'>ESP32</b>作為從機<b class='flag-5'>實現</b>BLE藍牙功能淺析

    ESP32學習記錄<三>串口通信

    ESP32學習記錄串口通信文章目錄ESP32學習記錄串口通信前言一、通過串口打印出數據1.初始化串口2.打印數據二、串口控制LED亮滅1.接收串口發送的數據2.
    發表于 12-20 19:34 ?17次下載
    <b class='flag-5'>ESP32</b>學習記錄<三>串口<b class='flag-5'>通信</b>

    ESP32系列芯片的規格

    ESP32是一款2.4GHz Wi-Fi和藍牙組合芯片,采用TSMC超低功耗40nm設計技術它旨在實現最佳功率和射頻性能,顯示出魯棒性、多功能性和靈活性在各種應用和電源場景中的可靠性。ESP32系列芯片包括
    發表于 04-25 16:21 ?7次下載

    使用ESP32連接騰訊云實現遠程控制

    上次給大家分享了如何使用ESP32實現藍牙通信,今天跟大家聊聊如何使用ESP32連接騰訊云實現遠程控制。本次實驗用到MQTT協議,同樣,我用
    的頭像 發表于 11-22 09:19 ?3777次閱讀

    基于ESP32+MicroPython實現聯網并進行UDP通信

    使用 esp32 開發程序,非常重要的功能就是使用 wifi,下面我們就講一下 esp32 連接 wifi 的方法
    的頭像 發表于 06-13 17:05 ?6448次閱讀
    基于<b class='flag-5'>ESP32</b>+MicroPython<b class='flag-5'>實現</b>聯網并進行<b class='flag-5'>UDP</b><b class='flag-5'>通信</b>

    ESP32ESP32通過Internet進行通信

    電子發燒友網站提供《ESP32ESP32通過Internet進行通信.zip》資料免費下載
    發表于 06-15 09:58 ?4次下載
    <b class='flag-5'>ESP32</b>到<b class='flag-5'>ESP32</b>通過Internet進行<b class='flag-5'>通信</b>

    esp32如何接入豆包

    要在 ESP32 上接入豆包工具,本質上是讓 ESP32 設備與豆包的 API 進行通信,以獲取相關服務
    的頭像 發表于 02-05 13:40 ?138次閱讀
    <b class='flag-5'>esp32</b>如何接入豆包
    主站蜘蛛池模板: 2018天堂视频免费观看 | 一级特黄aaa大片在线观看视频 | 色婷婷视频 | 成人黄色免费 | 亚洲三级黄 | 免费被视频网站在线观看 | 亚洲乱亚洲乱妇41p国产成人 | 直接看的黄色网址 | 欧美日韩国产一区二区三区不卡 | 免费网站黄 | 午夜一级精品免费毛片 | 免费观看三级毛片 | 桃花岛亚洲精品tv自拍网站 | a级网站| 免费在线观看视频网站 | 手机看片日韩高清1024 | 国产成人精品日本亚洲语音1 | 亚洲第一精品夜夜躁人人爽 | 中文字幕一区二区三区不卡 | 色多多福利网站老司机 | 天堂资源在线8 | 婷婷六月丁 | 美女视频黄视大全视频免费网址 | 亚洲人成电影在线 | 一区二区三区四区免费视频 | 天堂资源在线中文 | 流不尽奶水的大乳h | 免费观看黄色网 | 午夜三级理论在线观看视频 | 宅男lu66国产在线播放 | 亚洲日本在线观看 | 日本三级日产三级国产三级 | 天天干免费视频 | 天堂在线免费视频 | 午夜看片网 | 天天插天天透 | 青青草99热久久 | 亚洲天堂首页 | 在线天堂中文有限公司 | 毛茸茸成熟妇女亚洲人 | 色多多在线视频 |