ESP8266开发固件MQTT服务器


ESP8266模块开发固件,微信配网,及MQTT服务器连接,订阅的主题为芯片ID,消息可以控制ESP8266的IO口电平
资源截图
代码片段和文件信息

import json
import paho.mqtt.client as mqtt
import threading
from http.server import HTTPServerbaseHTTPRequestHandler

data =‘error‘
httphost = (‘‘ 8008)
mqtthost = ‘‘
mqttport =1883


class MqttClient:
    #global mqtt_flagmqtt_dat
    client = mqtt.Client(‘tester‘)
    def __init__(self host port):
        self._host = host
        self._port = port
        self.client.on_connect = self._on_connect  # 设置连接上服务器回调函数
        self.client.on_message = self._on_message  # 设置接收到服务器消息回调函数

    def connect(self username=‘tester‘ password=‘tester‘):
        self.client.username_pw_set(username password)
        self.client.connect(self._host self._port 60)  # 连接服务器端口为1883维持心跳为60秒

    def publish(self topic data):
        self.client.publish(topic data)

    def loop(self timeout=None):
        thread = threading.Thread(target=self._loop args=(timeout))
        thread.start()

    def _loop(self timeout=None):
        if not timeout:
            self.client.loop_forever()
        else:
            self.client.loop(timeout)

    def _on_connect(self client userdata flags rc):
        if not rc:
            print(“
连接MQTT服务器成功
“)
            client.subscribe(“python“)
            
        else:
            print(“
连接MQTT服务器失败
“)
        

    def _on_message(self client userdata msg):  # 从服务器接受到消息后回调此函数
        global mqtt_flagmqtt_datmqtt_sub
        mqtt_flag=1
        mqtt_sub = msg.topic
        mqtt_dat = msg.payload
        print(msg.topic+“ “ + “:“ + str(msg.payload))

    def publish_loop(self):
        pass
#///////////

class Resquest(baseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header(‘Content-type‘ ‘application/json‘)
        if self.command==‘GET‘:
            if self.path[1:]==‘open‘:
                print(‘主题:‘+self.headers[‘topic‘])
                print(‘消息:‘+self.headers[‘message‘])
                client.publish(self.headers[‘topic‘]self.headers[‘message‘])
                data=‘get it‘
            else:
                data=‘path error‘
        self.end_headers()
        self.wfile.write(json.dumps(data).encode())

if __name__ == ‘__main__‘:
    mqtthost=input(‘输入MQTT服务器IP地址:‘)
    if mqtthost==‘0‘:
        mqtthost=‘127.0.0.1‘
        mqttport=1883
    else:
        mqttport=input(‘输入MQTT服务器端口:‘)
    port = input(‘输入HTTP服务器端口:‘)
    httphost = (‘‘ int(port))
    client = MqttClient(mqtthost 1883)
    client.connect(‘tester‘‘tester‘)
    client.loop()
    
    server = HTTPServer(httphost Resquest)
    print(“HTTPport:%s%s“ % httphost)
    server.serve_forever()
    
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-12-02 00:38  ESP8266开发
     目录           0  2018-11-30 14:02  ESP8266开发1.下载工具
     文件        6148  2017-09-22 19:41  ESP8266开发1.下载工具.DS_Store
     文件       16378  2018-11-30 13:56  ESP8266开发1.下载工具1.jpg
     文件       79701  2018-11-30 13:59  ESP8266开发1.下载工具2.jpg
     文件         259  2017-11-30 15:57  ESP8266开发1.下载工具DownloadTool_release_note.txt
     文件    25639609  2017-12-06 20:54  ESP8266开发1.下载工具ESPFlashDownloadTool_v3.6.2.2.exe
     目录           0  2018-11-30 00:32  ESP8266开发1.下载工具RESOURCE
     文件      355894  2014-08-08 13:18  ESP8266开发1.下载工具RESOURCECON_ERROR.bmp
     文件       14390  2014-08-08 13:18  ESP8266开发1.下载工具RESOURCECON_ERROR_S.bmp
     文件      473654  2016-06-06 17:36  ESP8266开发1.下载工具RESOURCEDEVKEY_ERROR.bmp
     文件       18998  2016-06-06 17:36  ESP8266开发1.下载工具RESOURCEDEVKEY_ERROR_S.bmp
     文件      355894  2014-08-08 13:22  ESP8266开发1.下载工具RESOURCEDOWNLOAD.bmp
     文件       14390  2014-08-08 13:23  ESP8266开发1.下载工具RESOURCEDOWNLOAD_S.bmp
     文件      355894  2016-04-22 01:32  ESP8266开发1.下载工具RESOURCEEFUSE_ERROR.bmp
     文件       14390  2016-04-22 01:34  ESP8266开发1.下载工具RESOURCEEFUSE_ERROR_S.bmp
     文件      355894  2014-08-08 12:37  ESP8266开发1.下载工具RESOURCEERROR.bmp
     文件       14390  2014-08-08 12:39  ESP8266开发1.下载工具RESOURCEERROR_S.bmp
     文件      355894  2014-08-08 12:35  ESP8266开发1.下载工具RESOURCEFAIL.bmp
     文件       14390  2014-08-08 12:40  ESP8266开发1.下载工具RESOURCEFAIL_S.bmp
     文件      355894  2014-08-08 13:27  ESP8266开发1.下载工具RESOURCEFINISH.bmp
     文件      355894  2016-04-22 11:42  ESP8266开发1.下载工具RESOURCEFINISH_RESTART.bmp
     文件       14390  2016-04-22 11:43  ESP8266开发1.下载工具RESOURCEFINISH_RESTART_S.bmp
     文件       14390  2014-08-08 13:27  ESP8266开发1.下载工具RESOURCEFINISH_S.bmp
     文件      355894  2014-08-08 12:28  ESP8266开发1.下载工具RESOURCEIDLE.bmp
     文件       14390  2014-08-08 12:40  ESP8266开发1.下载工具RESOURCEIDLE_S.bmp
     文件      355894  2014-08-08 12:38  ESP8266开发1.下载工具RESOURCESTOP.bmp
     文件       14390  2014-08-08 12:39  ESP8266开发1.下载工具RESOURCESTOP_S.bmp
     文件      355894  2014-08-08 13:11  ESP8266开发1.下载工具RESOURCESYNC.bmp
     文件       14390  2014-08-08 13:11  ESP8266开发1.下载工具RESOURCESYNC_S.bmp
     文件       25600  2018-07-10 19:37  ESP8266开发1.下载工具RESOURCEThumbs.db
............此处省略193个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)