1、MQTT通信协议:Python可以使用MQTT协议与传感器和设备进行通信,以实现数据的传输和控制。
2、数据库管理:Python可以使用各种数据库,如MySQL、SQLite等,管理物联网智能家居系统中的数据。
3、Web框架:Python中的Web框架,如Flask和Django等,可以用于构建智能家居系统的Web界面,方便用户进行远程控制和监控。
1 Django
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。Django与其他框架比较,它有个比较独特的特性,支持orm,将数据库的 *** 作封装成为python,对于需要适用多种数据库的应用来说是个比较好的特性。不过这种特性,已经有其他库完成了,sqlalchemy
2Flask
Flask是一个使用Python编写的轻量级Web应用框架。其WSGI工具箱采用Werkzeug,模板引擎则使用Jinja2。Flask使用BSD授权。
Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
Flask很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。Flask框架学会以后,可以考虑学习插件的使用。例如使用WTForm+Flask-WTForm来验证表单数据,用SQLAlchemy+Flask-SQLAlchemy来对你的数据库进行控制。
3Tornado
Tornado是一种Web服务器软件的开源版本。Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
得利于其非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接,因此Tornado是实时Web服务的一个理想框架。不过现在与众多的框架比较,Tornado已经被抛在了后面,Django已经超过了它,更不说其他框架了,只能说Tornado使用纯python开发的性能还是不能与其他框架借助于cython开发的性能相比。
4webpy
webpy是一个Python的web框架,它简单而且功能强大。webpy是公开的,无论用于什么用途都是没有限制的。而且相当的小巧,应当归属于轻量级的web框架。但这并不影响webpy的强大,而且使用起来很简单、很直接。在实际应用上,webpy更多的是学术上的价值,因为你可以看到更多web应用的底层,这在当今“抽象得很好”的web框架上是学不到的:)
5Aio>
高性能异步web框架,既有客户端的也有服务端的,还支持web-socket
6Sanic
与flask类似,并支持异步
7Vibora
旨在成为最快的pythonweb框架。vibora的高性能依赖于cython实现的uvloop异步框架及cython实现的>
8Bottle
Bottle是一个简单高效的遵循WSGI的微型pythonWeb框架。说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。
9Falcon
Falcon是一个构建云API的高性能Python框架,它鼓励使用REST架构风格,尽可能以最少的力气做最多的事情。
10weppy
性能优于flask的一个全栈web框架
最近在着手研究使用网页控制硬件的交互过程,发现mqtt协议有很多种语言的封装,整个思路也很清晰,就是一个客户端进行发布和订阅+服务器中间代理的过程,于是开始学习使用MQTT框架搭建交互平台。客户端使用了MQTTjs,服务器使用mosca(基于nodejs)。
QoS在MQTT中有(摘自 MQ 遥测传输 (MQTT) V31 协议规范 ):
MQTTjs只是支持了MQTT协议,并没有支持QoS,也就是说,只支持最低级别的“至多一次”(QoS0)。
在MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(payload)三部分构成。
这里只了解消息体,固定头和可变头并不需要我们手动写。
payload消息体包含CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE四种类型的消息:
(1)Connect 与服务器建立连接。
(2)Disconnect 与服务器断开TCP/IP会话。
(3)Subscribe 订阅。
(4)UnSubscribe 取消订阅。
(5)Publish 发送消息请求,发送完成后返回应用程序线程。
二、实现(具体的API稍后呈现)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)