- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;6章物联网技术综合案例
■ ■■
■ T1
学习目标
完成本章学习后,要求掌握如表所示的内容:
本单元的要求
|知识|
能力
物联网软件系统常见功能
了解
比较熟练
常见物联网软件系统开发环境
掌握 熟练
网关和客户端通信方式及原理
理解
使用MySQL实现数据存储和管理 的基本方法
比较熟练
使用PyCharm开发智能网关的基 布法
熟练
使用Android Studio开发安卓客
户立而的基本方法
熟练
第6章综合案例
6.1功能概述
6.2功能实施
6.3本章习題
6.1功能概述
实现一个简易智能家居系统,可以在移动端
APP中监控室内温湿度、二氧化碳、气压、光照强 度及室内人数等情况,并可以控制空调温度,可以 根据外部光照强度及屋内是否有人实现自动开关灯
光,还可以查看历史数据。
6.1
6.1功能概述
基于Python的智能网关
|基TAndroid的客户端
接收并解析仿真数据源的数据
接收并解析网关发来的数据
将数据处理后发送给客户端
将数据处理后显示在界面上
接收客户端发来的指令
向网关发送指令
将接收到的数据存入MySQL数据库
将接收到的数据存入SQLite并在历 史数据贞面中显示
将接收到的指令存入日志文件
6.2功能实施
6.2.1 环境酉H置需求
6.2.2智能网关实现
623客户端实现
624运行情况
6.2.1环境配置需求
?安装配置PyCharm
?安装配置Android Studio
?安装配置MySQL
?准备仿真数据源
6.2.2
6.2.2智能网关实现
6.2.2
6.2.2智能网关实现
在PyCharm中新建工程,工程名为gateway6 ,在其中 的venv文件夹中新建gateway6.py文件。
? 2.接收仿真数据源的数据
仿真数据源一次传送6个传感器的数据,格式为json格式字 符串,样例如为:
{”0200”:”5”,“0700”:”2”,“0100”:”53”,”0600”:”5”,“0300”:”102“ ,” 0000“:“23“}。
传感器类型
|数量
最小值
最大值
单位
编号
温度
1
20
30
O
0000
湿度
1
30
70
%
0100
光照强度
1
0
10
级
0200
气压
1
99
103
kPa
0300
C02
1
2
6
%
0600
人体红外
1
0
3
个
0700
? 2.接收仿真数据源的数据
用i n酒己置文件来存储i p地址等可变信息。
在gateway6\venv文件夹新建config.ini文件。中括号内的为 section值,每行为一个键值对,等号左边为键,右边为值。 [gateway]
ip=06
resourceport=10068 clientport=10067 db=gateway dbuser=root
dbpwd=password user=admin pwd=pwd
? 2.接收仿真数据源的数据
定义read_config函数用于读取config.in酒己置文件。
import configparser
def read_config():
cf = configparser.ConfigParser()
cf.read(config.ini)
ip = cf.getCgateway, ip)
source_port = cf.getjgateway, sourceport1) client_port = cf.get(gateway,clientport1) db = cf.getCgateway1, db)
dbuser = cf.getCgateway, dbuser)
dbpwd = cf.getCgateway1, dbpwd)
return ip, source^port, client_port, db, dbuser, dbpwd
? 2.接收仿真数据源的数据
定义get_data_from_datasource函数从数据源获取数据存 放在全局变量data_from_source中。
import socket
import time
data_from_source =
def get_data_from_datasource(ip/ source_port):
while True:
global data__from_source
s = socket.socket(socket.AFJNET, socket.SOCK_STREAM)
s.connect((ip, int(source_port)))
s.sendfbfindXn1)
data_from_source = s.recv(4096).decode(lutf-8,1)
print(get:‘ + data-from_s
您可能关注的文档
- (本科)Excel在财务中的应用教学ppt课件(完整版)电子教案.docx
- 2020-2021学年度第二学期八年级物理试题及参考答案.docx
- 2021广东一模化学试题附答案.docx
- 2021年法律职业资格考试卷一(刑法)历年真题试卷汇编(含答案解析).docx
- 2022年全国硕士研究生招生考试302数学二预测卷1和答案解析.docx
- 2022年全国硕士研究生招生考试302数学二预测卷8和答案解析.docx
- 2022年全国硕士研究生招生考试数学三303预测卷4和答案解析.docx
- 2022年西工大附中中考九模物理试题.docx
- Excel-函数用法解析.docx
- java初级教程 第一章 认识java语言.docx
文档评论(0)