• k8凯发

    DTU的告警短信发布(短信猫)配置教程

    • 时间 :2020-03-10
    • 作者 :k8凯发科技
    • 浏览数 :7658

    k8凯发BMD100 5G/4G DTU是为无人值守场景设计的无线数传终端,常用于工业物联网、智慧水利、智慧环保等领域,实现数据无线传输。告警短信群发,也是其中一项常用的功能,经常被应用于远程监测告警信息发布、报警短信发送等,可以同时发送到20个手机,可以在后台预设告警信息发布的内容、告警信息接收的手机号码等。


    k8凯发DTU短信群发.jpg 

     

    案例:DTU短信群发在某空调生产公司的典型应用:

    空调测试台位自动化的项目,软件由Labview编写。 有一项功能为:当某传感器值超过阈值后,要立即发送报警短信给每个测试员。即使测试员不在公司也要能即时收到此报警短信。 因此需要一台可以顺利获得上位机编程控制的DTU设备实现这个发送短信的功能,要求成本低,信号稳定。

     

    k8凯发BMD100DTU.jpg 

     

    k8凯发BMD100  5G/4G DTU实现短信群发的配置步骤:

    1.使用k8凯发配套的DTU管理软件,直接出厂设置即可

    比如要把 “设备使用异常”这种告警短信发送给13912345678和18812345678,现在直接可以向串口发送:   #13812345678,13912345678#设备使用异常#,接受号码每隔5个一组,组与组之间要用英文分号隔开,一次最多4组。


    k8凯发BMD100 DTU短信群发配置步骤.jpg 


    2. DTU开启短信备份功能

    DTU里面配置好接收短信的号码,最多20个,然后往串口发数据,则DTU会把数据发给接收号码


    k8凯发BMD100 DTU短信群发配置步骤2.jpg 


    k8凯发BMD100 DTU短信群发配置步骤3.jpg 


    k8凯发BMD100 DTU短信群发配置步骤4.jpg 

     

    3. AT指令发送

    DTU配置成modem模式


    k8凯发BMD100 DTU短信群发配置步骤5.jpg 


    k8凯发BMD100 DTU短信群发配置步骤7.jpg 


    k8凯发BMD100 DTU短信群发配置步骤8.jpg 


    然后顺利获得发AT指令发短信,具体实现过程如下:

    用AT命令发送中文短信(PDU模式中英文混发)

    实例:

    接收号码:13812345678

    内容:你好PDU模式

     

    发送的AT指令

    发送: AT+CMGF=0 (回车换行)

    接收:OK

    发送: AT+CSCS="UCS2" (回车换行)

    接收:OK

    发送:AT+CMGS=29 (回车换行)

    接收:>

     

    发送:

    0011000D91683118325476F80008AA0e4f60597d0050004400556a215f0f(用ASCII类型发送)

    发送:1A (Ctrl~z) (用16进制类型发送)

    接收:+CMGS: 168(168:发送了多少条短信数量)

    (不回车换行)

    00       //为SCA预留

    11       // FO 设置PDU 类型

    00       // MR 发送参考号

     

    0D       //DA 目的号码长度

    91       //DA 目的号码类型

    68       //DA 中国的区号

    3118325476F8 //接收号码编码 奇偶位互换,接收号码为奇数个末尾用F补充

    00       // PID 发送方式

    08       //DCS 编码模式

    AA       //VP 有效期

    PDU 中用户数据前的PDU 头的长度是15 字节

    0e       //UDL 数据长度(16进制)

    4f60597d0050004400556a215f0f //短信 数据内容Unicode 译码

     

    发送拼接方式:

     根据规律有些数据可以不变

    0011000D9168+接收号码编码+0008AA+内容长度+数据内容Ucde 译码

    接收号码编码:

    列如:13812345678

    1. 因为位数是奇数11位所以在末尾加F变为:13812345678F

    2. 进行奇偶位置互换变为:3118325476F8

      以Java代码为列下面是奇偶互换代码

     

    public static String Odevity(String string) {  

     String st ="";

        if((string.length()&1) !=1) {

           for (int i = 0; i < string.length(); i++) {

             if((i&1) != 1){   //是偶数      

                 st += string.charAt(i+1);

             }

            else {     

                 st += string.charAt(i-1);

                  }    

             }

           }    

    return st;

    }

     

    短信内容转换成Unicode 译码

    1.  下面是任何内容转换成Unicode 译码Java代码


    public static String GBK2Unicode(String gbString) {  

    char[] utfBytes = gbString.toCharArray();   //utfBytes = [测, 试]

            String unicodeBytes = "";   

            for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {   

                String hexB = Integer.toHexString(utfBytes[byteIndex]);   //转换为16进制整型字符串

                  if (hexB.length() <= 2) {   

                      hexB = "00" + hexB;   

                 }   

                 unicodeBytes = unicodeBytes + hexB;   

            }   

               

            return unicodeBytes;

     

    }

    发送内容长度计算

    如:真实内容长度/2=发送内容长度(要转换成16进制)

    如果转换成16进制长度少于2位在前面加个0

    列:28/2 = 14 转换成16进制得到“e” 少于两位要在前面+0 得到“0e”。


    联系我们
    联系我们

    k8凯发Baimatech,集M2M产品研发、IoT平台服务、国际化运营于一体,让我们联接,共创未来