• ESP32S用Micropython编程开发,TCP连接Tlink控制开关灯,可微信控制开关


    Micropython烧录,就不说了,此网站有很详细的说明:http://www.1zlab.com 

    Micropython的开发资料网站可以参考:http://docs.micropython.org/en/v1.8.7/esp8266/esp8266/tutorial/pins.html

    ESP32S 入手攻略 开发指南

     

    下面直接来个简单的demo:

    import socket
    addr_info = socket.getaddrinfo("tcp.tlink.io",8647)
    addr = addr_info[0][-1]
    s = socket.socket()
    s.connect(addr)#连接服务器  也可以直接连接ip: s.connect(('ip',8647))
    s.send(b'FL03VD0S65PYX1MO')#发送消息,b是转换成字节型,里面的内容是我设备的序列号
    print('connect....')
    while True:
        data = s.recv(500).decode('utf8')#接收后解码,源码是字节型
        if data == '1':
            print('open LED')
        if data == '0':
            print('close')
        s.send('[H:1][S:2][D?3][T:d]')#随便发点啥说明设备在线

    代码可以用粘贴,就是1zlab的里面网站里面的IDE

    然后再加io口的代码就是下面(我就用esp32s上面的自带蓝灯,GPIO2):

    import socket,machine#导入gpio操作库
    LED = machine.Pin(2, machine.Pin.OUT)#GPIO2输出模式
    addr_info = socket.getaddrinfo("tcp.tlink.io",8647)
    addr = addr_info[0][-1]
    s = socket.socket()
    s.connect(addr)#连接服务器
    s.send(b'FL03VD0S65PYX1MO')#发送消息
    print('connect....')
    while True:
        data = s.recv(500).decode('utf8')#接收后解码,源码是字节型
        if data == '1':
            LED.value(1)
            print('open LED')
        if data == '0':
            LED.value(0)
            print('close')
        s.send('[H:1][S:2][D?3][T:d]')#随便发点啥说明设备在线

    这样就可以在微信上面,控制开关了!

    在优化一下,把心跳搞一下设置50秒发送一次(随便什么数据那个 ,其实那个是上传的数据,我这里不需要上传什么,毕竟就是一个开关)

    心跳代码:

    import socket,machine,utime#导入gpio操作库
    old_time=0
    LED = machine.Pin(2, machine.Pin.OUT)#GPIO2输出模式
    addr_info = socket.getaddrinfo("tcp.tlink.io",8647)
    addr = addr_info[0][-1]
    s = socket.socket()
    s.connect(addr)#连接服务器
    s.send(b'FL03VD0S65PYX1MO')#发送消息
    print('connect....')
    while True:
        data = s.recv(500).decode('utf8')#接收后解码,源码是字节型
        if data == '1':
            LED.value(1)
            # print('open LED')
        if data == '0':
            LED.value(0)
            # print('close')
        run_time=utime.time()
        if run_time-old_time>=50:
            s.send('[H:%d][S:2][D?3][T:d]'%run_time)#50秒就发一次心跳
            old_time=run_time
        print(data)

    再接入5V继电器,就可控制啦 ,当然还可以用控制更多开关,显示数据啥的,

    每次上传的这个地址可以查看

     http://api.tlink.io/tlink_interface/api/device/getDataPoint_200040730.htm

  • 相关阅读:
    A1049. 命题逻辑
    矩形面积交:输出0.00
    完美的代价
    枚举孪生素数对
    改变参数的两种方法
    二面准备:React、Typescript、其他基础补充
    【TypeScript】基础及问题汇总
    【React】做一个百万答题小项目
    【React】相关题目总结
    【React】半小时深刻理解《半小时深刻理解React》(老套娃了)
  • 原文地址:https://www.cnblogs.com/xiaohe520/p/10852396.html
Copyright © 2020-2023  润新知