zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    UVa 116 单向TSP(多段图最短路)
    POJ 1328 Radar Installation(贪心)
    POJ 1260 Pearls
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    UVa 1620 懒惰的苏珊(逆序数)
    POJ 1018 Communication System(DP)
    UVa 1347 旅行
    UVa 437 巴比伦塔
    UVa 1025 城市里的间谍
  • 原文地址:https://www.cnblogs.com/xiaohe520/p/10852396.html
Copyright © 2011-2022 走看看