安装完成后,选择左下角的Create Project。具体操作如下图所示。在项目创建页面上会有很多模板库。如果只有两个或者没有模板,可以尝试点击左下角的刷新模板信息按钮。
目录
序
主体
一、物联网Pi开发板介绍
第二,发展实战
连接设备
2.构建开发环境
3.开始编码
4.编译和打包
5.安装应用程序
6.LED开关控制演示
7.程序升级和转换
8.如何支持设备热插拔?
结局
IoT Pi是一个小型的物联网开发板。开发者可以将其作为入门级开发板,熟悉和掌握MS-RTOS开发的实用技巧。今天就来介绍一下如何用Spirit 1和IoT Pi开发板开发一个LED灯光控制系统。
文本1。物联网Pi开发板介绍物联网Pi开发板拥有Cortex-M4处理器,时钟频率高达100MHz,包括512KB的FLASH存储空间和256KB的RAM空间。通过烧录系统,可以保证MS-RTOS和多个应用的流畅运行。此外,物联网Pi开发板还配有EEPROM和SD卡插口,可以用来存储数据和与PC交换文件。同时还支持WiFi功能。IoT Pi还带有三个按钮,三个led和一个USB转串口,可以在使用USB线供电的同时与PC电脑进行通信。说到这里,我们来看看物联网Pi开发板是什么样子的,如下图所示:
我们来看看物联网Pi产品的官方详细参数:
主芯片STM32F412RET6 512KB FLASH,256KB RAMEEPROMFT24C02SD卡板载TF卡座下载接口SWD下载调试接口,2.54mm pin USB通讯5V电源,3个USB串行通讯自定义按钮,1个复位功能按钮LED灯和3个自定义LED,1个电源指示灯I/O接口,2排2.54mm和20PIN接口,包括24个通用IO,4个5V,4个3.3V和6个GND。如果想更直观的了解以上硬件模块,请参考下图:
好了,通过上面的介绍,我们基本对物联网Pi开发板有了一个大概的了解。接下来,让我们基于它开发一个LED灯的智能控制程序。
二、实战的发展1。连接设备首先为物联网Pi开发板安装四个塑料铜柱,方便固定和散热。接下来,用电源线?连接物联网Pi开发板和PC。
然后将电脑连接到Spirit 1的wifi,同时连续按下IoT Pi开发板的key1三次,启动设备发现模式。此时开发板的三个LED灯会持续闪烁,表示已经进入发现模式。之后我们在浏览器中输入地址:https://192 . 168 . 128 . 1/#/desktop,进入Spirit 1界面,打开“设备”,进入应用并选择添加设备,如下图所示:
当然,我们也可以在手机上添加设备,点击下图中的“添加设备”按钮。
点击“添加设备”按钮,进入扫描设备页面,如下图所示:
在扫描设备页面打开“高级设置”,启动“SmartConfig”开关,输入SSID和密码,点击“完成”按钮,如下图所示:
在扫描设备页面,提示我们已经找到物联网Pi开发板,我们选择“添加”,如下图所示:
在添加物联网Pi开发板的过程中,需要输入设备密码,系统烧坏的时候写下来了。目前开发板官方默认密码是1234567890。如果输入错误,会提示“设备拒绝连接,请重试”,如下图所示:
添加后,我们可以在设备列表中看到物联网Pi开发板的设备,如下图所示:
添加设备后,我们开始构建开发环境。
2.搭建开发环境在PC端搭建爱知系统的开发环境非常方便。可以直接使用VSCode开发工具,安装一个EdgerOS开发插件。插件安装也很方便。在VSCode中的扩展程序中搜索edger关键字,会出现如下所示的插件工具。点击“安装”。
安装完成后,选择VSCode左下角的“创建项目”,如下图所示:
在项目创建页面上会有很多模板库。如果只有两个或者没有模板,可以尝试点击左下角的“刷新模板信息”按钮。如果没有,可以将仓库源码切换到Gitee,因为开发插件的默认仓库源码是Github,很多国内用户可能因为网络问题无法访问。具体操作请参考下图:
获得所有模板库后,我们可以看到一个名为“物联网Pi”的模板库,因为我们的设备是物联网Pi开发板,所以我们选择这个模板库来初始化项目,选择“立即申请”。具体操作请见下图:
点击“立即申请”后,我们进入项目信息页面。可以参考下图完成项目配置,然后选择“立即创建”。
项目创建后,我们可以看到一个前后端分离的项目目录,其中iotpi目录是后端逻辑部分,web目录是前端页面部分。
3.开始编码引入依赖库,定义一些变量。代码如下:
const Web = require(" Web app ");var设备= require("设备");/* IoT Pi设备*/var io TPI = undefined;/* IoT Pi devices */var io tpis = new Map();const app = web . create app();app.use(Web.static("。/public ",{ index: ["index.html "," index . htm "]}));选择设备服务接口,代码如下:
app.post("/api/select/:devid ",function(req,RES){ io TPI = new Device();Iotpi.request (req.params.devid,function(error){ if(error){ RES . send({ result:false,code: 50004,message:` device error:$ { error . message } `});iotpi =未定义;} else { RES . send({结果:真,代码:20000,消息:“成功”});iotpi.on("lost ",iotpiRemove);iotpi.on("message ",function(msg){ io . emit(" io TPI -message ",msg);});iotpi.send({ query: true },function(error){ if(error){ console . error(" Query IoT Pi error:",error . message);} else {console.log("查询IoT Pi Ok!");}}, 3);}});});启动Socket IO通道,用于完成前端和后端的消息通信。代码如下:
/* Socket IO */var IO = require(" Socket . IO ")(app,{path: "/iotpi ",serveClient: false,pingInterval: 10000,pingTimeout: 5000,cookie:false });//客户端连接或断开io.on ("connection ",function(sockio){ sockio . on(" io TPI -control ",function(msg){ if(io TPI & & io TPI . devid){ console . log(" client send message:",json.stringify(。iotpi.send(msg,function(error){ if(error){ console . error("向iotpi错误发送消息:",error . message);}}, 3);} else { sockio . emit(" io TPI -error ",{code: 50002,error:"无效设备!"});}});sockio.on("iotpi-list ",function(result){ var devs =[];io tpis . foreach(function(io TPI){ devs . push(io TPI);});结果(发展);});});监控设备的连接状态,设备可以热插拔。代码如下:
//删除设备。on ("lost ",function (devil) {if (iotpis。has (devil)) {iotpis。删除(魔鬼);if(io TPI & & io TPI . devid = = = devid){ iotpiRemove();}io.emit("iotpi-lost ",devid);}});//添加设备。on ("join ",function (devil,info){ if(info . report . name = = = " IOT PI "){ vardevobj = { devil:devil,alias: info.alias,report:info . report };iotpis.set(devid,devo bj);io.emit("iotpi-join ",devo bj);}});函数iotpiRemove(){ if(io TPI){ io TPI . release();io TPI . remove all listeners();}} 4.编译打包其实前台和后台目录可以理解为两个多带Node.js项目,下面的命令分别在iotpi和web目录中执行:
npm安装
成功执行后,这两个目录各自生成了自己的node_modules目录。
进入web目录,执行以下命令进行编译和打包:
npm运行构建
命令执行成功后,会生成相应的dist目录。最后,您需要将文件复制到iotpi的公共目录中。
5.安装应用在安装应用之前,我们可以参考下图添加新的物联网Pi设备选项。
添加设备后,我们选择“安装EdgerOS APP”,如下图所示:
在安装过程中,您可能会遇到以下两个问题,记录在此。
问题1。安装edgeros应用程序:错误:edgerconnect非法连接
不要担心这个错误。事实上,你没有连接到Spirit 1的wifi。换个wifi网络就行了。
问题2。安装edgeros应用程序:错误:edgerconnect密码错误。
这个问题其实是设备开发密码错了,需要重新填写。详情请参考下图。
正确安装应用程序后,将给出以下提示:
安装应用程序成功
具体如下图所示:
6.LED开关控制演示程序安装成功后,我们返回浏览器页面(https://192 . 168 . 128 . 1/#/desktop),会发现首页增加了一个物联网Pi Trying的应用图标,如下图所示:
点击图标进入应用,在设备列表中选择物联网Pi设备。此时可能存在设备权限问题,如下图所示:
然后,我们可以在系统设置中进行授权,如下图所示:
完成授权后,可以进入设备操作界面,在这里可以控制三个LED灯的开启和关闭。同时手动操作开发板的开关,操作页面会相应变化,如下图:
为了更形象地展示实现效果,我们来看一个视频:
物联网Pi开发板LED灯光控制演示
7.程序升级其实我们可以进一步修改程序,在页面左上角增加一个总开关按钮,同时控制开发板上三个LED灯的开和关。编码实现也非常简单。切换时只需发送三个控件。我们来看看实施效果:
当所有LED灯都打开时:
当所有LED灯关闭时:
8.如何支持设备热插拔在开发过程中,我发现系统支持设备热插拔。我对实现机制很好奇,所以特别关注。最后发现系统通过心跳包机制检测设备的连接和断开状态,符合我们的常规做法。通过每15秒ping一次来确定设备是否在线,如下图所示:
设备离线时弹出提醒:
设备在线时弹出提醒:
结局很好。这次介绍用Spirit 1和IoT Pi开发板开发一个LED灯光控制系统的实践经验。是不是很奇妙?真的很喜欢在EdgerOS系统上开发物联网应用的感觉。架构设计清晰合理,技术栈简单易学,装备性能也很强大。总之是非常愉快的开发体验。有兴趣就来参与第一期吧!让我们为国产操作系统加油吧!
【本文正在参加“2021爱知先锋-征文大赛”】,链接:https://bbs.csdn.net/topics/602601454.
评论前必须登录!
注册