何小豆儿在此 发表于 2024-10-23 19:43:32

EM9636数据上传百度云

EM9636数据上传百度云

相干资源可到下列链接下载:
源文件
如果想让EM9636数据上传至百度云,需要利用到百度云的物联网核心套件功能。
下面简要先容一下创建立备的过程,详细信息可以参考下面的连接:
https://cloud.baidu.com/doc/IoTCore/s/pk7ophcd8
预备工作

1. 创建IoT Core实例

2022.11.14是本文写作的日子,百度云每个账号可以创建10个IoT实例。
登岸控制台页面
https://console.bce.baidu.com/iot2/core/core/list
单击创建IoT Core:
https://i-blog.csdnimg.cn/blog_migrate/c94ca50a794b8cc952ccf9ea3eb5ab31.png#pic_center
名称填写test即可,上图是创建完成后,在名称/ID下面会有实例的简况,包罗名称,状态,描述,创建时间,操纵等信息。
2. 创建模板(主题)

点击上面创建的test,进入实例控制界面,先点击模板,创建一个模板,这个模板在后面创建立备的时间会用到,实际上模板就是设置主题(toptic)用的,这里创建模板名称叫做default,每个新模板都会固定包含两个主题,一个是用于发布的,一个是用于订阅的,为了后续编程方便,利用标准模式新建了一个同时拥有发布和订阅权限的主题fortest。下面几幅图描述了创建模板的步调:
https://i-blog.csdnimg.cn/blog_migrate/9d4c73a2434f99e1f336a5429a64c46b.png#pic_center
https://i-blog.csdnimg.cn/blog_migrate/7cc43a37c6afd46e5853f99e085cba03.png#pic_center
颠末这几个步调后,我们便拥有了一个具有发布订阅权限的主题模板,接下来就可以创建立备了。
https://i-blog.csdnimg.cn/blog_migrate/bcd7dbc385bff2493bce71fcb0745fc1.png#pic_center
3. 创建立备

点击设备列表,然后点击新增设备按钮,名称填写device2,认证方式选择密钥认证,模板利用刚才建立的default,点击提交后就会建立好一个设备了。
https://i-blog.csdnimg.cn/blog_migrate/1f45c40aa88700346058ed9676e797b3.png#pic_center
https://i-blog.csdnimg.cn/blog_migrate/cd02c4add35aae5d9513b58b2cf63e7d.png#pic_center
4. 末了天生MQTT连接信息

