同花顺(300033)财经讯 科技剧透巨资投入,物联网前景大好。今日物联网板块继续大幅上涨,长电科技(600584)、英唐智控(300131)、力源信息(300184)早盘均封死涨停板,汉威电子(300007)、国民技术(300077)、邦讯技术(300312)大涨逾5%。
据悉,IBM在3月31日表示,将在未来四年向该公司新成立的物联网部门投资30亿美元,帮助客户收集和处理海量实时数据,改善生产进程。上述物联网服务将建立在远程云端上,收集各种新型和成倍增长的数据源,这些数据源包括建筑传感器、智能手机和家用电器等。物联网前景广阔,后市有望持续走强。(同花顺财经原创中心)
牛市来了还等什么 股市热点教您如何掘金
郑重声明:本文属同花顺金融服务网独家拥有版权原创文章,如需转载,须注明文章来源:"同花顺金融服务网"。对于任何形式的侵权行为,本公司将保留一切追究法律责任的权利。
近日,国际权威市场调研机构IDC预测2026年中国物联网连接规模将超百亿,引发社会高度关注。
据IDC预测,2022年中国物联网连接规模达56亿个,到2026年将增至约102.5亿个,复合增长率约18%。
报告指出,中国蜂窝网络连接数增速最快,在中国政府和运营商的积极推广建设之下已实现
“物超人”,2022年底实现18.45亿个,在公用事业、智能制造、车联网、智能家居等领域广泛应用,预计将以21%的增速到2026年实现36.3亿个。
展望未来,IDC表示,消费者行业是最大的物联网连接组成,智能家居、可穿戴设备依然是重要增长点,物联网连接数量到2026年将接近59.8亿个;公共设施行业物联网连接数预计到2026年将达到22亿个;制造业物联连接数到2026年将超3亿个;医疗健康行业、教育行业的教育设施均将分别以27%、22%的的增速快速发展。
从IDC的报告看,物联网产业呈现出良好的发展态势。可以说,在万物互联的时代,随着5G、云计算、大数据、传感、人工智能等技术的融合发展,物联网技术正在不断改变着我们的生活。
01物联网应用场景加快落地,市场空间可观
所谓物联网,就是通过射频识别(RFID)装置、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。通俗地讲,物联网就是“物物相连的互联网”。
近年来,我国政府高度关注和支持物联网产业的发展,相继出台了多项鼓励政策措施,促其快速健康有序发展。
此前高层指出,要加快发展物联网,加快发展数字经济,促进数字经济和实体经济深度融合。工信部、网信办等8部门联合印发的《物联网新型基础设施建设三年行动计划(2021—2023年)》明确到2023年年底,在国内主要城市初步建成物联网新型基础设施,为物联网描绘出了清晰的蓝图。
与此同时,覆盖广泛的移动通信网络也成为了物联网快速发展背后的重要推动力。目前,我国建成了全球规模最大的移动通信网络,截至2022年底,移动通信基站总数达1083万个,初步形成窄带物联网(NB-IoT)、4G和5G多网协同发展的格局,能够提供不同速率等级的连接能力,满足各行业物联网业务和应用场景要求。
伴随与人工智能、5G技术更紧密的结合及产业政策的持续支持,物联网正向着更广阔的应用场景迅速扩展。
具体来看,目前智能网联汽车产业发展是全球大国竞争的重要科技领域,而我国场景应用探索走在全球前列;VR/AR游戏市场持续增长,虚拟现实技术应用逐步扩展进入其他领域;随着家庭医疗保健和个性化健康监测成为人类的时尚,医疗物联网也迎来发展契机。
国金证券研报则指出,未来物联网有望聚焦智能出行、智能家居、工业互联网和卫星互联四类场景变化:比如,智能出行方面,国内汽车网联化程度持续提升,L2及以上自动驾驶技术的快速渗透和普及催化4G/5GT-BOX起量;在工业互联网方面,我国工业机器人密度较低,但每年安装量位居全球首位,2021年我国工业互联网产业规模超万亿。全球卫星也进入密集发射期,2021年我国卫星导航定位终端产品总销量超5.1亿台,其中汽车前装市场已成为第二大需求场景,我国高精度定位市场同增66%,创历史新高。
中信建投表示,物联网的价值和重要性已经得到广泛认同,随着大数据、人工智能、5G、云计算等技术的发展,物联网应用需求将会井喷式爆发。
据行业估计,目前全球物联网产值大约15万亿美元左右,其年均增长率接近23%,预计到2025年全球物联网产值将达到30万亿美元的体量。
02相关企业有望受益市场红利
从产业链看,物联网产业结构主要涉及感知层(传感器、芯片)、传输层(通信模组、通信网络)、平台层(操作系统、开放式云平台各类管理和赋能平台)、应用层(车联网、智能网联汽车、VR/AR虚拟设备、智能家居、工业互联网)等环节。
而产业链的每一个环节都有不少拔尖的龙头。如,芯片领域代表企业有中兴通讯、北斗星通;传感器领域有移为通信;通信模组有移远通信;通信网络领域三大电信巨头,及擅长通信设备的烽火通信等;开放式云平台有阿里、百度、腾讯等;智能硬件领域有小米科技、海尔智家等;集成应用则有三六零、四维图新等。
对于扎根物联网垂直行业应用的企业来说,随着物联网技术的发展,有望为他们打开了更广阔的业绩增长空间。
作者 瓶子
最近谷歌在其博客中宣布了谷歌物联网核心(Google IoT Core)平台内测版本的发布。在这个物联网平台中,客户能够安全地将设备连接到谷歌云平台(GCP),并在上面集成其他数据分析服务。然后,客户可以使用这些数据来为其组织提供可操作的分析信息,以驱动产出更好的业务结果。
谷歌这一产品所针对的一些用例包括:
实时监控,分析和预测消费者的能源消耗。
运输物流公司可以在正确的时间,正确的地点提前规划正确的车辆、船只或飞机。
石油、天然气、制造业公司可以实现设备维护的智能调度,从而最大限度地提高生产效率,并最大限度减少停机时间
这些行业中的组织所遇到的挑战包括应对固定的运营成本和历史原因产生的复杂性。在某些情况下,设备可能已经使用了几年甚至十几年。使用传统工具,无法让组织在高级分析中利用基于云的消费和投资信息。
由于固有的技术要求,维护工业控制系统(ICS)解决方案的安全性也会带来不少挑战。许多 ICS 的解决方案由于遗留的安全漏洞而受到威胁,例如 Conficker 和最近的 WannaCry 恶意软件漏洞。这些环境易受攻击的原因之一是这些设备的管理可能比较复杂。这正是谷歌希望通过为组织提供全球分布式设备端到端管理和安全模型所要解决的问题。
谷歌正在解决的另一个问题是客户历史上可能存在的碎片化数据。由于工业设备所产生的数据量,客户鉴于维护成本和复杂性考虑,会使用多个短期的数据仓库。如果使用谷歌的弹性企业数据仓库 BigQuery,客户就可以将维护大型数据集的责任转交给谷歌。
客户还可以利用谷歌云平台中的其他服务,包括使用谷歌云数据流进行数据流的处理、云发布订阅进行消息传递并使用谷歌机器学习进行预测性维护建模。为了可视化所收集到的所有数据,可以使用谷歌合作伙伴所提供的解决方案,包括 Looker,Qlik,Tableau 和 Zoomdata。
同时,可以通过行业标准的消息队列遥测传输协议(MQTT)与谷歌云端物联网核心进行连接。为了更好地提升连接性,谷歌已与一些设备合作伙伴,包括 ARM、Intel、Marvel 和 Sierra Wireless 等进行了合作。
NOA Technologies 是谷歌云端物联网核心的早期使用者之一,他们为管理移动资产提供了一个基于云的平台。其工程副主管 Jose L. Ugia 介绍了他们是如何使用谷歌的这一平台的:
借助谷歌云端物联网核心,我们已经能够将大量自行车连接到云端,并快速构建智能交通车队管理工具,为运营人员提供自行车的实时利用率,分布和性能指标,同时可以预测我们客户的需求。
作者 | Haor.L
责编 | 王晓曼
出品 | CSDN博客
笔者最近参加了校内的一场物联网开发竞赛,从零开始,踩坑无数,感觉很多时候事情都不像预料的一样发展,离开了美好的IDE,太多事情要在板子上一步步摸索。运行失败还好,运行成功但BUG了,简直不知道从何查起。
但认识了M5Stack简单的线上系统,学习了MQTT,HTTP等数据传输方式,入门Arduino和MIrcopython等开发语言,接触ESP32的板子,感受最深的一点就是,物联网的准入门槛并没有那么高,成本也没有那么高,但这还是一片混沌未开的区域,进场者真的可以大有所为,起码方便自己的日常生活是绰绰有余的。
总的来说,这次物联网入坑,值得!
阅读本文后你将收获:
了解这款板子的开发环境如何配置
掌握ONENET数据传输
掌握HTTP的GET方法
开发准备
本博客作为学习物联网开发的笔记,也简单的将自己的片上系统作为例程写出来。
M5STACK简介
M5STACK是一款对初学者非常友好的ESP32开发板,可以用Micropython和C编程,也可以用很简单的拖拽式编程,拥有庞大的官方文档,只是国内只在最近开始流行,油管和B站上都有官方的教学视频,也在常常更新,很有创造力的一个产品。
结构上主要分为Core和Unit,Core作为核心控件,Unit作为传感器采集数据。
下图图就是笔者自己做的产品雏形,中间的小屏幕是Core,作为主控,周围有GPS和RFID,摄像头等单元用来采集数据。
设计雏形:
由于所有的M5产品都预设了乐高块,所有你可以把他们拼在乐高模组上,油管上还有不少人用它做乐高机器人,确实是很有创意的一款产品,颜值也不错,所以笔者选择它用来开发。
环境配置
UIFlow环境
在线编程地址:UIFlow
前几天GIthub发布了远程编译器Codespace,可以看出远程编译确实是大势所趋。
这里不得不说UIFlow把物联网的门槛大大降低了,笔者配置ESP-IDF用了将近一天,而使用UIFlow可以免去一切环境配置的痛苦。
支持拖拽编程,可视化UI设计,自带例程,确实是良心产品。
ESP-IDF环境
方法一
笔者配置ESP-IDF工具链时,一开始是使用Windows系统的工具安装器。
ESP-IDF 工具安装器可在“开始”菜单中,创建一个打开ESP-IDF 命令提示符窗口的快捷方式。本快捷方式可以打开 Windows 命令提示符(即 cmd.exe),并运行 export.bat 脚本以设置各环境变量(比如 PATH,IDF_PATH 等)。
(不得不说,这个安装器的健壮性非常差!!)
安装心得:上网技巧+把系统的PATH重新检查一遍,有些卸载残余的PATH会导致玄学问题!
方法二(更推荐)
宇宙第一VS code中有插件 ESPRESSIF
可以更清楚每时每刻在干什么,也更清楚出了BUG去哪里修补。
感知模块
M5开发了很多环境传感器,包括温湿度,人体感应,RFID,摄像头等等,在官方开发文档上也都给出了相关例程和GIthub的源码链接。
笔者自己的项目使用的是RFID、GPS和Camera模块,其中除了Camera只能用ESP-IDF编程,其他单元都支持在UIFlow上在线编程,再加上,Micropython确实比C++舒服太多。
网络连接
Wi-Fi链接
M5Stack已经自己预置了Wi-Fi链接,开机就是,不过在Mircopython里写起来也很简单,下面是一个范例:
import network
SSID="YOUR-WIFI-NAME"
PASSWORD="YOUR-WIFI-PASSWORD"
wlan=None
s=None
def connectWifi(ssid,passwd):
'''
连接指定wifi
'''
global wlan
wlan=network.WLAN(network.STA_IF)
wlan.active(True)
wlan.disconnect
wlan.connect(ssid,passwd)
while(wlan.ifconfig[0]=='0.0.0.0'):
time.sleep(1)
return True
使用Mircoython的Wi-Fi模块,connect(ssid,password),就可以进入可爱的Wi-Fi连接界面了,M5GO的封装还是不错的。
NB-IOT
IOT模组需要额外配一张NB卡,某宝20就可以拿下一年500M流量,不过笔者没有继续尝试,已经有可爱的M5GO和稳定的Wi-Fi,就没探索用3G进行通讯。
HTTP通讯
接下来介绍物联网的精髓,“联网”,采集到了数据,那数据上报和传输是重中之重。
笔者觉得HTTP是最好理解,好入门的通讯协议,这里也先介绍这种方法。
建议参考视频:B站:接入中国移动ONENET平台
笔者尝试过诸如阿里云和一些外国的平台,最后发现都不如中国移动专门为物联网开发的ONENET,一来稳定,不用担心服务商跑路,而来阿里云显得太过臃肿,对入门者很不友好,最终选择了ONENET,他的HTTP封装好了很好看的数据流模板,如:
位置信息可视化:
自动折线图
POST上传数据创建流模板
首先需要创建一个数据流模板,用于接收传过来的数据:
发送请求
请求方式:POST
URL:http://api.heclouds.com/devices/device_id/datapoints
其中,device_id:需要替换为设备ID
注意:ONENET默认post的数据叫Datastreams,参数配置见表:
请求实例:
{
"datastreams": [{
"id": "temperature",
"datapoints": [{
"at": "2013-04-22T00:35:43",
"value": "bacd"
},
{
"at": "2013-04-22T00:55:43",
"value": 84
}
]
},
{
"id": "key",
"datapoints": [{
"at": "2013-04-22T00:35:43",
"value": {
"x": 123,
"y": 123.994
}
},
{
"at": "2013-04-22T00:35:43",
"value": 23.001
}
]
}
]
}
使用ONENET的模拟API调用可以快速熟悉数据的模式:
其中,URL的device_id,和下面的API_key换成自己设备的,可以在设备列表找到,就可以往自己设备的数据流模板传一个值为3的value。
Micropython用HTTPUIFlow里自带了HTTP模块,但是很玄学,很难用!
这里笔者用Micropython自己写了一份HTTP的传输:
def http_put_data(data):
#post data into onenet
url='http://api.heclouds.com/devices/'+DEVICE_ID+'/datapoints'
values={'datastreams':[{"id":"temperature","datapoints":[{"value":data}]}]}
jdata = json.dumps(values)
r=urequests.post(url,data=jdata,headers={"api-key":API_KEY})
return r
亲测还是很好用的,可能是UIFlow自己的json封装比较奇怪?
使用模组交互的数据传输
既然M5STACK可以同时使用多个模组,那么自然也就可以使用模组来控制数据传输:
如:使用RFID卡,控制POST:
rfid0 = unit.get(unit.RFID, unit.PORTA)
while(True):
if rfid0.isCardOn:
rsp = http_put_data(12)
emoji0.show_map([[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,1,1,1,1,1,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]], 0xff0000)
else:
#wlan.disconnect
#wlan.active(False)
emoji0.show_map([[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0],[0,0,0,1,0,0,0]], 0xff0000)
wait(1)
第一行的rfid0 = unit.get(unit.RFID, unit.PORTA)是指定从PORTA读取RFID的射频信息
使用HTTP的GET获取b站信息
有POST就要有GET,这里介绍一个B站大佬“正负加减”的例程,获取自己的粉丝数,里面讲解也很细致,大佬也是老Geek了,关注不亏!UIFlow的GET结构:核心思想是知道哪个key是follow,可以在F5审查源代码找到:
此处的URL是
http://api.bilibili.com/x/relation/stat?vmid=99566555
UP和DOWN是控制RGB等的函数。
我的片上系统设计全过程
设计初衷在疫情管控最严格的的时候,经常能看到触目惊心的“寻找x月x日乘坐xxxx的乘客”,如果能追寻乘坐公共交通者的足迹,会给疫情管控带来很大便利。设计方法
笔者希望结合GPS,RFID和摄像头功能,做个车载的识别信息-上报信息的小系统。
具体涉及到二维码识别,RFID识别,GPS获取和HTTP上报。
然而,这个设计一开始就遇到了难题。网上购买的测温枪,他的蓝牙数据我无法解包,好像是和腾讯连连有自己的相关配置。
腾讯连连界面:
既然腾讯连连已经写到那么好了,那就不抢他的饭碗了。
既然没办法解析内容,那下面笔者将用ENV单元采集的环境温度代替乘客温度进行收发。
分模块实现RFID控制块首先声明RFID模块的串口:
rfid0 = unit.get(unit.RFID, unit.PORTA)
该段指从A口串入RFID模组
【注:M5STACK使用颜色标明了A,B,C三个Grove口,见下图】
上图中RFID的串口是红色,就对应到M5GO左侧的红色接口:
GRIVE HUB由于笔者同时还需要使用红色串口的ENV单元,因此额外购买了GROVE HUB:
这样就有两个A口了。
访问设置时不需要加以区分,都从PORTA引入:
rfid0 = unit.get(unit.RFID, unit.PORTA)
env0 = unit.get(unit.ENV, unit.PORTA)
使用Emoji模块做可视化:
笔者使用循环判断是否有卡片接近,无则显示待机Emoji,有则显示✅
#循环判断是否有卡片接近
while(True):
#熄灭RGB灯
rgb.setBrightness(0)
#清空Emoji显示
emoji0.show_map([[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]], 0x000000)
#判断是否有卡片接近
if rfid0.isCardOn:
#有卡片接近显示对号
emoji0.show_map([[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,1],[0,0,0,0,0,1,1],[1,0,0,0,1,1,0],[0,1,1,1,1,0,0],[0,0,1,1,0,0,0]], 0x33ff33)
#发送RFID读取到的卡片ID
rsp_RFID = http_put_RFID((str(rfid0.readUid)))
#完成后指示灯变绿
rgb.setColorAll(0x33ff33)
rgb.setBrightness(10)
else:
#可选是否断开wifi
#wlan.disconnect
#wlan.active(False)
#等待卡片接近时,Emoji展示"。。。"
emoji0.show_map([[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,1,0,1,0,1,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]], 0x000000)
wait(1)
这里的Emoji模块是先在UIFlow里敲好,再进Micropython里查看的。
HTTP传输块
HTTP传输在上文已经讲了不少,这里优先介绍GPS的传输:
GPS的命令也是要加“value:”的,形如value:{“lon”:lon,“lat”:lat},这个地方一开始把笔者坑的不轻!
def http_put_location(lon,lat):
'''
传输地理位置数据点至ONENET平台的location数据流
lon:longitude,经度
lat: latitude,纬度
url:http的post地址
values:请参考https://open.iot.10086.cn/doc/multiprotocol/ 文档中的"HTTP协议上传数据点模块,配置json格式信息"
API_KEY:设备发送HTTP请求的证书,请参考https://open.iot.10086.cn/doc/multiprotocol/book/develop/http/api/api-usage.html 文档中的"鉴权说明"
'''
url='http://api.heclouds.com/devices/YOUR-DEVICE-ID/datapoints'
values={'datastreams':[{"id":"location","datapoints":[{"value":{"lon":lon,"lat":lat}}]}]}
jdata = json.dumps(values)
r=urequests.post(url,data=jdata,headers={"api-key":API_KEY})
return r
这里请把YOUR-DEVICE-ID替换为自己的数据流中设备编号,参考ONENET手册。Wi-Fi连接块
UIflow里封装了很好的Wi-Fi-connect:
wifiCfg.doConnect(SSID, PASSWORD)
如果你的Micropython里没有一键Wi-Fi连接,笔者自己也实现了一个:
def connectWifi(ssid,passwd):
'''
如果您的Micropython不携带WifiCfg.doconnect,请参考本函数
函数作用:连接至名称为SSID,密码为passwd的wifi
'''
global wlan
wlan=network.WLAN(network.STA_IF)
wlan.active(True)
wlan.disconnect
wlan.connect(ssid,passwd)
while(wlan.ifconfig[0]=='0.0.0.0'):
time.sleep(1)
return True
二维码识别块
使用的摄像头是M5CAMERA
参考官方例程:
//拍摄
camera_fb_t* esp_camera_fb_get
{
if (s_state == ) {
return ;
}
if(!I2S0.conf.rx_start) {
if(s_state->config.fb_count > 1) {
ESP_LOGD(TAG, "i2s_run");
}
if (i2s_run != 0) {
return ;
}
}
if(s_state->config.fb_count == 1) {
xSemaphoreTake(s_state->frame_ready, portMAX_DELAY);
}
if(s_state->config.fb_count == 1) {
return (camera_fb_t*)s_state->fb;
}
camera_fb_int_t * fb = ;
if(s_state->fb_out) {
xQueueReceive(s_state->fb_out, &fb, portMAX_DELAY);
}
return (camera_fb_t*)fb;
}
//二维码识别
void qr_recoginze(void *pdata) {
camera_fb_t *camera_config = pdata;
if(pdata==)
{
ESP_LOGI(TAG,"Camera Size err");
return;
}
struct quirc *q;
struct quirc_data qd;
uint8_t *image;
q = quirc_new;
if (!q) {
printf("can't create quirc object\r\n");
vTaskDelete ;
}
//printf("begin to quirc_resize\r\n");
if (quirc_resize(q, camera_config->width, camera_config->height)< 0)
{
printf("quirc_resize err\r\n");
quirc_destroy(q);
vTaskDelete ;
}
image = quirc_begin(q, , );
memcpy(image, camera_config->buf, camera_config->len);
quirc_end(q);
int id_count = quirc_count(q);
if (id_count == 0) {
quirc_destroy(q);
return;
}
struct quirc_code code;
quirc_extract(q, 0, &code);
quirc_decode(&code, &qd);
dump_info(q);
quirc_destroy(q);
}
这里依赖了太多官方库…建议去代码仓库翻一翻。
K210的二维码识别上文是ESP32类型的开发板识别代码,可以看到非常繁琐,改起来简直要了老命…使用Micropython的话,代码就变的可爱多了~
【此部分使用Maxipy编程】
import sensor
import image
import lcd
import time
clock = time.clock
lcd.init
sensor.reset
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1)
sensor.run(1)
sensor.skip_frames(30)
while True:
clock.tick
img = sensor.snapshot
res = img.find_qrcodes
fps =clock.fps
if len(res) > 0:
img.draw_string(2,2, res[0].payload, color=(0,128,0), scale=2)
print(res[0].payload)
lcd.display(img)
这里Maxipy的官方文档还给出了修正图像的方法:如果使用了镜头,画面会有扭曲,需要矫正画面使用 lens_corr 函数来矫正,比如 2.8mm, img.lens_corr(1.8)
(没事翻一翻这个Maxipy的文档还是很有启发的,大概两小时就能通读一遍)
GPS传输块
室内经常没有信号(实测室外也很少有…)因此在传递GPS的时候笔者额外设计了防止无信号的代码。
GPS的http传输函数已经在上文讲了,此处和RFID卡片控制进行结合:
if rfid0.isCardOn:
#有卡片接近显示对号
emoji0.show_map([[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,1],[0,0,0,0,0,1,1],[1,0,0,0,1,1,0],[0,1,1,1,1,0,0],[0,0,1,1,0,0,0]], 0x33ff33)
#发送RFID读取到的卡片ID
rsp_RFID = http_put_RFID((str(rfid0.readUid)))
#防止测试时无信号
if str(gps0.pos_quality) != "1" and str(gps0.pos_quality) != "6":
lon=116.393
lat=39.8969585128568
else:
#默认北京
lon=gps0.longitude
lat=gps0.latitude
try:
rsp_LOCATION=http_put_location(float(lon),float(lat))
except:
emoji0.show_map([[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,1],[0,0,0,0,0,1,1],[1,0,0,0,1,1,0],[0,1,1,1,1,0,0],[0,0,1,1,0,0,0]], 0xff0000)
#传输温度
rsp = http_put_data(env0.temperature)
#完成后指示灯变绿
rgb.setColorAll(0x33ff33)
rgb.setBrightness(10)
else:
#可选是否断开wifi
#wlan.disconnect
#wlan.active(False)
#等待卡片接近时,Emoji展示"。。。"
emoji0.show_map([[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,1,0,1,0,1,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]], 0x000000)
wait(1)
后记
参赛时间仓促,没能完全搞明白每个引脚的用途,没有好好触摸一遍C和开发板,没有用NB-IOT通讯。没有做蓝牙通讯解包…还是有很多遗憾的,还好设备还在,可以继续探索物联网的神奇。
成果效果:
版权声明:本文为CSDN博主「Haor.L」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://blog.csdn.net/weixin_46233323/article/details/106054434」
☞程序员在家办公没显示屏,我被领导鄙视了
☞Get!读懂数据科学和机器学习,看这文就够了
☞深度剖析数据库国产化迁移之路
☞Go远超Python,机器学习人才极度稀缺,全球16,655位程序员告诉你这些真相
☞我佛了!用KNN实现验证码识别,又 Get 到一招
☞超级账本Hyperledger Fabric中的Protobuf到底是什么?
引用地址:https://www.gupiaohao.com/202304/29325.html
tags: