Ubuntu 下使用 ZTE ME3630 4G 模块

之前在 TL5728-EasyEVM 开发板上使用过这个模块,用来在野外采集数据上传到服务器。最近接触另外一个项目,做一个演示用的样机,需要移动的,也是采用了这个模块来上传数据。样机环境是 Ubuntu 16.04 32bit。这里总结下这个模块的使用方法。

其实很简单,一共就以下几个步骤。如果操作失败,尝试使用 sudo,甚至直接使用 root 用户进行操作。

1、加载驱动

sudo modprobe option

2、使能设备

sudo echo 19d2 1476 > /sys/bus/usb-serial/drivers/option1/new_id

这个操作之后应该就能够看到 /dev 下多了 ttyUSB0、ttyUSB1、ttyUSB2 几个设备节点了。

3、打开设备

sudo ./call /dev/ttyUSB1

这里 call 程序是通过 /dev/ttyUSB1 使用 AT 指令配置 ME3630。另外编译生成。

Ubuntu 下使用 ZTE ME3630 4G 模块_第1张图片

Ubuntu 下使用 ZTE ME3630 4G 模块_第2张图片

至此,4G 网络就进入就绪状态了,可以畅通访问互联网。

call 程序的代码参考:

#include 
#include "serial.h"

int main(int argc, char **argv) {
    if (argc != 2) {
        printf("usage: call <> \n"
               "eg: call /dev/ttyUSB1 \n");
        return -1;
    }
	
	int fd = open_serial(argv[1]);
	if(fd < 1)
		return -1;
	
	termios_setup(fd, B115200);
    tcflush(fd, TCIOFLUSH);

	struct timeval tv;
	tv.tv_sec = 5;
	tv.tv_usec = 0;

    const char *cmd_conn = "AT+CGDCONT=1,\"IP\",\"CMWAP\"\r";
	serial_write(fd, cmd_conn, strlen(cmd_conn), &tv);
	if (serial_wait_ok_string(fd, 5) != 1) {
        printf("Setup data call parameter error. exit!\n");
        goto err;
    }

	const char *cmd_call = "AT+ZECMCALL=1\r";
    serial_write(fd, cmd_call, strlen(cmd_call), &tv);
	if (serial_wait_ok_string(fd, 5) != 1) {
        printf("Setup ECM data call error. exit!\n");
        goto err;
    }
	
    close_serial(fd);
    return 0;

err: 
    close_serial(fd);
	return -1;
}

 

你可能感兴趣的:(软件开发)