【LoRaWAN网关活动】node+网关+STM32数据交互

2021-05-24 10:44:31 浏览数 (1)

腾讯云开发步骤

拿到了1折抢下的腾讯连连联名款网关,是心动的感觉~

小巧精致美丽小巧精致美丽

看下这小巧的外观,一看就不简单!

下面我们就开始来配置我们的网关吧~

首先将线连接到我们的电脑上,然后你会看到它亮闪烁的蓝灯,此时我们需要按住USER键,按住的同时按下RET键,完成网关的重新设置!

找到我们网关(M00L_E074),输入默认的密码:heltec. org,然后输入192.168.4.1,打开网关配置网页:

进入一下界面我们需要注意的几个事项如下:

1、记住网关ID 2、把WiFi名称改为自己热点的名字(在家的话就输入自己家的WiFi) 3、密码也改成自己WiFi的密码

此时看到网关的灯由闪烁的蓝灯变为一直长亮的蓝灯,则说明此时网关已经连上了网。

然后我们进入腾讯云官网,找到物联网开发平台:

进入物联网开发平台,新建一个公共实例,然后进入公共实例中:

一、配置节点

l 点击“新建项目”:

l 输入自己项目名称,起一个自己个性化的名字:

l 点击你的项目里面,然后点击新建产品:

l 创建一个产品,注意:通信方式选择LoRaWAN,其他不变

l 然后点击进入我们刚才建立好的产品中,导入“JSON”:

l 以下是我导入的JSON代码(仅供参考):

代码语言:javascript复制
{
  "version": "1.0",
  "properties": [
  {
  "id": "humidity",
  "name": "湿度",
  "desc": "",
  "mode": "r",
  "define": {
  "type": "int",
  "min": "0",
  "max": "100",
  "start": "0",
  "step": "1",
  "unit": "%"
  },
  "required": false
  },
  {
  "id": "temperature",
  "name": "温度",
  "desc": "",
  "mode": "r",
  "define": {
  "type": "int",
  "min": "-100",
  "max": "155",
  "start": "0",
  "step": "1",
  "unit": "摄氏度"
  },
  "required": false
  },
  {
  "id": "PowerSwitch",
  "name": "开关",
  "desc": "开关",
  "mode": "rw",
  "define": {
  "type": "bool",
  "mapping": {
  "0": "关",
  "1": "开"
  }
  },
  "required": false
  },
  {
  "id": "BrightNess",
  "name": "亮度",
  "desc": "亮度",
  "mode": "rw",
  "define": {
  "type": "int",
  "min": "10",
  "max": "100",
  "start": "80",
  "step": "10",
  "unit": "%"
  },
  "required": false
  },
  {
  "id": "period",
  "name": "上报周期",
  "desc": "",
  "mode": "rw",
  "define": {
  "type": "int",
  "min": "5",
  "max": "20",
  "start": "10",
  "step": "1",
  "unit": "秒"
  },
  "required": false
  }
  ],
  "events": [],
  "actions": [],
  "profile": {
  "ProductId": "5T754QYYEV",
  "CategoryId": "1"
  }
 }

l 导入完JSON后,我们点击进入设备开发,将RX_Delay设置为3S:

l 然后我们需要配置设备的解析方式,我们需要点击“云端解析”,配置上行数据解析方式和下行数据解析方式:

上行数据解析方式(仅供参考):

代码语言:javascript复制
function RawToProtocol(fPort, bytes) { 
  var data = { 
  "method": "report", 
  "clientToken" : new Date(), 
  "params" : {} 
  }; 
  data.params.temperature = bytes[0]; 
  data.params.humidity = bytes[1]; 
  data.params.period = bytes[2]; 
  data.params.PowerSwitch = bytes[3]; 
  data.params.BrightNess = bytes[4]; 
  return data;
 }

下行数据解析方式(仅供参考):

代码语言:javascript复制
function ProtocolToRaw(obj) 
{ 
 var data = new Array();
 data[0] = 2;// fport=2 
 data[1] = 0;// unconfirmed mode 
 data[2] = obj.params.period; 
 data[3]= (obj.params.PowerSwitch); 
 data[4]= (obj.params.BrightNess); 
 data[5]=0; 
// if (obj.params.hasOwnProperty("period")) 
 // data[5] = 1; 
 // if (obj.params.hasOwnProperty("PowerSwitch")) 
 // data[5] = 2; 
 // if (obj.params.hasOwnProperty("BrightNess")) 
 // data[5] = 4; 
 return data;
}

l 接着我们就要添加一个节点,点击“设备调试”,输入DevEUI和AppKey:

这样我们设备就添加成功了!

但这样你以为就完了吗?

--------我们还需要配置我们的网关~

l 点击网络管理-Lorawan网关管理,自定义一个频点,在这里我们使用中国无线电委员会规定免费民用的CN470频段,点击“添加频点”:

l 输入数据信道配置和入网信道配置:

频点配置完了,没有我们的网关那怎么行呢?

————————所以我们添加一个我们刚刚已经联上网的网关,点击“添加网关”:

网关分布全国各地~~网关分布全国各地~~

二、配置网关:

1、频点信息:选择我们刚刚自定义的频点:CN470

2、位置信息:在地图中找到我们的网关(用蓝色箭头标识出来的),然后点击蓝色箭头,系统将会自动识别我们网关的位置信息,将数据填入进去~~~

注意:GwEUI就是填写之前我们需要记住的网关ID

然后点击“添加网关”,然后我们就完成一个完整的网关配置。

接下来我们就来到了令人头疼的代码程序环节:

三、程序分析:

1、节点keil程序:对从腾讯连连小程序接收到的数据进行处理:

2、单片机keil程序:单片机串口接收数据并显示在OLED屏上:

3、然后将单片机的RXD连接到节点模块的TXD,将单片机的TXD连接到节点模块的RXD,以实现单片机和节点之间的通信。

节点端节点端
单片机端单片机端

4、连接完先后,我们找到“设备调试”下的“二维码”:

然后打开腾讯连连小程序,点击"加号"添加设备,然后扫刚才你点击出来的二维码,添加一个新设备:

5、在腾讯连连小程序上修改显示值:

等待个几秒钟~~

然后你就可以在OLED上看到单片机接收到我们下发的数据:

这样我们就完成了一次完整的单片机和节点的交互过程,然后在云端我们可以实时监测我们下发的数据,是不是很神奇(/doge)?

0 人点赞