硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2601|回复: 0
收起左侧

[技术分享] 分享一个测试NB73物联网模块的Lua脚本

[复制链接]

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2021-7-28 10:00:03 | 显示全部楼层 |阅读模式
NB73.lua (2.06 KB, 下载次数: 4)

接线方法:
  TOOL      NB73
    TVCC  --- VCC
    GND    --- GND
    TTLTX --- RX
    TTLRX --- TX

测试说明:
   1、缺省9600波特率,AT指令集
   2、依次发AT指令查询模块编号、SIM卡号、信号质量
   3、返回结果中搜索OK判断成功与否
   4、判断信号RSSI范围(小于25)
   5、可显示模块电流,如有需要可对电流范围进行判断

Lua程序:

--F01=自动测试,TestNB73()
beep()  
--成功叫一声,失败叫三声
function TestErr(void)
  print("测试失败")
  beep()
  delayms(100)
  beep()
  delayms(100)
  beep()  
end

function TestOk(void)
  print("测试通过")
  beep()
end

--测试NB73硬件功能
function TestNB73(void)
  local COM_485 = 1
  local Parity = 0
  local DataBits = 8
  local StopBits = 1
  local tx_str
  local rx_str
  local rx_len
  local str
  local curr
  local volt
  local ret = "OK"
  local pos
  local rssi = 99
  
  print("开始测试NB73")
  
  beep()
  
  write_reg16(0x01FF,2) --启动ADC模式2,低速扫描测电流
  
  uart_cfg(COM_485, 9600, Parity, DataBits, StopBits)

  volt = read_analog(4)
  curr = read_analog(5)
  str = string.format("电压 %0.1fV 电流 %0.1fmA", volt, curr)
  print(str)
  
  print("1.查询IEMI")
  tx_str = "AT+CGSN=1\r\n"
  uart_send(COM_485, tx_str)
  rx_len, rx_str = uart_recive(COM_485, 100, 100)
  print(tx_str..rx_str)
  if (string.find(rx_str,'OK') == nil) then
    ret = "ERROR"
    goto quit_err
  end
  
  print("2.查询SN")
  tx_str = "AT+SN\r\n"
  uart_send(COM_485, tx_str)
  rx_len, rx_str = uart_recive(COM_485, 100, 100)
  print(tx_str..rx_str)
  if (string.find(rx_str,'OK') == nil) then
    ret = "ERROR"
    goto quit_err
  end
  
  print("3.查询智能卡号")
  tx_str = "AT+NCCID?\r\n"
  uart_send(COM_485, tx_str)
  rx_len, rx_str = uart_recive(COM_485, 100, 100)
  print(tx_str..rx_str)
  if (string.find(rx_str,'OK') == nil) then
    ret = "ERROR"
    goto quit_err
  end
  
  print("4.查询信号质量")
  tx_str = "AT+CSQ\r\n"
  uart_send(COM_485, tx_str)
  rx_len, rx_str = uart_recive(COM_485, 100, 100)
  print(tx_str..rx_str)
  if (string.find(rx_str,'OK') == nil) then
    ret = "ERROR"
    goto quit_err
  end
  
  --判断信号质量
  pos = string.find(rx_str,'+CSQ:')
  if (pos  ~= nil) then
    rx_str = string.sub(rx_str, pos + 5, pos + 6)
    rssi = tonumber(rx_str)
    print("rssi = ", rssi)
  else
    goto quit_err
  end
  
  if (rssi > 25) then
    print("信号质量很差")
    goto quit_err
  end

::quit_err::
  if (ret == "OK") then
    TestOk()
  else
    TestErr()
  end
  
  return ret
end




运行结果:
NB73.png







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-25 20:47 , Processed in 0.278023 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表