【物联网开发教程】机智云App远程和开发板聊天

news2024/11/24 21:00:32

一、实现的功能描述

小程序远程和开发板相互发送字符串信息。

  • 电脑端串口调试助手发送字符串 --> 开发板 --> 小程序
  • 小程序发送字符串 --> 开发板 --> 电脑端串口调试助手

二、 UI配置描述

本例程中所包含的UI配置代码如下:

UI = "[0_RecvText][4_SendText]"

例程中用了类型为 “0” 的控件用来接收小程序下发的字符串信息,用了类型为 “4” 的控件用来向小程序发送字符串信息,关于该类型控件的具体描述可以参看官网中关于ShineBlink云的教程。

基于以上UI配置,当设备上电后,我们在小程序中可以看到系统为我们自动生成的小程序页如下:

三、完整源代码(WiFi版本)

--配置USB接口为CDC虚拟串口模式
LIB_UsbConfig("CDC_PD")
--设置UI配置,该配置决定了小程序页面显示的控件具体有哪些什么,名字是什么
UI = "[0_RecvText][4_SendText]"
--设置C2开发板自带的WiFi连接云
ssid = "abcdef" --修改成您的WiFi路由器账号 
pswd = "123456" --修改成您的WiFi路由器密码
LIB_CloudConfig("S0", "WIFI_C2", 0, "SBK_01", UI, ssid, pswd)
while(GC(1) == true)
do
    --查询是否收到服务器下发的数据
    recv_flag, msg = LIB_CloudRecv()
    if recv_flag == 1 then
        --查看服务器是否下发字符串信息
        if string.find(msg, "SendText") ~= nil then
            Json_Val = LIB_JsonParse(msg, "$.SendText")
            --将收到的字符串通过USB CDC串口发送到电脑串口调试助手上面
            LIB_UsbCdcSend(LIB_StrToTab(Json_Val.."\r\n"))
        end
    end
    if LIB_UsbCommPortOpenQuery() == 1 then
        --查询是否收到电脑发来的串口数据
        recv_flag,recv_tab = LIB_UsbCdcRecv()
        if recv_flag == 1 then
            --将收到的字符串信息发给云端
            Send_Str = string.format("{\"RecvText\":\"%s\"}", LIB_TabToStr(recv_tab))
            LIB_CloudSend(Send_Str)
        end
    end
end

四、实验现象

将上面代码中的ssid和pswd改成您的路由器账号和密码,然后将代码复制到开发板中并运行十几秒之后,我们用微信扫描开发板背后的二维码,在弹出的微信小程序中我们就可以远程和开发板进行字符串消息互发了。

五、4G版本

4G版本和WiFi版本的代码几乎一样,我们只需做如下两处调整即可实现4G远程:

(1)将4G模块插入开发板上的4G插槽,如下图:

 

(2)将代码中WIFI初始化改成4G初始化即可,调整如下:

将原来WiFi的:

--设置C2开发板自带的WiFi连接云
ssid = "abcdef" --修改成您的WiFi路由器账号 
pswd = "123456" --修改成您的WiFi路由器密码
LIB_CloudConfig("S0", "WIFI_C2", 0, "SBK_01", UI, ssid, pswd)

调整成4G后的:

--设置外部4G模块连接云
LIB_CloudConfig("S0", "4G_ML302", 0, "SBK_01", UI, "NO_GPS")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端插件重磅来袭

“你值得拥有”专栏系列上新啦,今日推出“手写前端插件”项目,作为一个前端中高级工程师,手写前端树形菜单插件、弹出层插件、日历插件、分页插件、选项卡插件、进度条插件等是必备的技能,让你的前端技术百尺竿头更进一步&#xf…

2022年饮用水行业电商销售数据:年销额近30亿,头部品牌份额超85%

近日,农夫山泉发布了一则涨价通知。根据通知,农夫山泉上调了杭州市部分规格桶装水售价,涨幅10%。此前,农夫山泉也曾在上海地区对桶装水进行提价。对于本次提价原因,农夫山泉表示主要是物价、原材料、人工及运费等成本不…

MySQl学习(从入门到精通15)

MySQl学习(从入门到精通15)第 18 章_MySQL 8 其它新特性1. MySQL 8 新特性概述1. 1 MySQL 8. 0 新增特性1. 2 MySQL 8. 0 移除的旧特性2. 新特性 1 :窗口函数2. 1 使用窗口函数前后对比2. 2 窗口函数分类2. 3 语法结构2. 4 分类讲解1. 序号函…

JavaScript 面向对象编程

js 实例对象与 new 命令js 对象的继承es6 classes6 class的继承 1 面向对象编程 面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程范式。 它将真实世界各种复杂的关系,抽象为一个个对象,然后由…

第四章.误差反向传播法—ReLU/Sigmoid/Affine/Softmax-with-Loss层的实现

第四章.误差反向传播法 4.2 ReLU/Sigmoid/Affine/Softmax-with-Loss层的实现 1.ReLU层 1).公式 2).导数&#xff1a; 3).计算图&#xff1a; 4).实现&#xff1a; class ReLU:def __init__(self):self.mask None# 正向传播def forward(self, x):self.mask (x < 0) # 输入…

【深度学习基础7】预训练、激活函数、权重初始化、块归一化

一、Unsupervised Pre-training 得益于 Hinton and Salakhutdinov 在 2006 年的开创性工作— 无监督预训(unsupervised pre-training);在《Reducing the dimensionality of data with neural networks.》这篇论文中,他们在 RBMs 中引入无监督预训练,下面我们将在Autoenco…

