M5310A--学习笔记

本文详细介绍了使用M5310A模组通过LwM2M协议接入中国移动OneNET平台的过程,包括官方例程解析、下行命令处理和二次开发注意事项。重点讲解了write_callback和read_callback函数在数据上传和接收中的作用,以及如何添加新资源和管理状态检测。同时提到了OneNET的学习笔记系列,为NB-IoT开发提供参考。
摘要由CSDN通过智能技术生成

前言

本文使用中国移动OneNET 开发板-NB版 CM1719_V2.1
模组为M5310-A 通过LwM2M协议接入OneNet
使用官方提供的例程运行流程进行梳理。

对官方例程进行粗略解析

  1. 声明需要传递的变量的结构体
nbiot_value_t temp;     /* 温度 */
nbiot_value_t humi;     /* 湿度 */
nbiot_value_t illumi;   //光照
nbiot_value_t press;    //压力
nbiot_value_t altitude; //海拔
nbiot_value_t acceleX;  //三轴加速x
nbiot_value_t acceleY;  //三轴加速y
nbiot_value_t acceleZ;  //三轴加速z
nbiot_value_t LED;
  • 通过跳转可以看到结构体为:
typedef struct _nbiot_value_t
{
   
    union				
    {
   
        bool    as_bool;	  //上传值为bool类型(1/0)
        int64_t as_int;		  //上传值为int类型
        double  as_float;     //上传值为float类型
        struct
        {
   
            char  *val;		  //所需上传的字符串
            size_t len;		  //字符串长度
        } as_buf;		      //上传类型为字符串
    } value;			      //建立一个名为value的联合体

    uint8_t type;			  //该资源的数据类型
    uint8_t flag;			  //该资源的可操作性(可否读写)
} nbiot_value_t;			  //建立结构体
  1. 声明相应变量
extern float result_lx;       //光照
extern _bmp180 bmp180;        //压力/海拔
extern ADXL345_INFO adxlInfo; //三轴加速
//设置一个宏定义变量将所需上传的数据保存到变量中,方便上传资源
  1. 定义相关参数
char uri[] = "coap://183.230.40.40:5683";	//连接平台地址 IP+端口
nbiot_device_t *dev = NULL;					//赋值NULL
time_t last_time = 0;						//上一次更新时间
time_t cur_time = 0;						//当前时间
  1. 系统初始化
static bool _nbiot_init_state = false;	//系统是否初始化
void nbiot_init_environment( int argc, char *argv[] )
{
   
    if ( !_nbiot_init_state )
    {
   
		nbiot_time_init();
		M5310_Power_Init();
		USART1_Init();
		USART3_Init(); 
		Peripheral_Init();			//对硬件进行初始化(LED,蜂鸣器、按键、I2C、BH1750、ADX345)
		TIM3_Int_Init(1000-1,720-1);//定时器3定时10ms
		
		mDelay(5000);			
		netdev_init();				//模组初始化,联网过程
		_nbiot_init_state = true;	//初始化成功
    }
}
  • netdev_init()
void netdev_init(void)
{
   
	//SendCmd参数:发送指令,返回指令,延时时间,重试时间,等待时间
	//char SendCmd(char* cmd, uint8_t *result,uint16_t timeout,uint8_t retry,uint16_t waittime)
      SendCmd("AT+NRB\r\n", "OK", 5000
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值