0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ESP8266實(shí)現(xiàn)TCP控制LED和設(shè)置WIFI密碼

小華的物聯(lián)網(wǎng)嵌入式之旅 ? 來源:小華的物聯(lián)網(wǎng)嵌入式之旅 ? 作者:小華的物聯(lián)網(wǎng)嵌入 ? 2024-01-08 09:49 ? 次閱讀

B站視頻演示:https://www.bilibili.com/video/BV11t4y1m79r/?vd_source=089e9c9189991f80be4b4886098da65b#reply151108474896

代碼main.py,通過網(wǎng)頁把它傳入ESP8266 micropython固件中即可。如何傳輸自行查找資料吧。本人也忘記如何傳輸了。本文只是為了記錄一下曾經(jīng)寫過的代碼案例。方便以后查找。

import usocket #導(dǎo)入socket包
import machine
import network
import time
LED=machine.Pin(2, machine.Pin.OUT)
LED.value(1)
WIFI_flag=1;
is_flag=0
ssid="CMCC-lin-----"
pwd="linjia@15120613059"
ap_ip=""
st_ip=""
while True:
    
    if WIFI_flag == 1:
        ap = network.WLAN(network.AP_IF)
        ap.active(True)
        ap.config(essid='ESP8266_WIFI')
        ap.config(authmode=0)
        print("ESP8266_IP:",ap.ifconfig()[0]+",Port:23")#獲取IP信息
        s=usocket.socket()
        s.bind(('',23)) #監(jiān)聽本地端口23
        s.listen(5)
    ''' 
      if WIFI_flag == 0:        
        #連接熱點(diǎn)WIFI
        sta_if=network.WLAN(network.STA_IF)
        sta_if.active(True)
        #sta_if.scan()# 掃描當(dāng)前可連接的WiFi名稱
        sta_if.connect(ssid,pwd) # 設(shè)置要連接WiFi的名稱和連接密碼
        print("SSID:",ssid+"nPassword:",pwd)
        print("Linking WIFI...")
        while True:
            if sta_if.isconnected()==True:
               break
            else :
               time.sleep(10)              
               print("Linking WIFI error.Please reset device and input right SSID or PAWD again!n")
                 
        print("ESP8266 link WIFI status:",sta_if.isconnected())#檢查是否連接成功
        print("ESP8266_IP:",sta_if.ifconfig()[0]+",Port:80")#獲取IP信息
        s=usocket.socket()
        s.bind(('',80)) #監(jiān)聽本地端口23
        s.listen(5)
    '''
    print("waiting...")
    c,a=s.accept()
    print("one device link!")
    c.send("Hi,Welcome micropython of ESP8266n")
    while True:   
        
        client_data=c.recv(1024)#接收到的是字節(jié)
        print("client_data:",client_data)
        if client_data==b"":
           #s.listen(5)
           print("waiting...")
           c,a=s.accept()
           print("one device link!")
           c.send("Hi,Welcome micropython of ESP8266n")
        print("client:",client_data) #輸出收到的消息 
        if client_data==b"ON":#判斷字節(jié)
           LED.value(0)#開燈
           print("+++ LED OPEN +++")
           c.send("+++ LED OPEN +++n")
        if client_data==b"OFF":#判斷字節(jié),字符串前面加b為強(qiáng)制類型轉(zhuǎn)換為字節(jié)
           LED.value(1)#關(guān)燈
           print("--- LED CLOSE ---")          
           c.send("Hi,Welcome ESP8266 micropythonn")
           c.send("--- LED CLOSE ---n")       
        if client_data[0:5]==b"SSID:":  #判斷  要連接的WIFI 名     
           ssid=client_data[5:]
           ssid=bytes.decode(ssid)#字節(jié)轉(zhuǎn)換成字符串
           print("ssid:",ssid)          
        if client_data[0:5]==b"PAWD:":  #判斷WIFI密碼         
           pwd=client_data[5:]
           pwd=bytes.decode(pwd)#字節(jié)轉(zhuǎn)換成字符串
           print("password:",pwd)
        if client_data==b"CXIP":
           app = network.WLAN(network.AP_IF)
           sta = network.WLAN(network.STA_IF)
           print("STA_IP:",app.ifconfig()[0]+",Port:23n")
           print("AP_IP:",sta.ifconfig()[0]+",Port:23n")          
           c.send("nPort:23,STA_IP:")
           c.send(sta.ifconfig()[0])
           c.send("nPort:23,AP_IP:")
           c.send(app.ifconfig()[0])
           
        if client_data==b"WIFI_AP":
           WIFI_flag=1           
           print("--- WIFI_AP ---") 
           for i in range(1):
              LED.value(0)#開燈
              time.sleep(0.5)
              LED.value(1)#關(guān)燈
              time.sleep(0.5)
           ap = network.WLAN(network.AP_IF)
           ap.active(True)
           ap.config(essid='ESP8266_WIFI')
           ap.config(authmode=0)
           print("ESP8266_IP:",ap.ifconfig()[0]+",Port:23")#獲取IP信息   
           print("waiting...")
           for i in range(2):
              LED.value(0)#開燈
              time.sleep(0.5)
              LED.value(1)#關(guān)燈
              time.sleep(0.5)
           c,a=s.accept()
           print("one device link!")
           c.send("Hi,Welcome micropython of ESP8266n")    
           for i in range(3):
              LED.value(0)#開燈
              time.sleep(0.5)
              LED.value(1)#關(guān)燈
              time.sleep(0.5)           
        if client_data==b"WIFI_ST":
           WIFI_flag=0      
           print("--- WIFI_ST ---") 
           for i in range(1):
              LED.value(0)#開燈
              time.sleep(0.5)
              LED.value(1)#關(guān)燈
              time.sleep(0.5)
           #連接熱點(diǎn)WIFI
           sta_if=network.WLAN(network.STA_IF)
           sta_if.active(True)
           #sta_if.scan()# 掃描當(dāng)前可連接的WiFi名稱
           sta_if.connect(ssid,pwd) # 設(shè)置要連接WiFi的名稱和連接密碼
           print("SSID:",ssid+"nPassword:",pwd)
           print("Linking WIFI...")
           while True:
                if sta_if.isconnected()==True:
                   is_flag=1
                   break
                else :
                   time.sleep(10)              
                   print("Linking WIFI error.Please reset device and input right SSID or PAWD again!n")
                     
           print("ESP8266 link WIFI status:",sta_if.isconnected())#檢查是否連接成功
           print("ESP8266_IP:",sta_if.ifconfig()[0]+",Port:23")#獲取IP信息
           print("waiting...")
           for i in range(2):
              LED.value(0)#開燈
              time.sleep(0.5)
              LED.value(1)#關(guān)燈
              time.sleep(0.5)
           c,a=s.accept()
           print("one device link!")
           c.send("Hi,Welcome micropython of ESP8266n")  
           for i in range(3):
              LED.value(0)#開燈
              time.sleep(0.5)
              LED.value(1)#關(guān)燈
              time.sleep(0.5)           
       



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23277

    瀏覽量

    660844
  • TCPIP
    +關(guān)注

    關(guān)注

    1

    文章

    56

    瀏覽量

    22751
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    962

    瀏覽量

    45000
  • Micropython
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    4738
收藏 人收藏

    評論

    相關(guān)推薦

    esp8266如何破解wifi密碼及詳細(xì)步驟

    本文首先介紹了在知道wifi賬號及密碼的情況下ESP8266連接wifi的步驟,其次介紹了esp8266破解
    的頭像 發(fā)表于 05-24 08:57 ?9.1w次閱讀
    <b class='flag-5'>esp8266</b>如何破解<b class='flag-5'>wifi</b><b class='flag-5'>密碼</b>及詳細(xì)步驟

    CC2530采用ESP8266與手機(jī)APP通信

    項(xiàng)目概述: 項(xiàng)目實(shí)現(xiàn)通過CC2530控制ESP8266將其配置成AP+TCP服務(wù)器模式,并通過手機(jī)APP連接到TCP服務(wù)器并完成數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 05-23 09:15 ?3772次閱讀

    esp8266,tcp通信實(shí)例詳解

    ESP8266工作在station模式下,需確認(rèn)ESP8266已經(jīng)連接AP(路由器)并分配到IP地址,啟用client連接,ESP8266工作在soft-AP模式下,需確認(rèn)連接ESP8266
    發(fā)表于 11-04 10:14 ?4.3w次閱讀
    <b class='flag-5'>esp8266</b>,<b class='flag-5'>tcp</b>通信實(shí)例詳解

    如何使用ESP8266和Android控制繼電器

    ESP8266 WiFi模塊系列的下一個項(xiàng)目是通過在MIT App Inventor的幫助下開發(fā)的App(應(yīng)用程序)使用ESP8266和Android控制繼電器。通過在Android手
    的頭像 發(fā)表于 07-30 10:40 ?2.7w次閱讀
    如何使用<b class='flag-5'>ESP8266</b>和Android<b class='flag-5'>控制</b>繼電器

    怎樣使用ESP8266 Flasher和Programmer燒寫ESP8266 AT固件

    選擇要連接的COM端口ESP8266 Flasher和Programmer + ESP8266 Wifi串行收發(fā)器模塊。將BAUDRATE設(shè)置為115200。
    的頭像 發(fā)表于 11-18 17:58 ?2.1w次閱讀

    普中WIFI ESP8266模塊的詳細(xì)資料合集免費(fèi)下載

    規(guī)格書)PZ-WIFI-ESP8266模塊程序(PZ-WIFI-ESP8266模塊--STM32F1程序,PZ-WIFI-ESP8266模塊--STM32F4程序),調(diào)試工具(TCP&
    發(fā)表于 03-03 08:00 ?108次下載
    普中<b class='flag-5'>WIFI</b> <b class='flag-5'>ESP8266</b>模塊的詳細(xì)資料合集免費(fèi)下載

    ESP8266 wifi模塊開發(fā)匯總

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ESP8266 wifi模塊開發(fā)匯總?ESP8266 wifi模塊開發(fā)匯總本文檔主要介紹開發(fā)者在
    發(fā)表于 11-05 19:21 ?188次下載
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>wifi</b>模塊開發(fā)匯總

    STM32-ESP8266wifi模塊實(shí)現(xiàn)

    1.ESP8266WiFi模塊介紹1.1ESP8266wifi 模塊低功耗串口WiFi模塊ESP8266內(nèi)置一個Tensilica(泰思立達(dá)) Xtensa架構(gòu)的32位處理器L106,
    發(fā)表于 11-19 13:06 ?79次下載
    STM32-<b class='flag-5'>ESP8266wifi</b>模塊<b class='flag-5'>實(shí)現(xiàn)</b>

    ESP8266之硬件機(jī)理

    上的wifi4.4找到你要接入的wifi,添加賬號和密碼4.5獲取此時esp8266的IP地址4.6開啟多通道模式4.7開啟服務(wù)器,設(shè)置服務(wù)
    發(fā)表于 12-09 12:21 ?34次下載
    <b class='flag-5'>ESP8266</b>之硬件機(jī)理

    使用ESP8266-01制作WIFI遙控小車(一)

    互聯(lián)網(wǎng)實(shí)現(xiàn)對設(shè)備的遠(yuǎn)程控制。AP 模式:ESP8266 模塊作為熱點(diǎn),手機(jī)或電腦直接與模塊連接,實(shí)現(xiàn)局域網(wǎng)無線控制。STA+AP 模式:兩種
    發(fā)表于 01-12 19:47 ?46次下載
    使用<b class='flag-5'>ESP8266</b>-01制作<b class='flag-5'>WIFI</b>遙控小車(一)

    使用ESP8266 wifi DIY控制

    電子發(fā)燒友網(wǎng)站提供《使用ESP8266 wifi DIY控制燈.zip》資料免費(fèi)下載
    發(fā)表于 07-25 09:18 ?15次下載
    使用<b class='flag-5'>ESP8266</b> <b class='flag-5'>wifi</b> DIY<b class='flag-5'>控制</b>燈

    使用ESP8266 Wifi模塊和iPhone/Android控制LED

    電子發(fā)燒友網(wǎng)站提供《使用ESP8266 Wifi模塊和iPhone/Android控制LED.zip》資料免費(fèi)下載
    發(fā)表于 11-09 14:15 ?10次下載
    使用<b class='flag-5'>ESP8266</b> <b class='flag-5'>Wifi</b>模塊和iPhone/Android<b class='flag-5'>控制</b><b class='flag-5'>LED</b>

    基于ESP8266WiFi

    該項(xiàng)目使用 NodeMcu esp8266 和 Blynk 由您的智能手機(jī)控制的最簡單的 wifi 汽車。
    發(fā)表于 12-08 10:15 ?10次下載

    ESP8266芯片WIFI模塊接入云平臺的方法教程

    ESP8266 的模塊芯片是基于無線通信協(xié)議的 UART-WiFi透傳模塊芯片,支持 802.11b/g/n 的無線標(biāo)準(zhǔn),并帶有三種可選擇的工作模式。ESP8266 模塊的控制是通過
    的頭像 發(fā)表于 03-21 13:32 ?5843次閱讀
    <b class='flag-5'>ESP8266</b>芯片<b class='flag-5'>WIFI</b>模塊接入云平臺的方法教程

    esp8266wifi模塊怎么連接手機(jī)

    密碼)。 配置成功后,ESP8266將能夠通過路由器連接到互聯(lián)網(wǎng)。 手機(jī)連接同一WiFi網(wǎng)絡(luò) : 在手機(jī)上打開WiFi設(shè)置,
    的頭像 發(fā)表于 08-19 17:27 ?2812次閱讀