0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP8266实现TCP控制LED和设置WIFI密码

小华的物联网嵌入式之旅 来源:小华的物联网嵌入式之旅 作者:小华的物联网嵌入 2024-01-08 09:49 次阅读

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

代码main.py,通过网页把它传入ESP8266 micropython固件中即可。如何传输自行查找资料吧。本人也忘记如何传输了。本文只是为了记录一下曾经写过的代码案例。方便以后查找。

import usocket #导入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)) #监听本地端口23
        s.listen(5)
    ''' 
      if WIFI_flag == 0:        
        #连接热点WIFI
        sta_if=network.WLAN(network.STA_IF)
        sta_if.active(True)
        #sta_if.scan()# 扫描当前可连接的WiFi名称
        sta_if.connect(ssid,pwd) # 设置要连接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)) #监听本地端口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)#接收到的是字节
        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":#判断字节
           LED.value(0)#开灯
           print("+++ LED OPEN +++")
           c.send("+++ LED OPEN +++n")
        if client_data==b"OFF":#判断字节,字符串前面加b为强制类型转换为字节
           LED.value(1)#关灯
           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)#字节转换成字符串
           print("ssid:",ssid)          
        if client_data[0:5]==b"PAWD:":  #判断WIFI密码         
           pwd=client_data[5:]
           pwd=bytes.decode(pwd)#字节转换成字符串
           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)#关灯
              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)#关灯
              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)#关灯
              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)#关灯
              time.sleep(0.5)
           #连接热点WIFI
           sta_if=network.WLAN(network.STA_IF)
           sta_if.active(True)
           #sta_if.scan()# 扫描当前可连接的WiFi名称
           sta_if.connect(ssid,pwd) # 设置要连接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)#关灯
              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)#关灯
              time.sleep(0.5)           
       



声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23250

    浏览量

    660521
  • TCPIP
    +关注

    关注

    1

    文章

    56

    浏览量

    22749
  • ESP8266
    +关注

    关注

    50

    文章

    962

    浏览量

    44949
  • Micropython
    +关注

    关注

    0

    文章

    68

    浏览量

    4731
收藏 人收藏

    评论

    相关推荐

    esp8266如何破解wifi密码及详细步骤

    本文首先介绍了在知道wifi账号及密码的情况下ESP8266连接wifi的步骤,其次介绍了esp8266破解
    的头像 发表于 05-24 08:57 9.1w次阅读
    <b class='flag-5'>esp8266</b>如何破解<b class='flag-5'>wifi</b><b class='flag-5'>密码</b>及详细步骤

    CC2530采用ESP8266与手机APP通信

    项目概述: 项目实现通过CC2530控制ESP8266将其配置成AP+TCP服务器模式,并通过手机APP连接到TCP服务器并完成数据传输。
    的头像 发表于 05-23 09:15 3738次阅读

    esp8266,tcp通信实例详解

    ESP8266工作在station模式下,需确认ESP8266已经连接AP(路由器)并分配到IP地址,启用client连接,ESP8266工作在soft-AP模式下,需确认连接ESP8266
    发表于 11-04 10:14 4.3w次阅读
    <b class='flag-5'>esp8266</b>,<b class='flag-5'>tcp</b>通信实例详解

    如何使用ESP8266和Android控制继电器

    ESP8266 WiFi模块系列的下一个项目是通过在MIT App Inventor的帮助下开发的App(应用程序)使用ESP8266和Android控制继电器。通过在Android手
    的头像 发表于 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串行收发器模块。将BAUDRATE设置为115200。
    的头像 发表于 11-18 17:58 2.1w次阅读

    普中WIFI ESP8266模块的详细资料合集免费下载

    规格书)PZ-WIFI-ESP8266模块程序(PZ-WIFI-ESP8266模块--STM32F1程序,PZ-WIFI-ESP8266模块--STM32F4程序),调试工具(TCP&
    发表于 03-03 08:00 108次下载
    普中<b class='flag-5'>WIFI</b> <b class='flag-5'>ESP8266</b>模块的详细资料合集免费下载

    ESP8266 wifi模块开发汇总

                                  ESP8266 wifi模块开发汇总 ESP8266 wifi模块开发汇总本文档主要介绍开发者在
    发表于 11-05 19:21 188次下载
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>wifi</b>模块开发汇总

    STM32-ESP8266wifi模块实现

    1.ESP8266WiFi模块介绍1.1ESP8266wifi 模块低功耗串口WiFi模块ESP8266内置一个Tensilica(泰思立达) Xtensa架构的32位处理器L106,
    发表于 11-19 13:06 79次下载
    STM32-<b class='flag-5'>ESP8266wifi</b>模块<b class='flag-5'>实现</b>

    ESP8266之硬件机理

    上的wifi4.4找到你要接入的wifi,添加账号和密码4.5获取此时esp8266的IP地址4.6开启多通道模式4.7开启服务器,设置服务
    发表于 12-09 12:21 34次下载
    <b class='flag-5'>ESP8266</b>之硬件机理

    使用ESP8266-01制作WIFI遥控小车(一)

    互联网实现对设备的远程控制。AP 模式:ESP8266 模块作为热点,手机或电脑直接与模块连接,实现局域网无线控制。STA+AP 模式:两种
    发表于 01-12 19:47 46次下载
    使用<b class='flag-5'>ESP8266</b>-01制作<b class='flag-5'>WIFI</b>遥控小车(一)

    使用ESP8266 wifi DIY控制

    电子发烧友网站提供《使用ESP8266 wifi DIY控制灯.zip》资料免费下载
    发表于 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

    电子发烧友网站提供《使用ESP8266 Wifi模块和iPhone/Android控制LED.zip》资料免费下载
    发表于 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

    该项目使用 NodeMcu esp8266 和 Blynk 由您的智能手机控制的最简单的 wifi 汽车。
    发表于 12-08 10:15 10次下载

    ESP8266芯片WIFI模块接入云平台的方法教程

    ESP8266 的模块芯片是基于无线通信协议的 UART-WiFi透传模块芯片,支持 802.11b/g/n 的无线标准,并带有三种可选择的工作模式。ESP8266 模块的控制是通过
    的头像 发表于 03-21 13:32 5809次阅读
    <b class='flag-5'>ESP8266</b>芯片<b class='flag-5'>WIFI</b>模块接入云平台的方法教程

    esp8266wifi模块怎么连接手机

    密码)。 配置成功后,ESP8266将能够通过路由器连接到互联网。 手机连接同一WiFi网络 : 在手机上打开WiFi设置
    的头像 发表于 08-19 17:27 2617次阅读