RapperBot僵尸网络最新进化:删除恶意软件后仍能访问主机

自 2022 年 6 月中旬以来&#xff0c;研究人员一直在跟踪一个快速发展的 IoT 僵尸网络 RapperBot。该僵尸网络大量借鉴了 Mirai 的源代码&#xff0c;新的样本增加了持久化的功能&#xff0c;保证即使在设备重新启动或者删除恶意软件后&#xff0c;攻击者仍然可以通过 SSH 继续…

Qml学习——基本控件

最近在学习Qml&#xff0c;但对Qml的各种用法都不太熟悉&#xff0c;总是会搞忘&#xff0c;所以写几篇文章对学习过程中的遇到的东西做一个记录。 学习参考视频&#xff1a;https://www.bilibili.com/video/BV1Ay4y1W7xd?p1&vd_source0b527ff208c63f0b1150450fd7023fd8 目…

电视剧《狂飙》数据分析,正片有效播放市场占有率达65.7%

哈喽大家好&#xff0c;春节已经过去了&#xff0c;朋友们也都陆陆续续开工了&#xff0c;小编在这里祝大家开工大吉&#xff01;春节期间&#xff0c;一大批电视剧和网剧上映播出&#xff0c;其中电视剧《狂飙》以不可阻挡之势成功成为“开年剧王”。这里小编整理了一些《狂飙…

数据存储技术复习(三)未完

module4智能存储系统是功能丰富且可提供高度优化的I/o处理能力的RAID阵列。请绘制智能存储系统架构&#xff0c;并说明其各个关键组件的主要功能。前端缓存后端物理磁盘2&#xff0e;智能存储系统中&#xff0c;使用缓存进行的写入操作与直接写入到磁盘相比&#xff0c;可以带来…

2023年房地产投资-折价因子研究报告

一、折价因子分析 1.户型不好 一些楼盘的户型不是很理想&#xff0c;可能存在格局与面积分配不合理&#xff0c;浪费面积过多的情况。比如&#xff1a;入户无玄关、入户门正对卫生间、厨房卫生间没窗、长走廊、局部空间太小…… 2.楼层不合适&#xff0c;采光差 非电梯房的…

设计模式(七)----创建型模式之建造者模式

1、概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于&#xff1a;某个对象的构建过程复杂的情况。 由于实现了构建和装配的解…

【本地项目】上传到【GitLab】流程详解

文章目录1、安装Git2、创建GitLab项目文件夹3、创建密钥4、向GitLab上传项目注意&#xff1a;本篇文章中提到的上传流程所需要的命令&#xff0c;几乎在GitLab的Command line instructions中都有所记载 1、安装Git 具体安装流程这里不做过多说明&#xff0c;安装流程可以参考…

JavaEE进阶第四课:Bean 作用域和生命周期

上篇文章介绍了Spring更简单的对象存储和取出&#xff0c;这篇文章我们将会介绍Bean 作用域和生命周期 目录1.作用域1.1引例1.2Bean的六种作用域1.3设置作用域2.生命周期2.1Spring 执行流程2.2Bean的生命周期结束语1.作用域 1.1引例 首先这里的作用域和我们之前java学到变量的…

2023-02-09 - 3 Java客户端的使用

1 Java客户端的使用 为了演示RestHighLevelClient的使用&#xff0c;需要创建一个Spring Boot Web项目。该项目的依赖配置如下&#xff1a; <dependencies> <!--Spring Boot Web依赖--> <dependency> <groupId>org.springframework.boot</gro…

tcp的理解

1、源端口号&#xff1a;发送方端口号2、目的端口号&#xff1a;接收方端口号3、序列号&#xff1a;报文段的数据的第一个字节的序号3、确认序号&#xff1a;期望收到对方下一个报文段的第一个数据字节的序号4、首部长度(数据偏移)&#xff1a;TCP报文段的数据起始距离TCP报文段…

List、ArrayList与顺序表的介绍(数据结构系列3)

目录 前言&#xff1a; 1.List 1.1什么是List 1.2List的使用 2.ArrayList 2.1线性表 2.2ArrayList的方法 2.3ArrayList的模拟实现 2.4ArrayList的使用 2.5ArrayList的三种遍历方式 2.5.1for循环遍历 2.5.2for-each遍历 2.5.3使用迭代器遍历 结束语&#xff1a; 前…

分享88个JS焦点图代码,总有一款适合您

分享88个JS焦点图代码&#xff0c;总有一款适合您 88个JS焦点图代码下载链接&#xff1a;https://pan.baidu.com/s/1zfspX9OSsbAlL53fjiSCEw?pwdulz6 提取码&#xff1a;ulz6 Python采集代码下载链接&#xff1a;https://wwgn.lanzoul.com/iKGwb0kye3wj base_url "…

XGBoost

目录 1.XGBoost推导示意图 2.分裂节点算法 Weighted Quantile Sketch 3.对缺失值得处理 1.XGBoost推导示意图 XGBoost有两个很不错得典型算法&#xff0c;分别是用来进行分裂节点选择和缺失值处理 2.分裂节点算法 Weighted Quantile Sketch 对于特征切点点得选择&#xff…

怎么不让消息弹出?录屏弹窗怎么关

当我们对电脑屏幕进行录制时&#xff0c;时不时跳出的消息窗口和广告会影响我们录制的效果。怎样不让消息弹出&#xff1f;如何关闭录屏弹窗&#xff1f;使用“锁定窗口录制”模式&#xff0c;就能很好地解决这个问题。那有没有拥有“锁定窗口”录制模式的录屏工具&#xff1f;…