版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章物联网服务平台让Arduino上云:物联网平台·NodeMCU·ESP32·MQTT《Arduino应用技术(第二版)》·乐为物联·百度天工·阿里云·OneNet·NB-IoT·Cayenne高职电子信息类专业教学用本章学习目标①了解物联网平台②掌握Cayenne平台的使用③了解NodeMCU和ESP32开发板④了解MQTT协议及其使用⑤了解乐为物联云平台及其使用重点:MQTT协议、NodeMCU/ESP32开发板使用、乐为物联数据上传。注:教材正文止于5.4.3,5.5Cayenne以要点补充形式呈现。本章地图5.1物联网平台概述物联网由ITU提出;平台是网络架构与产业链的关键枢纽。5.2国内常见物联网平台百度天工、阿里云、QQ物联、中国移动OneNet、中国电信NB-IoT。5.3乐为物联云平台三层架构;注册设备传感器;LM35数据上传到云端。5.4ESP系列开发板与MQTTNodeMCU(ESP8266)与ESP32开发板;MQTT协议、代理平台与PubSubClient库应用。5.5Cayenne平台(要点补充)开源物联网可视化平台;教材正文缺失,本节提供学习目标引导的要点说明。学习路径:先建立"平台是承上启下关键"的整体认识,再逐一认识五大平台,随后动手在乐为物联上传数据,最后掌握ESP开发板与MQTT通信。5.1物联网平台概述2005ITU正式提出"物联网"416亿2025年全球设备预测物联网平台是网络架构与产业链条中的关键枢纽,实现终端设备"管理、控制、运营"一体化,为上层应用提供统一接口。中小企业的痛点缺少服务器、软硬件技术支持与资金独立建平台实施周期长、投入大,风险承受能力弱对物联网需求难以一次性准确把握开放物联网平台的价值国内乐为物联、美国Cosm等开放平台提升开发效率快速实现原型系统现场验证直接平台托管数据,降低风险、节省维护、减少成本5.2国内常见的物联网平台本节介绍五家国内主流物联网平台,了解各自的定位、优势与应用案例百度"天工"智能物联网平台:面向工业制造、能源、物流,端到云全栈,含物接入、物解析、物管理、时序数据库、规则引擎。阿里云物联网平台:2017年云栖大会发布,融合云上网关、规则引擎、共享智能平台,推动生活、工业、城市三大领域智联网建设。QQ物联智能硬件开放平台:2014年发布,将QQ账号体系、关系链、消息通道开放给智能硬件,实现用户与设备互联互通。中国移动OneNet:2014年上线,首家支持CoAP+LWM2M协议,具备流分析、设备云管理、多协议配置等功能。中国电信NB-IoT平台:2017年建成全球首个商用新一代窄带物联网网络,覆盖广、规模大、基于800MHz低频段质量更优。5.2.1–5.2.2百度天工与阿里云物联网平台百度"天工"智能物联网平台图5-1百度天工标志2016年7月推出,面向工业制造、能源、物流等行业,专注产业物联网。涵盖物接入、物解析、物管理、时序数据库、规则引擎五大产品,千万级设备接入、百万数据点每秒读写。应用案例:风力发电预测性维护,故障预测准确率提升至90%、召回率99%;太原铁路局利用大数据与机器学习,调度效率提升59%。阿里云物联网平台2017年10月云栖大会发布,将物联网打造为"智联网"。建设云端一体化使能平台、物联网市场、ICA全球标准联盟三大基础设施,推动生活、工业、城市三大领域智联网建设。应用案例:无锡鸿山物联网小镇,借助飞凤平台实现交通、环境、水务、能源等城市管理项目在线运营。5.2.3–5.2.5QQ物联·OneNet·电信NB-IoT图5-2QQ物联网平台QQ物联(2014):开放QQ账号体系、关系链、消息通道;硬件接入后可添加为"QQ好友",设备拥有在线状态与昵称。另有微信硬件平台。图5-3OneNet物联网平台标志中国移动OneNet(2014):首家支持CoAP+LWM2M、遵循IPSOProfile;一站式托管、多协议解析、数据存储与大数据分析。中国电信NB-IoT(2017):建成全球首个商用新一代窄带物联网网络。优势:覆盖广(4G/5G全覆盖)、规模大(31万台基站同步升级)、质量优(800MHz低频段,穿透力更强)。案例:中关村大街智能路灯、垃圾桶、井盖;厦门海沧智能独立烟感报警系统。5.3.1乐为物联云平台简介乐为物联隶属于北京乐为物联科技有限责任公司,提供高效实现物联网应用的平台,无需繁琐编程即可接入设备并完成数据存储、查询与分析。主要功能个人门户:管理设备、传感器与控制器数据存储与分析工业仪表无缝接入手机APP远程访问开放的API,可公开测量设备乐为物联网三层架构云端服务器(数据存储·分析)设备(GPRS·WiFi·以太网)传感器与控制器(RS232·RS485)传感器采集数据→设备上传云端→用户通过浏览器/APP访问数据库,实现多样数据应用。5.3.2乐为物联云平台操作在乐为物联网中实现应用,第一步是建立设备①注册:访问注册(邮箱激活),登录后进入"我的物联"。②添加设备:"我的设备"中编辑默认设备或"添加新设备",填写信息后保存。③添加传感器:"传感器与控制器"→"新建"→完整填写信息→保存。④添加控制器:步骤同传感器;其他功能(模拟数据、报警等)参照平台说明书。图5-6添加设备图5-7~10添加传感器和控制器要点:乐为平台以"设备→传感器/控制器"两级结构组织数据,先建设备再添加传感器或控制器。5.3.2乐为物联平台操作(二)新建控制器与传感器:为设备配置数据通道图5-10添加控制器图5-11新建设备5.3.2乐为物联平台操作(三)新建传感器并查看实时数据列表图5-12新建传感器乐为平台:传感器实时数据列表要点:LM35温度数据通过串口/网络上报后,在"实时数据"列表即可看到最新值与更新时间。5.3.3数据上传:LM35温度数据上云乐为物联·LM35温度上传(LeweiClient)#include<LeweiClient.h>#include<SPI.h>#include<Ethernet.h>#defineLW_USERKEY"***你的用户名***"#defineLW_GATEWAY"02"//设备标志#definePOST_INTERVAL(30*1000)//更新间隔30sLeWeiClient*lwc;voidsetup(){Serial.begin(9600);lwc=newLeWeiClient("***用户名***","02");}voidloop(){intsensorReading=analogRead(A0)*0.4882;Serial.println(sensorReading);if(lwc){Serial.print("***startdatacollection");lwc->append("lm35",sensorReading);//上传lm35Serial.print("***datasend***");lwc->send();Serial.print("***sendcompleted***");delay(POST_INTERVAL);}}准备与硬件注册账号并记录用户名、设备标志、传感器标志;W5100插Arduino,接网线,LM35接A0。lwc->append的传感器名称必须与服务器上的设置一致;analogRead×0.4882将ADC值换算为温度。5.4ESP系列开发板与MQTT通信乐鑫科技ESP系列芯片、模组、开发板三大类别ESP8266最早推出,ESP32全面升级,ESP32-S/C系列最新兼容ArduinoIDE、EspressifIDF、MicroPython开发板技术特性高性能、低功耗Wi-FiSoC(系统级芯片);内置2.4GHzWiFi接收发射,支持JSON、定时器、PWM、IIC、SPI、1-Wire、Net、MQTT等功能。适用于智能家居、智能穿戴、工业自动化等领域。MQTT协议MessageQueuingTelemetryTransport,消息队列遥测传输:轻量级、高效、可靠,特别适合资源受限的网络环境。发布/订阅模式设备通过发布者/订阅者/代理(Broker)三种角色高效通信;主题(Topic)标识消息类别。广泛应用于智能家居、工业自动化、智能农业、智能城市等。5.4.1NodeMCU开发板简介NodeMCU是一款基于ESP8266芯片(ESP-12E)的开源物联网开发板,集成2.4GHzWiFi收发器,支持MicroUSB上传程序。特点开源、交互式、可编程、低成本;内置JSON、定时器、PWM、IIC、SPI、1-Wire、Net、MQTT等,兼容ArduinoIDE。注意:D0(GPIO16)只能用作GPIO读/写,不支持中断,也不支持PWM/IIC/OW;ADC0为10位精度。图5-13NodeMCU实物板上设有Reset复位键、Flash固件更新键与MicroUSB端口(上传程序/充电)。5.4.1NodeMCU引脚定义NodeMCU提供了丰富的GPIO引脚,用于连接传感器、执行器等外部设备;常用引脚为D0~D8对应GPIO16、5、4、0、2、14、12、13、15。板载资源MicroUSB上传/充电、Reset复位、Flash更新固件、ADC0(10位)模拟输入。多数引脚支持IIC、SPI、1-Wire、PWM复用;D0例外。右侧为官方引脚定义图,注意丝印D编号与GPIO号的对应。图5-14NodeMCU引脚定义5.4.1用ArduinoIDE开发NodeMCU①连接:USB连接NodeMCU,通电蓝色板载LED闪烁(不保持点亮)。②驱动:安装CP2102或CH340串口驱动;③安装ArduinoIDE1.6.4以上。④索引:在"附加开发板管理器网址"添加ESP8266索引地址(见右图)。⑤安装:开发板管理器搜索"ESP8266"点击安装,网络耗时较长,报错则重试。⑥选板:重启IDE,在"工具"中选择NodeMCU板型并配置端口;注意会擦除原NodeMCU固件。图5-15添加ESP8266索引文件图5-16打开开发板管理器5.4.1NodeMCU:安装ESP8266库在开发板管理器中选择最新版本并点击"安装"图5-17安装ESP8266库步骤:工具→开发板→开发板管理器→搜索esp8266→安装。5.4.1NodeMCU:设置开发环境选择开发板型号与端口,并在首选项中配置网址图5-18设置ESP8266环境文件→首选项:添加开发板管理器网址要点:先添加开发板管理器网址,再通过开发板管理器安装库,最后选择端口下载。5.4.2ESP32开发板简介ESP32-DevKitC采用ESP32-WROOM-32模组,主频高达240MHz,集成传统蓝牙、低功耗蓝牙与2.4GHzWi-Fi。版本与接口提供30引脚与38引脚两种版本,可选配MicroUSB或Type-C接口。34~39引脚仅用于输入,内部无上拉电阻ADC12位精度;使用Wi-Fi时不能使用ADC2引脚EN键复位;BOOT键按下为下载模式36/39引脚内置霍尔传感器图5-19ESP32开发板实物标感叹号的引脚与内部闪存共享,不能作为常规GPIO使用。5.4.2ESP32引脚与ArduinoIDE安装图5-20ESP32开发板30引脚定义引脚图标注了GPIO复用功能:ADC、Touch、SPI、I2C、UART、DAC等,便于按需选用。用ArduinoIDE开发ESP32/dl/package_esp32_index.jsonhttps://espressif.github.io/arduino-esp32/package_esp32_index.json/espressif/.../package_esp32_index.json在"附加开发板管理器网址"中可添加多个索引地址,然后搜索"ESP32"并安装。ESP32库比ESP8266更大、安装更久;若中断,重复点"安装"至完成。安装完成后在"工具"中选择ESP32开发板类型与端口。5.4.2ESP32:添加开发板索引在首选项附加开发板管理器网址,添加ESP32索引图5-21添加ESP32索引文件步骤:首选项→附加开发板管理器网址→填入ESP32索引→确定。5.4.2ESP32:安装开发板库在开发板管理器中搜索esp32并安装图5-22安装ESP32库要点:ESP32与ESP8266安装方式一致,均在开发板管理器中完成。5.4.3MQTT协议简介MQTT通过发布/订阅模式实现设备间高效通信,运行MQTT的设备有三种角色发布者Publisher向MQTT代理(Broker)发送消息的客户端。代理Broker消息中转站(云服务器),接收发布者的消息并分发给订阅者。订阅者Subscriber从MQTT代理接收消息的客户端。→→角色可重叠同一设备可同时具备多种角色:既能发布消息,也能订阅其他主题,实现双向通信与远程控制。主题Topic(核心概念)标识消息类别或传输路径;发布者发布到特定主题,订阅者订阅特定主题即可接收;内容可为字符串或JSON格式。5.4.3MQTT库安装与程序框架安装PubSubClient库ArduinoIDE→库管理器→搜索"PubSubClient"→安装;需同时安装ESP8266/ESP32开发板支持。程序一般包含6个部分引入库文件:PubSubClient.h、ESP8266WiFi.h连接Wi-Fi(ssid/password)定义MQTT服务器地址与主题创建PubSubClient并连接服务器回调函数处理订阅到的消息loop中循环收发消息MQTT程序骨架(以mqtt_esp8266为例)#include<ESP8266WiFi.h>#include<PubSubClient.h>constchar*ssid="你的WiFi";constchar*password="你的密码";constchar*mqtt_server="";WiFiClientespClient;PubSubClientclient(espClient);voidsetup(){Serial.begin(115200);setup_wifi();client.setServer(mqtt_server,1883);client.setCallback(callback);reconnect();}voidloop(){if(!client.connected())reconnect();client.loop();}5.4.3MQTT库加载与安装加载PubSubClient库,安装完成即可调用MQTT接口图5-23加载库图5-24MQTT库安装完成界面要点:PubSubClient库封装了MQTT连接、发布、订阅与回调等核心功能。5.4.3MQTT项目代码示例代码包含WiFi连接、MQTT连接与发布订阅逻辑图5-25MQTT项目代码5.4.3MQTT远程控制LED(一)连接与配置全局配置+setup_wifi(mqtt_esp8266示例)#include<ESP8266WiFi.h>#include<PubSubClient.h>constchar*ssid="********";constchar*password="********";constchar*mqtt_server="";constchar*inTopic="inTopic";//订阅主题constchar*outTopic="outTopic";//发布主题#defineLED_BUILTIN2//NodeMCU板载LEDWiFiClientespClient;PubSubClientclient(espClient);longlastMsg=0;charmsg[50];intvalue=0;voidsetup_wifi(){delay(10);Serial.begin(115200);Serial.print("Connectingto");Serial.println(ssid);WiFi.begin(ssid,password);while(WiFi.status()!=WL_CONNECTED){delay(500);Serial.print(".");}Serial.println("WiFiconnected");Serial.println(WiFi.localIP());}要点服务器端口1883;订阅/发布主题可自定;LED_BUILTIN对应板载LED。板型设置:NodeMCU1.0(ESP-12E)、CPU80MHz、Flash4MB(3MSPIFFS)、Upload115200。5.4.3MQTT远程控制LED(二)回调与灯控callback回调+setup(mqtt_esp8266示例)voidcallback(char*topic,byte*payload,unsignedintlength){Serial.print("Messagearrived[");Serial.print(topic);Serial.print("]");for(inti=0;i<length;i++){Serial.print((char)payload[i]);}Serial.println();if((char)payload[0]=='1'){digitalWrite(LED_BUILTIN,LOW);//开灯}else{digitalWrite(LED_BUILTIN,HIGH);//关灯}}voidsetup(){pinMode(LED_BUILTIN,OUTPUT);Serial.begin(115200);setup_wifi();client.setServer(mqtt_server,1883);client.setCallback(callback);}回调机制订阅主题收到消息时自动触发callback;setCallback注册回调函数。消息为字符'1'时输出低电平点亮LED,其余(如'0')关灯;NodeMCU板载LED低电平点亮。5.4.3MQTT远程控制LED(三)重连与发布reconnect重连+loop周期发布(mqtt_esp8266示例)voidreconnect(){while(!client.connected()){Serial.print("AttemptingMQTTconnection...");if(client.connect("ESP8266Client")){Serial.println("connected");client.subscribe(inTopic);}else{Serial.print("failed,rc=");Serial.print(client.state());Serial.println("tryagainin5seconds");delay(5000);}}}voidloop(){if(!client.connected()){reconnect();}client.loop();longnow=millis();if(now-lastMsg>2000){lastMsg=now;++value;snprintf(msg,50,"helloworld#%ld",value);client.publish(outTopic,msg);}}重连reconnect未连接时循环尝试,clientId"ESP8266Client";成功后订阅inTopic。client.loop()维持收发;每2秒向outTopic发布"helloworld#N"。5.4.3用MQTTBox客户端验证①安装:电脑端安装MQTTBox软件,单击"CreateMQTTClient"添加客户端。②配置:填写服务器地址与端口1883;配置正确时"Not-connected"变为"Connected"。③订阅/发布:向inTopic发布'1'/'0'控制LED;订阅outTopic观察消息。④验证:串口监视器可看到outTopic发布"helloworld"与订阅结果。也可使用""、""等免费MQTT服务器测试项目;若代理要求认证,改为connect(clientId,userName,passWord)。NodeMCU板载LED订阅/发布↓↑MQTT代理(Broker)↓↑MQTTBox客户端发布inTopic'1'点亮、'0'熄灭;订阅outTopi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年法律职业资格模拟考试试卷试题及答案
- 2026年村卫生室消毒隔离操作考核考试题及答案
- 2026年安全生产标准化建设考试试卷试题及答案
- 总经理试用期个人思想总结报告2026(3篇)
- 塔机安全试题及正确答案
- 隔离点消毒考试题目及对应答案
- WPS条件求和测试试题及答案详解
- 2025年智能家居中控系统:低碳节能理念下的智能控制方案
- 党政机关公文写作岗位培训考试题库(2026年)
- 餐饮服务人员食品安全卫生知识培训考试卷及答案
- 航空发动机涡轮叶片技术标准
- 关于某某企业级固态硬盘采购与质保合同
- 平安测评IQ测试题30道及答案
- 2026年河北省机关事业单位技术工人图书仓储员考试选择题
- 2025年陶瓷地砖行业技术专利分析报告
- 风行股海课件
- 树立消防员正确的消费观
- 装置艺术设计课件
- 矿山闭坑施工方案
- 地铁车辆排查巡检方法
- 证券投资基金第六版刘大赵课后答案
评论
0/150
提交评论