【华为云技术分享】基于小熊派开发板的智慧路灯开发版本更新_小熊派光传感-程序员宅基地

技术标签: 程序员  小熊派  华为云  开发  技术交流  IoT  

1 主要功能

(1)光敏传感器感知光照强度并上发。

(2)实现在云端对LED灯的开关控制。

(3)通过设定传感器阈值,设定LED灯的自动开关。

 

2 目的及意义

(1)通过本次实验加深对于小熊派开发板的了解以及使用。

(2)熟悉快速上云的流程。

3 开发环境

硬件:小熊派开发板、智慧路灯传感器扩展板、USB 数据线、通信模组(本文选用的是NB-IoT通信模组)。

软件:IoT Studio 0.3.3.0、ST-Link驱动、华为云、win7及以上64位操作系统。

4 小熊派开发板简介

开发板在物联网系统架构中属于感知设备,该类设备通常有传感器、通信模组、芯片以及操作系统组成。为增加开发板的可扩展性,小熊派开发板没有采用传统的板载设计,而是使用了可更换传感器扩展板以及可更换通信模组扩展板设计,通信模组是数据传输的出入口,常用的通信模组包括NB-IoT,Wifi以及4G等,芯片是设备的主控设备,该开发板内置了一个低功耗的STM32L431单片机作为主控芯片,即MCU。操作系统使用的是华为的LiteOS操作系统,其提供了丰富的端云互通组件。

为了便于开发调试,如图1所示,该开发板板载了2.1版本的ST-Link,它具有在线调试烧录,拖拽下载以及虚拟串口等功能。开发板左上角内置了一个TF卡卡槽,TF卡可以存储运行数据,其左侧有一个8M的SPI Flash,使用其方便对程序进行远程升级。开发板中间板载一块分辨率为240 * 240的LCD屏幕,其主要用于显示传感器数据以及调试日志。LCD屏幕下方是一个基于STM32L431的超低功耗单片机作为开发板的主控芯片。开发板右上角具有一个拨码开关,将其拨至左侧AT-PC模式,通过电脑端的串口助手,发送AT指令调试通信模组。右边AT-MCU模式,通过MCU发送AT指令与通信模组进行交互,将采集到的传感器数据通过通信模组发送到云端。

1.png

图1 小熊派开发板

5 ST-Link驱动安装

首先通过USB数据线将小熊派开发板与PC机连接,打开对应位数的驱动安装包,双击对应的.exe文件进行自动安装即可,通过打开PC设备管理器可查看对应的驱动是否安装成功。若如图2所示,说明驱动安装成功。

2.png

6.1 平台操作

首先登录华为云,点击产品,下拉至IoT物联网,选择设备管理,点击开发中心进入开发。如图3所示。

3.png

图3 华为云登录

新建项目,如果是首次访问需要先注册厂商信息等,如图4所示。

4.png

图4 新建项目

项目创建成功后会出现产品ID以及产品密钥,由于后续远程连接可能用到,这里我们点击下载密钥。密钥下载成功后点击进入项目。如图5所示。

5.png

图5产品密钥

进入项目之后,如图6所示,选择产品开发,点击新建产品。

6.png

图 6 新建产品

如图7所示根据自己的设计完成产品信息的设置。

7.png

图7产品信息配置

如图8所示,使用系统预制的快速集成模板进行产品的创建。

8.png

图8 基于快速集成模板创建产品

创建产品之后如图9所示,产品中已经包含profile定义以及编解码插件。

9.png

图9 产品创建完成

6.2 设备开发

首先将光敏传感器以及NB-IoT扩展板插入到开发板上,注意安装方向,然后用USB数据线将开发板与PC进行连接,如图10所示。

10.jpg

图10 扩展板的安装

打开IoT Studio软件,如图11所示,创建IoT Studio工程。

11.png

图11 创建IoT Stutido工程

如图12所示,填写工程名称,选择存储路径,工程类型选择端云最佳实践,开发板使用STM32L431,模板工程使用Cloud_STM32L431_BearPi,点击完成。

12.png

图12 设置工程类型

由于版本更新问题,IoT Studio烧录器以及调试器类型取消了ST-Link,这里我们选择OpenOCD。具体调整方式如图13所示,点击IoT Studio 的工具栏中的工程,工程配置,烧录器,然后选择烧录模式OpenOCD,调试器调整亦如此。

13.png

图13 烧录、调试方式调整

如图14所示,点击IoT Studio 的工具栏中光标所在位置的编译,编译成功好点击烧录按钮将程序烧录到开发板中。

14.png

 图14编译和烧录

6.3 应用开发

如图15所示,进入华为云,点击web应用开发,立即前往,构建应用。

15.png

图15 web应用开发

如图16构建应用,填写应用名称,采用自定义的构建方式,勾选设备注册、设备列表以及规则等。进行应用的创建。

16.png

图16 构建应用

如图17组件的部署,首先拖拽选择设备组件到右边,之后拖拽左侧工具栏中的设备监控到右边,点击右侧工具栏的数据添加产品之后,选择sensor并关联到luminance属性。之后拖拽命令下发组件到右边,点击右侧工具栏的数据添加产品之后,选择LED并选择命令选项SET_Led。之后再拖拽一个设备监控到右边,此时选择右侧工具栏中的样式,选择图表并关联到sensor的luminance属性,实现光照传感器的数据和图表双显示,点击保存。

17.png

图17 组件部署

6.4 业务调试

由于之前的设备是模拟设备,知识我们添加真实设备之前的一个模拟,此时如图18所示,我们将自己的真实设备添加到开发环境中,之后进入预览界面,进行产品选择,设备名称的注册,此时的设备标识码使用之前提到的NB-IoT通信模组的IMEI号作为唯一标识。

18.png

图18 设备注册

当注册设备完成后,如图19所示,传感器显示的光强从之前的模拟光强32779,变成了开发板上传的真实光照强度80,同时我们观察开发板的LCD屏幕上的数值与云端显示数值一致。

19.png

图19 真实设备光强

之后进入自定义界面(当然这里我们可以自己修改名称),点击命令下发中的设置参数,选择ON,打开LED灯,如图20所示,开发板上的LED灯点亮,同时如图21所示,设备监控中图表的示数发现由原来的80变成了647,这是由于LED灯距离光照传感器比较近,而且没有遮挡物。发送OFF指令,LED等会熄灭,光强示数下降。

20.jpg

图20 开发板LED打开

21.png

图21 设备光强变化

上述LED灯的开关直接受人为控制,当然我们也可以自定义光强阈值使灯自动开关,如图22添加一条规则,当光强小于50时,LED灯打开。同理,添加规则二,当光强小于50时,LED灯关闭。

22.png

图22 添加规则

此时观察光照强度示数变化,首先用手将光敏电阻用手遮挡,图23所示,光照强度低于50,然后发现LED点亮,移开手指,可见光照强度高于500,LED灯关闭。光强又恢复到打开之前的光强。

23.png

图23 设备示数变化

当然我们也可以将应用进行部署,设置登录账号,密码,之后其余人如果知道账号密码也可以进行应用的后续调试等。具体如图24所示。

24.png

图24 设备部署

点击设备列表可以看见设备的信息日志。如图25所示。

25.png

图25 设备日志

如图26所示,回到开发主界面,点击对接信息,可以看到最下方的http接入方式对应的IP地址以及端口号,通过手机的小程序可以进行连接。

26.png

图26 设备对接信息作者:星辰27

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/devcloud/article/details/104512747

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法