×

oneM2M电位器/按钮/LCD与NodeMCU (ESP8266)

消耗积分:0 | 格式:zip | 大小:0.06 MB | 2022-11-15

张磊

分享资料个

描述

1.高层架构

pYYBAGNxjUCAFY-8AADaeKHZ4z4209.png
 

2.先决条件

运行此演示需要以下工具。

  • 所选 oneM2M 平台的运行时环境(参见第 3 节):
    - Java 运行时环境 (JRE >= 1.8),如果你使用Eclipse OM2M
    -
    Python 3 环境,如果你使用ACME
    - NodeJS 环境,如果你使用KETI Mobius
  • Arduino IDE 1.8.9(或更高版本)
  • 您最喜欢的用于开发 IoT 应用程序的 IDE
  • 物联网应用程序的Node.js 环境Python 环境
  • 邮递员(可选)

3.下载项目

从主存储库下载必要的资源:

https://github.com/oneM2M-教程

该存储库包括不同的项目:

  • oneM2M-IoT-Device : NodeMCU Sketch(es)
  • oneM2M-IoT-Application :用 Node.js 和 Python 编写的物联网应用程序
  • oneM2M-IoT-Device-Simulator :用于模拟各种物联网传感器和执行器的 Node.js 程序

您还需要实现 oneM2M 平台。存在不同的平台,我们可以引用一些:

  • Eclipse OM2M :Java 中的开源实现(链接
  • ACME :Python 中的开源实现(链接
  • KETI Mobius :Node.js 中的开源实现(链接

对于本教程,将使用ACME实现。平台的安装、配置和运行请参考官方文档。

https://github.com/ankraft/ACME-oneM2M-CSE

4.启动oneM2M兼容的物联网平台

4.1。配置 IoT 平台 (ACME)

默认配置可用于本地演示。物联网平台将监听 8080 端口。每次重启后数据库都会重置。

如果需要,您可以通过编辑文件来更改物联网平台的配置:acme.ini ”。

4.2. 启动 IoTPlatform (ACME)

物联网平台可以通过以下方式启动:

python3 acme.py

您应该在日志末尾看到“CSE 已启动”。

4.3. 登录 ACME 网页界面

在浏览器中打开以下 URL 访问 ACME IoT 平台网页界面:http: //127.0.0.1 :8080/

poYBAGNxjUKANJTJAAAe1SM5sNg023.png
 

使用默认配置,输入发起人“ CAdmin” ,然后输入“ Connect

然后您将能够看到 oneM2M 资源树:

pYYBAGNxjUSAN69oAABlwkpL98w379.png
 

5. 连接您的物联网设备

NodeMCU 源代码位于“oneM2M-IoT-Device”文件夹中。

5.1。原理图

使用以下组件将电位器、4 位显示器、按钮、LCD 显示器连接到 NodeMCU 板:

  • 面包板
  • NodeMCU板
  • 电位器
  • 按钮
  • 4 位 7 段显示器 (TM1637)
  • 液晶显示器 (2x16)
poYBAGNxjUeAeINZAAGiXmdmkZE991.png
 

5.2. 为 NodeMCU 开发设置 Arduino IDE

如果尚未安装,请从以下链接下载并安装 Arduino ID

注意:我们不建议在此演示中使用 Arduino Web 编辑器,因为不支持 NodeMCU 板。

插入时,如果未检测到 NodeMCU 端口,则需要使用以下链接手动下载并安装 USB 驱动程序:https ://github.com/nodemcu/nodemcu-devkit/tree/master/Drivers

5.3. 为 Arduino IDE 添加 NodeMCU 板支持

首先,打开 Arduino IDE,转到“文件”>“首选项”条目。

在“其他板管理器 URL”文本框中复制以下 URL :

pYYBAGNxjUmAanmoAAA9oyLKnFM386.png
 

单击“确定”关闭“首选项”对话框。

完成上述步骤后,进入“工具”>“Board:...” ,然后选择“Board Manager”

pYYBAGNxjO6ASnWsAAB7mEamYSo463.png
 

输入文本框“esp8266” ,然后导航到“esp8266 by esp8266 community”并“安装”Arduino 软件。

pYYBAGNxjU-AM83WAAA3o3LZW-g630.png
 

转到“工具”>“板...” ,然后选择“NodeMCU 1.0”板。

完成上述所有过程后,您就可以使用 Arduino IDE 对 NodeMCU 板进行编程了。

5.5. 配置 NodeMCU 草图

在您的 Arduino IDE 中打开草图“ NodeMCU_PotentiometerSensor-DisplayActuator.ino ”。

设置你的WIFI参数

  • char* WIFI_SSID = "FILL_THE_WIFI_SSID";
  • char* WIFI_PSWD = "FILL_THE_WIFI_PSWD";

在您的网络中设置 ACME IoT 平台的 IP 地址:

  • String CSE_IP = "X.X.X.X";

5.6. 编译 NodeMCU 草图

单击验证按钮以编译草图。

poYBAGNxjVGAHb8zAAAC4Izm5Rk201.png
 

编译输出:

pYYBAGNxjPSAVZiTAAAgqEmOl-w962.png
 

5.7. 将草图上传到NodeMU 板

单击上传按钮将草图上传到 NodeMCU 板。

pYYBAGNxjVaAbxIgAAAC45AZZ4Y023.png
 

上传输出:

pYYBAGNxjPiABXw1AAAtwSd7TuA077.png
 

5.8. 使用串行监视器调试代码执行

单击按钮打开 Arduino 串行监视器以显示 NodeMCU 控制台。

poYBAGNxjVqAK7dYAAAF0n7TVOo475.png
 

然后在打开串行监视器后从下拉列表中选择 115200。

5.9. 在 ACME Web 界面上查看 IoT 设备资源

您应该会看到“PotentiometerSensor”应用实体资源,其中包含在 oneM2M Web 界面上创建的“DESCRIPTOR”和“DATA”容器。

您还应该看到在 oneM2M Web 界面上创建的带有“DESCRIPTOR”、“DATA”和“COMMAND”容器的“DisplayActuator”应用程序实体资源。

pYYBAGNxjV2ACVARAAF44Y00td8154.png
 

6. 连接您的 IoT 应用程序

电位器监控和显示管理应用源码以NodeJS和Python提供。文件夹中提供了源代码:

  • "oneM2M-IoT-Application/nodejs/onem2m-monitor.js"
  • "oneM2M-IoT-Application/python/onem2m-monitor.py"

6.1。配置应用程序

您可以使用提供的两个应用程序之一:NodeJSPython

6.1。选项 A = NodeJS IoT 应用程序

使用您喜欢的文本编辑器打开文件nodejs / config/default.json 。并编辑必要的配置参数。

设置 ACME 平台的 IP 地址(变量“ monitorIP ”)。如果您在同一台计算机上运行 ACME 平台和应用程序,则可以保留 localhost (127.0.0.1)。

6.1。选项 B = Python IoT 应用程序

使用您喜欢的文本编辑器打开文件python/default.json 。并编辑必要的配置参数。

设置oneM2M平台的IP地址(变量“monitorIP )。如果您在同一台机器上运行 oneM2M 平台和应用程序,则可以保留 localhost (127.0.0.1)。

6.2. 启动应用程序

6.2. 选项 A = NodeJS IoT 应用程序

在终端上,使用npm工具安装以下 Node.js 模块(安装 Node.js 时默认安装):

> npm install express
> npm install request
> npm install body-parser
> npm install request
> npm install yargs
> npm install config

使用以下命令启动 Node.js oneM2M IoT 应用程序:

> node onem2m-monitor.js -s Potentiometer -a Display

6.2. 选项 B = Python IoT 应用程序

在终端上,使用pip工具安装以下 Python 模块(可以在安装 Python 时安装):

> pip install requests
> pip install flask

使用以下命令启动 Python oneM2M IoT 应用程序:

> python onem2m-monitor.py -s Potentiometer -a Display

6.3. 在 ACME Web 界面上查看 IoT 应用程序资源

您应该会看到Monitor在 oneM2M Web 界面上创建的“ ”应用程序实体 (AE) 资源。还要检查下订阅资源的创建PotentiometerSensor/DATA

pYYBAGNxjV-AfiDrAAF_StiMUZw330.png
 

7. 示范

当您改变电位器的位置时,它的值会直接复制到 4 位显示器上。

当您按下按钮时,电位器的值会通过 WiFi 发送到远程 CSE。然后将该值通知给监控应用程序。

根据接收到的值,监视器应用程序将通过 CSE 向 LCD 屏幕发送特定消息。

如果该值低于 512 (分别高于 512 ),则监视器应用程序将发送“Value is LOW” (分别为“Value is HIGH” )以显示在 LCD 屏幕上。

 
 
 
pYYBAGNxjWSAC1hgAAajmSw68uo180.jpg
 
1 / 3
 
poYBAGNxjWeAJypzAACS8KeyhdY742.jpg
 

8. 更进一步

如果您有第二个 NodeMCU,您可以将传感器和执行器拆分到两个 NodeMCU 设备上。

8.1 架构

poYBAGNxjWmAVbIGAAEdXxqOcLA712.png
 

8.2 原理图

pYYBAGNxjW2AI5foAAIQQmVaaY8820.png
 

8.3 NodeMCU 草图

您可以在文件夹中找到拆分为两个新草图的原始草图代码:

"oneM2M-IoT-Device/PotentiometerSensor_DisplayActuator"

NodeMCU 1(仅限传感器)

  • "PotentiometerSensor/PotentiometerSensor.ino"

NodeMCU 2(仅限执行器)

  • "DisplayActuator/DisplayActuator.ino"

8.4 物联网应用

感谢 oneM2M 标准,您可以使用相同的 IoT 应用程序而无需进行任何更改 :-)


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !