版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
+硬件趣学Python编程
网络互动情谊传,网络表情互发游戏的制作牛艾科技目录ContentsSuccessWords2第一部分网络基础知识简介第二部分Skids的无线通信功能第三部分MQTT协议入门第四部分消息接收器的实现第五部分开发板相互发送表情的实现目录ContentsSuccessWords3第一部分网络通信基础知识简介4无处不在的网络通信近年来,网络通信技术的发展是有目共睹的,其进入了一个前所未有的发展时期,在通信流量保持快速增长的同时,业务应用业呈现更为丰富的多样性网络通信先后经历了单机、局域网、互联网、移动互联网和物联网等阶段,目前正处于新技术革命深度交叉与融合的发展阶段。5网络通信的常用协议网络通信中最重要的就是网络协议,类似人类交流中最重要的就是语言(中文、英文……)网络协议就是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流。好比人与人之间交流,只有使用相同语言才能正常地进行交流。国际标准化组织ISO于1981年正式推出了一种网络系统结构--OSI七层参考模型,各种计算机网络逐渐向其靠拢,大大推动了网络通信的发展。基于OSI模型,美国国防部高级研究计划局计算机网的TCP/IP网络逐渐成为了业界标准,并演化到如今的Internet6TCP/IP网络架构7TCP/IP的主要协议8TCP/IP协议栈的数据传输过程9常用的网络设备1网卡:安装在计算机上,使计算机连网的硬件设备2中继器:是对信号进行再生和还原的网络设备,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离3网桥:是连接两个局域网的一种存储/转发设备,它能将一个大的局域网分割为多个网段,或将两个以上的局域网互联为一个逻辑局域网4路由器:是网络的主要结点设备,通过路由决定数据的转发。转发策略称为路由选择,这也是路由器名称的由来。作为不同网络之间互相连接的枢纽,路由器系统构成了整个互联网的主体脉络。5交换机:负责统一网络内的数据帧的转发,交换机根据数据帧的MAC地址转发至相应的端口10部分设备图片
网卡
家用路由器
核心路由器
交换机11无线局域网与WIFI从用户角度,通信网络可分为有线局域网(以太网)、无线局域网、广域网和移动网络无线局域网利用射频技术,使用电磁波,取代传统双绞铜线或光纤所构成的局域网络,通过空气进行通信连接,使网络的部署和连接更加便利WIFI(WirelessFidelity),用于将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接,是一种短距离无线传输技术,属于无线局域网的一种目前我们常用的无线局域网几号都是WIFI目录ContentsSuccessWords12第二部分Skids的无线通信功能*Skids对无线通信的支持Skids开发板使用了ESP32芯片ESP32是一个集成了WIFI和蓝牙功能的芯片,双核32位MCU、2.4GHz双模Wi-Fi和蓝牙、主频高达230MHz,计算能力可达600DMIPSSkids提供了丰富的Python网络接口,便于开发人员进行网络相关的设计开发*常用的Python接口网络相关接口封装在network库,主要用于WIFI相关的配置和连接WIFI有两种配置模式,一个用于station(当ESP32连接到路由器时),一个用于热点(accesspoint)(用于其他设备与ESP32连接)。使用以下指令创建这些对象的实例:importnetworksta_if=network.WLAN(network.STA_IF)#STA模式ap_if=network.WLAN(network.AP_IF)#AP模式15常用的Python接口可使用以下指令检查接口是否有效:sta_if.active()#Ture表示接口有效,False表示无效ap_if.active()
#Ture表示接口有效,False表示无效可使用以下指令检查接口的网络设置:ap_if.ifconfig()#返回值为:IP地址、网络掩码、网关、DNS16WiFi的配置步骤配置WIFI,让Skids可以连接某个热点实现上网的过程如下:sta_if=network.WLAN(network.STA_IF)#STA模式ap_if=network.WLAN(network.AP_IF)#AP模式ifap_if.active():#如果AP模式开启了,则先关闭ap_if.active(False)ifnotsta_if.isconnected():print('Connectingtonetwork...')sta_if.active(True)#激活STAsta_if.connect(wifi_name,wifi_SSID)#连接WiFi热点,参数为WiFi的SSID和密码whilenotsta_if.isconnected():pass目录ContentsSuccessWords17第三部分MQTT协议入门18MQTT协议简介MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),构建于TCP/IP协议上,由IBM在1999年发布。MQTT基于客户端-服务器的消息发布/订阅传输协议,以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。MQTT协议是轻量、简单、开放、低开销和易于实现的,这些特点使它适用范围非常广泛。使其在物联网、小型设备、移动应用等方面有较广泛的应用。19MQTT的应用场景20MQTT的实现方式实现MQTT协议需要客户端和服务器端通讯完成在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(即服务器,Broker)、订阅者(Subscribe)消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)payload,可以理解为消息的内容,是指订阅者具体要使用的内容21MQTT的总体架构22MQTT的客户端与服务器服务端工作流程:(1)接受来自客户的网络连接;(2)接受客户发布的信息;(3)处理来自客户端的订阅和退订请求;(4)向订阅的客户转发其已经订阅的消息。
客户端工作流程:(1)连接服务端(2)发布消息,这些消息其他客户端可能会订阅;(3)订阅其它客户端发布的消息;(4)退订或删除消息;(5)断开与服务器连接。
23MQTT的主要特点使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合使用TCP/IP提供网络连接。主流的MQTT是基于TCP连接进行数据推送的,但是也有基于UDP的版本小型传输,开销很小,以降低网络流量有三种消息发布服务质量:"至多一次",消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。"至少一次",确保消息到达,但消息重复可能会发送。"只有一次",确保消息到达一次。在一些要求比较严格的系统中会使用此级别,确保用户收到且只会收到一次。24MQTT的Python开发Skids可以作为MQTT的客户端,与MQTT服务端进行通讯使用TCP/IP提供网络连接。主流的MQTT是基于TCP连接进行数据推送的,但是也有基于UDP的版本小型传输,开销很小,以降低网络流量有三种消息发布服务质量:"至多一次",消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。"至少一次",确保消息到达,但消息重复可能会发送。"只有一次",确保消息到达一次。在一些要求比较严格的系统中会使用此级别,确保用户收到且只会收到一次。25MQTT服务器的搭建需要的软件(1)Emqtt下载地址:/downloads(2)Mqttbox下载地址:/html/mqttbox/downloads.html26MQTT服务器的搭建解压好emqtt打开命令提示符进入bin文件夹【bin文件夹的位置是你解压压缩包的位置】在命令提示符中输入emqttd.cmdstart27MQTT服务器的搭建浏览器中输入网址:18083默认登录用户名和密码是admin,public需要增加自己的登录信息使用如下命令设置。emqttd_ctladminsadd<Username><Password>28安装mqttbox安装后打开MQTT服务器的搭建29MQTT服务器的搭建点击createmqttclient按下图输入需要填入MqttclientName,Protocol以及HostProtocol需要选择mqtt/tcp,Host写服务器地址和端口号注:mqtt服务端口号默认是188330保存成功后进入如下的界面,接下来可以开始测试消息发布和订阅。如下图所示,绿色“Connected”按钮表明当前MQTT连接已经成功Topictosubcribe订阅的主题必须是skids板子的消息主题+id【在第四部分会继续讲到】Qos字段选择0-AlmostOncePayload里输入内容publish发布内容MQTT服务器的搭建31MQTT服务器的搭建打开EMQ的管理员控制台,可以看到一些相关的统计数据已经发生了变化。比如在“Themessagesdata”表格中,“qos0/received”的值为1,说明EMQ收到了1条QoS0的消息;“qos0/sent”的值为1,表示EMQ转发了一条QoS0的消息。目录ContentsSuccessWords32第四部分消息接收器的实现33消息接收器的实现设备连接网络需要设置Wifi的名字和密码对应例子程序中的变量要改成所要连接的设备热点的账号密码或者路由器的账号密码;Mqtt的服务器地址和端口设置对应服务器的信息DEVICE_ID用来标识连接的设备以及需要监听的TOPIC34消息接收器的实现配制完成所要连接的wifi信息后通过sta模式获取WiFi并连接网络让设备持续连上网络35消息接收器的实现服务器消息回调目录Contents
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心理援助热线咨询员服务质量评估规范
- 铸石生产粉尘防治操作手册
- 职场压力调适手册
- 医学影像检查预约流程规范
- 外墙涂料无人机喷涂作业指导书
- 2026年河北移动面试题目及答案
- 超声引导下神经阻滞应用体会技能培养与思维训练
- 2026年老师招聘考试模拟题目及答案详解
- 2026年粮油仓库保管员新员工岗位专业知识笔模拟题目及答案详解
- 烧伤患者的护理课件
- 2026年南京铁道职业技术学院单招职业技能考试题库附答案详解(模拟题)
- DB6501∕T 080-2025 牛羊杂清洗规范
- 高考语文复习微专题之文言文游记类散文
- 泰森多边形课件
- T/CNSS 030-2024蛋白棒、能量棒和膳食纤维棒
- T/CECCEDA 1-2025企业管理创新体系要求及实施指南
- 资金统借统还管理办法
- 新编经济法教程
- 项目七婴幼儿道路交通伤害预防与处理姚丽娇课件
- 《非手术面部年轻化》课件
- 江苏省苏州市六区联考2024-2025学年八年级上学期期末考试物理试题(含答案)
评论
0/150
提交评论