点击之前创建好的device2设备,记录下来连接信息中的IoTCoreId、DeviceKey 和 DeviceSecret,如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/7c0363c9068ac507b285e4a2e23ed6f9.png#pic_center
然后将这几个信息填入到百度提供的
MQTT连接信息盘算器(https://iotcore-dev-tool.gz.bcebos.com/mqtt-sign/)中,如下图所示,则可以得到MQTT连接信息,后面写程序将会用到这些信息。
https://i-blog.csdnimg.cn/blog_migrate/3fa4d9d438e2dc7d20632dff3b30157a.png#pic_center
5. 测试云端情况是否精确搭好

请到下面网址下载mqtt.fx1.7.1
https://mqtt.iot01.com/apps/mqttfx/1.7.1/
参照下面连接创建连接:
https://cloud.baidu.com/doc/IoTCore/s/Rk7omsg0f
按照里面的提示和之前创建的设备举行通讯,发布和订阅消息均成功后就可以举行编程了。
6. 关于费用

参考连接:
https://cloud.baidu.com/doc/IoTCore/s/nkywsmx65
百度物联网制止到2022-11-15的收费标准如下:
100万条消息免费,100万分钟免费。
100万条消息是什么概念呢,每条消息都利用最大长度512字节,则免费的数据量就是1000000 * 512 = 488MB,如果设备利用发布消息,显示终端利用订阅消息,则相当于2台数据,免费的数据量就是48828/2=244MB。如果1S发布一次消息,则免费时长=1000000/3600/2=138小时=5天。一个月总条数就是36002430*2=5184000,1亿条消息一次1.2元/百万条,向上取整,一个月是6百万条,一台设备发布,一台设备订阅,1S一次数据则所需费用是5 * 1.2=6元。
100万分钟是什么概念呢,每个月一个设备在线,则分钟数是60 * 24 * 30=43200,则可以有100000000/43200=2314台设备可以免费在线。
下位机编程

如果用户不关心原理,可以直接从第6步开始看,那里报告了如安在编写程序将EM9636B采集的数据上传到百度云。
1. 下载源代码

百度提供了官方基于C语言SDK的IoT-SDK-C支持设备通过mqtt协议与物联网核心设备通讯,由于它需要openssl的支持,如果利用嵌入式开发情况,也要设置好openssl支持,相对贫困一些,有兴趣的可以参考下面连接:
https://github.com/baidu/iot-sdk-c
我们利用开源MQTT Client SDK接入,详细就是paho.mqtt.embedded-c,其源码网址是:
https://github.com/eclipse/paho.mqtt.embedded-c
它是面向嵌入式操纵体系版本的,所以比较适合我们的产品,最终我们是要在运行在ARM上的嵌入式linux体系中。
2. 加入自己的源代码而且编译

将下载的zip文件解压后复制到工作目次,默认目次名是paho.mqtt.embedded-c
将mqtt_em9636_demo.c文件复制到
paho.mqtt.embedded-c-master\MQTTClient-C\samples\linux
目次下,修改此目次下的CMakeLists.txt文件,添加下面的内容:
add_executable(
mqtt_em9636_demo
mqtt_em9636_demo.c
)
target_link_libraries(mqtt_em9636_demo paho-embed-mqtt3cc paho-embed-mqtt3c)
target_include_directories(mqtt_em9636_demo PRIVATE “…/…/src” “…/…/src/linux”)
target_compile_definitions(mqtt_em9636_demo PRIVATE MQTTCLIENT_PLATFORM_HEADER=MQTTLinux.h)
修改后的文件如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/e514fa69c15c8696eb3e8c1f9f16e203.png#pic_center
然后进入paho.mqtt.embedded-c目次,运行下列命令:
mkdir build.paho
cd build.paho
cmake …
make
然后进入下面的目次:
paho.mqtt.embedded-c-master\build.paho\MQTTClient-C\samples\linux
可以看到有可执行文件mqtt_em9636_demo,这个对应的源代码就是mqtt_em9636_demo.c,只要修改这个文件后,再在paho.mqtt.embedded-c\build.paho目次下运行make命令,就可以天生新的可执行文件。
3. 修改自己的源文件

mqtt_em9636_demo.c中需要将对应位置的字符串更换成预备工作步调4中的信息,可以参考下图:
https://i-blog.csdnimg.cn/blog_migrate/140c2179c17baecbe4a1436fd6ba7a81.png#pic_center
主题名称就是预备工作步调2中创建的主题名称。
4. 编译而且测试

上述步调都精确完成后,进入paho.mqtt.embedded-c\build.paho目次,运行make命令,然后进入
paho.mqtt.embedded-c-master\build.paho\MQTTClient-C\samples\linux
目次,运行mqtt_em9636_demo程序,稍等片刻,连接MQTT服务器成功后,就可以看到发布和订阅的消息了:
https://i-blog.csdnimg.cn/blog_migrate/53b4b1b19411c0575129d534164b4249.png#pic_center
5. 将编译器更换成下位机的ARM编译器

至此为止,编译的都是开发机的可执行文件,如果想要在EM9636的操纵体系下运行mqtt客户端程序,必须利用支持EM9636核心板的编译器,打开paho.mqtt.embedded-c-master目次下的Makefile文件,找到下面的行:
ifeq ($(OSTYPE),Linux)
CC ?= gcc
修改成下列所示:
ifeq ($(OSTYPE),Linux)
CC = arm-linux-gnueabihf-gcc
#CC ?= gcc
然后在paho.mqtt.embedded-c目次运行:
make clean
make
进入paho.mqtt.embedded-c-master\build\output目次,运行ls -l,可以看到下面的文件:
https://i-blog.csdnimg.cn/blog_migrate/26f6ca8f46b5205c13841712fe3ac410.png#pic_center
在paho.mqtt.embedded-c-master目次下建立em9636Demo目次
mkdir em9636Demo
进入em9636Demo目次,建立makefile文件,内容如下:
CC=arm-linux-gnueabihf-gcc
LD = arm-linux-gnueabihf-gcc
CFLAGS = -c -Iinc
LDFLAGS = -lpthread -lm -lrt#还可以加入INCLUDES和LIBS变量,视情况而定
SRCS = $(wildcard src/*.c) #SRCS的值就是当前面目次下面所有的以.c末了的源文件
OBJS =                                    (                         p                         a                         t                         s                         u                         b                         s                         t                              (patsubst %c,%o,                  (patsubst(SRCS)) #SRCS目次下创建c文件相对的o文件
TARGET = mqtt_em9636_demo #最终链接天生的目标名
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%o: %c
$(CC) $(CFLAGS) -o $@ $<
clean:
@rm -f src/*.o $(TARGET)
建立src目次,将必要的文件复制进来,文件目次如下:
https://i-blog.csdnimg.cn/blog_migrate/707077cb74e589481763e7e7eedb8fff.png#pic_center
在em9636Demo目次下运行make命令,天生可执行文件
6. 设置EM9636的DNS

编辑下面的文件:
vi /etc/resolv.conf
添加:
nameserver 8.8.8.8
保存退出后重新启动网络服务,执行ping www.baidu.com命令,如下显示则说明设置成功:
https://i-blog.csdnimg.cn/blog_migrate/9ee30f25fc58d829d7e60a4db3adaf0d.png#pic_center
此时运行刚才利用arm编译器编译的文件,现象应该和第4步中的结果同等。
7. 读取EM9636数据并上传

EM9636产品所在
首先用户需要有EM9636下位机编程情况,详细编程情况搭建方法可以与中泰联创销售人员接洽获取支持。
请先将em9636mqtt.tar.gz文件解压缩,目次结构如下:
https://i-blog.csdnimg.cn/blog_migrate/7a56bd33cb92a0090a76d530e57f3c05.png#pic_center
用户需要修改的文件是mqtt_em9636_demo.c,将预备工作第4步操纵结果填入到文件下列位置:
https://i-blog.csdnimg.cn/blog_migrate/9a49fa365f5c7f47ebfaa3c8174c42c1.png#pic_center
核对无误后在em9636mqtt目次下运行make命令,则可以天生可执行文件。在EM9636串口终端中运行mqtt_em9636_demo,则可以将32路AD数据采集结果传到百度云上。
目前本示例只实现了32路AD数据的采集,如果想要采集计数器等其他数据,则可以参考EM9636.h文件里面的注释,大概接洽中泰联创销售人员,可为您提供定制服务。
本示例天生的JSON字符串凌驾了512字符,每发布一条消息会算作两条消息,从经济的角度来说,用户可以只上传必要的信息,将字符串长度控制在512字符以内,这样可以降低一定的费用。
利用物可视实现网页监控

在下位机编程的第6步中,我们实现了每秒钟发布一次采集数据的功能,接下来要利用百度云提供的物可视功能来将传输过来的数据显示出来。
1. 创建工作区

进入百度云的物联网服务->物可视->工作区界面,点击创建工作区,工作区名称按照自己需求填写就可以,我这里利用test1作为名称,如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/8176d85aa455b8e6b3afa1a59d0097c5.png#pic_center
点击确定后就创建好了一个工作区,然后点击test1工作区,进入创建仪表盘界面:
https://i-blog.csdnimg.cn/blog_migrate/037e354b1da1ba51eae3c3a1f3e4d334.png#pic_center
2. 创建仪表盘

仪表盘就是最终的显示界面,点击创建仪表盘后,会弹出新建仪表盘对话框,名称我这里取名test,其余按照默认,然后点击确定按钮后,就会进入筹划器界面:
https://i-blog.csdnimg.cn/blog_migrate/b7d6a8726f7831cd0101076823821c8a.png#pic_center
3. 创建数据表

数据表的功能是设置数据来源。
点击上一步调筹划器中的数据按钮,新建数据表:
https://i-blog.csdnimg.cn/blog_migrate/c28af584037881c7d3b91bf212df4106.png#pic_center
点击新建按钮后出现新建数据表对话框,名称取为trend(可以随意取其他故意义的名字),范例选择物联网核心套件,然后实例和设备都按照预备工作中创建的选择,最终如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/4da1a56f73c0c4a16fb16ed3c31e962b.png#pic_center
订阅主题利用预备工作第2步中创建的主题,填好主题后,同时在EM9636运行mqtt程序发布信息的情况下,可以点击一键获取来接收到JSON字符串,然后按照下图填好其他值:
https://i-blog.csdnimg.cn/blog_migrate/99f80c1ac5684b77edde61c4182c3777.png#pic_center
https://i-blog.csdnimg.cn/blog_migrate/05e53551ed399672495b653bb290aed2.png#pic_center
数据更新方式选择追加,这样每来一条新的数据都会显示在前一条后面,它可以用于曲线图的显示。单击下一步后选择确定按钮,则建立了一个数据表。
接下来在新建一个名称位newest的数据表,数据更新方式改成覆盖,每次新到的数据都会覆盖前一次的数值,可以用于文本框的显示。最终的数据表如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/c97f8f118079d94e3113b8312464bc4c.png#pic_center
4. 建立显示界面

在仪表盘的画布界面,拖入时序折线图
在右侧的数据绑定界面绑定序列:
https://i-blog.csdnimg.cn/blog_migrate/44f69438f16c9f24e9ec92310e5112d0.png#pic_center
数据表选择trend,时间轴选择timestamp,Y轴选择A01,表示显示AD1的数据如下图所示
https://i-blog.csdnimg.cn/blog_migrate/ef0ac441565af06d6ce853a05b5ad121.png#pic_center
点击确定按钮,就将数据与控件绑定了,然后再拖一个记分牌控件,属性如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/e9dfa83e183462b4d964d5988c4dd722.png#pic_center
然后数据绑定到newest的times上:
https://i-blog.csdnimg.cn/blog_migrate/03bb7528438d6b0dcdc49a42e6f4a0da.png#pic_center
点击确定后最终界面如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/25ae430829b1960a68bb71f46a625282.png#pic_center
可以点击运行查看动态效果,没题目后点击返回按钮回到仪表盘界面,点击发布按钮:
https://i-blog.csdnimg.cn/blog_migrate/1d7bcaacfaf176b6a5e60d52c27a8226.png#pic_center
然后点击分享按钮:
https://i-blog.csdnimg.cn/blog_migrate/d2bd26f986b7573bcd9bab47315da34e.png#pic_center
复制链接而且记录,则可以在任意一个欣赏器上通过这个链接来看到EM9636的数据采集结果以及下位机上传数据的次数。
5. 关于物可视占用的连接数

每个数据表订阅的主题,都将占用一个连接,步调3中建立的两个数据表,则会算成2个连接,在进入工作区后,这个工作区对应的所有数据表都会处于在线状态。仪表盘发布后,每个访问仪表盘的终端都会天生2个连接,对应的订阅消息数也会翻倍,然后计入到总消息数中,如果仪表盘发布链接要是可以随意访问,则总消息数也会处于一种不可控状态,因此最好设上暗码,让只有得到授权的终端能够访问。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: EM9636数据上传百度云