pythonuart
‘壹’ ec600模组入网又休眠
使用rt thread系统里的EC200驱动包+web client做一个物联网项目,之前开发的时候一直都是用的EC600S模块,看起来挺好的,没什么大问题,后来量产的时候不小心买了EC600N焊上去了,之前也听厂家的技术支持说应该是完全一样的,可是就掉进了这个坑里。
故障现象:
模块的net_status和net_mode灯的状态不太对,模块开机后的最终状态有时候net_mode常亮,net_status灭掉,或者net_status一直在慢闪,net_mode一直熄灭。甚至有时候我的应用可以先从服务器拿一包数据,然后又挂掉再也连不上了。
分析:
上述这两种状态都不在文档描述中,打at client去看,你发什么它都是直接回显,比如发AT+CPIN?它就直接回,而不是回OK或者错误,所以初步判断是模块进入了一个错误的状态。那么能让模块进入错误状态无非就是以下几种情况:
睡眠或者开机、重启的姿势不对
或者在模块初始化之前我的应用代码把它搞死了。但是之前用EC600S开发都是好的,而且一般应用代码不太能把模块搞到错误状态,这种可能性比较低。
排查:
针对第二种情况,排查很简单,先把应用软件去掉看看。故障依旧,所以继续排查1.
在EC200的驱动包里要配置开机引脚,状态引脚,睡眠引脚。无论是开发什么东西,一般睡眠这种状态是最容易出问题的,包括x86开发,usb设备开发,屡见不鲜,所以首先把睡眠去掉了(-1),但是故障依旧。
刚开始我始终没有怀疑状态引脚,因为它是个输入,只是判断一下模块有没有开机,感觉不会有什么问题,所以绕来绕去一直没有去动它。直到看到了有个哥们遇到了类似的问题:
RT-Thread-at_device 没有使用power pin 导致的网络异常 bugRT-Thread问答社区 - RT-Thread
这个问题其实我之前用EC600S的时候好像也遇到了,但是我并不用ping,应用也没有问题,所以也没去管他。不过这倒提醒了可以去试试,于是把开机状态也改成-1,居然就好了。
电源引脚我没去动它,模块是需要有一个开机时序的,我看它的初始化代码里也有去动电源引脚重新开机之类的。
希望其他掉在坑里的小伙伴可以看到我这篇帖子,少走点弯路。
打开CSDN,阅读体验更佳
Quectel_EC600S系列_TCP(IP)_应用指导_V1.2.rar
EC600S-CN 模块内置 TCP/IP 协议栈, Host 可以 直接通过 AT 命令访问网络; 这大大降低模块对 PPP 和外部 TCP/IP 协议栈的依赖性,从而降低终端设计 的成本。
EC600N(二)--核心板初次点亮
系列文章目录 EC600N(一)–基本信息介绍 EC600N(二)–核心板初次点亮 目录系列文章目录前言一、使用前说明1.供电方式2. 模块开机状态二、AT指令测试1.测试准备2.AT指令测试 前言 本次实验使用移远EC600N双排核心板,主要使用AT指令测试模块,测试模块的USB口和3.3V串口。 一、使用前说明 1.供电方式 EC600N模块需要用排针的VIN进行供电,供电如下图所示: USB口供电可能达不到模块的开机要求(由于串联了二极管,有压降),一般采用针脚对模块供电。这个设计有点鸡肋。 2.
继续访问
移远4G模组EC600N进行TCP/IP连接和服务器测试
最近公司产品需要增加一个4G模块进行数据传输,想到之前做的移远的4G模块,于是买了一个核心板回来调试。 协议选择TCP/IP,因此使用的是TCP/IP部分的AT指令手册。工具方面,使用串口调试助手,关于测试服务器,一开始用的安信可的透传云,但是服务器连接一段时间不发送消息就会自动断开,所以还是使用了网络调试助手。因为网络调试助手使用的是本地网络,如果需要和4G通信,还需要使用花生壳做内网穿透。 接下来先把服务器部分做好。 如果没有花生壳软件,建议先去官网下载一个 长这样色的。安装后打开界面如下 这个界
继续访问
STM32F405+4G模块OTA固件升级调试记录
STM32F405+4G模块OTA固件升级调试个人记录
继续访问
Cat.1模块使用总结(EC600N)
由于Cat.4模块(EC20)功耗大,考虑到NB网络覆盖问题(设备在野外工作场景),因此项目上用选择了Cat.1(EC600N)模块,现在把调试过程总结下,希望能够帮助到大家。EC20使用总结请看:单片机和4G模块通信总结(EC20)。 一、电源 手册说供电电压≥3.4V,峰值电流3A。 二、通信口 UART和IO口都是1.8V,需要做电平准换。 三、开机顺序 我是上电1s后复位,复位低电平600ms,然后100ms后开机,开机等待10s后进行操作。 四、AT指令 采用消息地体原理,具体请看
继续访问
日志组件
日志组件 1. 日志是什么 日志是软件应用必备的组件,是程序debug,或是数据收集管理的重要依据,方便我们监测生产环境的变量值变化以及代码运行轨迹。本课程主要用来学习实际开发中常用的日志组件。 主要是为了方便我们监测生产环境的变量值变化以及代码运行轨迹等。 这些记录会被输出到我们指定的位置形成文件,帮助我们分析错误以及用户请求轨迹。 2. 常用日志组件 2.1 Log4j与log4j2.x Log4j有8种不同的log级别,按照等级从低到高依次为:ALL>TRACE>DEBUG>
继续访问
ESP32+移远EC600N模组通过MQTT连接阿里云并通过HTTP进行OTA升级
ESP32+移远EC600N模组通过MQTT连接阿里云并通过HTTP进行OTA升级。以下是我这段时间进行的工作,分享下自己的研究成果,也让后面的小伙伴少踩一些坑。同时通过文章记录下操作步骤,免得自己过段时间忘记。以下是ESP32和EC600N模组之间通过串口进行数据交互的详细调试信息输出内容。...
继续访问
热门推荐 EC600N(一)--基本信息介绍
EC600N使用说明 EC600N(一)–基本信息介绍 目录EC600N使用说明前言一、模块组的基本介绍1.模组的基本选型信息2. EC600N核心板基本信息二、EC600N功能介绍1.基本功能介绍2.引脚功能三.补充 前言 EC600N是一款移远推出的4G模块。移远和中传移动是主要的4G模块和NB-lot模块的供应商。由于移远的模块使用相对比较广泛,所以用它试试。 相关资源链接: 官网,这个网站找资料比较费劲。 quetcelpython下载中心,移远的多数模块支持python的二次开发。 quetcel
继续访问
移远QuecPython(基于EC600s)开发物联网应用(七) QuecPython通讯相关模块
一. sim --SIM卡模块 import sim 1. 获取sim卡的imsi sim.getImsi() 参数 无 返回值 成功返回string类型的imsi,失败返回整型-1。 2. 获取sim卡的iccid sim.getIccid() 参数 无 返回值 成功返回string类型的iccid,失败返回整型-1。 3. 获取sim卡的电话号 sim.getPhoneNumber()...
继续访问
【C语言】一个好用的循环队列与使用示例(以EC200/600为例的AT框架)
目录1.前言2.结论3.循环队列3.1写队列到队列头3.2从尾部读读队列3.3获取当前队列内数据数量3.4清空队列3.5两个重要结构体4.效果与示例4.1三个读队列线程4.2 AT框架写队列与EC200初始化4.3 AT框架读队列4.4 EC200维持TCP长连接5.下载5.1 循环队列5.2 AT框架+EC200的TCP长连接(与EC600通用) 1.前言 上一篇:https://blog.csdn.net/ylc0919/article/details/111050124 自从之前说要发二代框架,不知不
继续访问
阿里云在线温湿度-小熊派qpython(综合展示)
需要用到的东西: 小熊派的ec100y开发板; i2c的温湿度传感器(我这里用的sht31,其他的也可以,自行修改代码); 阿里云账号; 接线:用到3.3v,GND,i2c的SCL和SDA 阿里云显示展示: app展示: 代码: # 包引用部分 import log from aLiYun import aLiYun import ujson import utime from machine import I2C import pm # 用户变量区域 # 上传间隔(单..
继续访问
EC600N-AT 软件包笔记
INIT_DEVICE_EXPORT(ec200x_device_class_register); 开辟struct at_device_class结构体 进入at_device_class_register 怎么跳转到的static int ec200x_init(struct at_device *device) at_device_class_registe执行完后到 INIT_APP_EXPORT(ec200x_device_register); static int ec200x_device_r
继续访问
open方案、openCPU-EC600、L610设计应用总结
OPEN CPU模组设计应用总结 咸鱼NO FASHION 根据实际项目需求选择最优的设计方案,是一名合格硬件工程师的基本功。 背景与优缺点说明: 对于物联网项目,大多数公司或者产品需更为便宜方案,因此在物联网项目中open CPU方案迎来黄金发展期。物联网项目本身就需要无线通信模组,通信模组开放一定IO口和通信接口,优点可以解决目前广大用户主控MCU短缺的痛点,降低开发成本;缺点IO口和通信接口使用相对于主控MCU不够灵活,接口相对较少。 软件方面: 支持open C和open Python(
继续访问
Quectel EC800N-CN 小尺寸物联网首选LTE Cat 1模块[移远通信]
EC800N-CN是移远通信专为M2M和IoT领域而设计的LTE Cat 1无线通信模块,支持最大下行速率10 Mbps和最大上行速率5 Mbps,超小封装,超高性价比。 EC800N-CN采用镭雕工艺,镭雕工艺具有外观更好看、金属质感强、散热更好、信息不容易被抹除、更能适应自动化需求等优点。 EC800N-CN内置丰富的网络协议,集成多个工业标准接口,并支持多种驱动和软件功能(如Windows7/8/8.1/10、linux、Android等操作系统下的USB虚拟串口驱动);极大地拓展了其在M
继续访问
EC600S串口通信
EC600S有两个串口通信口,TX0/RX0;TX2/RX2,分别对应程序中的UART0 - DEBUG PORT和UART2 – MAIN PORT。运行本例程, 需要通过串口线连接开发板的 MAIN 口和PC,在PC上通过串口工具打开 MAIN 口,并向该端口发送数据,即可看到 PC 发送过来的消息。 (可通过串口转usb口,把TX2/RX2分别与转usb口的RX/TX连接到电脑上即可) """ 运行本例程,需要通过串口线连接开发板的 MAIN 口和PC,在PC上通过串口工具 打开 MAIN 口,并向
继续访问
移远EC20/600系列TCP发送可变长度数据的结束标志!
移远EC20/600系列TCP发送可变长度数据的结束标志!
继续访问
移远ec200/600的使用
移远ec200、ec600的使用: linux2.6.22 pppd-2.4.4 ec600s 参考的是ec200s的拨号相关文档: 1:/driver/usb/serial/option.c更改了4个位置,并没 有严格按照ec200s的指导文档来(2.6.30以上、3.0以上内核还会涉及wwan、qcserial相关文件,看相关文档) 2:内核config USB_SERIAL=y USB_USBNET=y USB_NET_CDCETHER=y (还没搞清楚...
继续访问
EC600U
ec600u,tcp client 断线重连
继续访问
最新发布 STM32+USART+DMA+EC600N调试
在stm32Cube中,打开DMA发送中断和接收中断,打开usart全局中断。主要调试功能:(1)使用DMA发送固定长度数据给串口,(2)使用DMA接收不定长度帧数据。(1)利用DMA传输,发送固定大小数据 换成 包装代码如下: (2)利用DMA传输,接收大小可变的数据利用串口空闲中断,识别一帧的数据,参考链接: 注意:空闲中断结束后,记得重新开启DMA接收。指令解析 AT执行逻辑 每个AT指令执行成功,则继续下一条,如果本条AT指令执行失败,则重复执行,最多执行10次,如果10全部失败,则本轮结束
继续访问
‘贰’ 如何在pcDuino上面使用python-serial
HomepcDuino如何在pcDuino上面使用python-serial
Previous Next
如何在pcDuino上面使用python-serial
1
Posted by: wang, lei , 六月 19, 2015
相信有些朋友在pcino上面使用python的时候会发现串口(GPIO0和GPIO1)发不出数据也接收不到数据,在ArinoIDE里面使用却可以正常通讯;然后返回到python下面,python-serial下面的通讯也正常,这是因为在python下面没有设置gpio0和gpio1模式为UART模式,那么我们在python代码里面将模式设置为UART,对pcino GPIO模式的设置,可以对下面文件夹里面对应的端口写模式,通用写‘0’为输入模式,写‘1’为输出模式,这里我们在GPIO里面写‘3’可以配置为UART:
/sys/devices/virtual/misc/gpio/mode/
安装python-serial:
sudo apt-get instal python-serial
测试代码:
import serial
with open("/sys/devices/virtual/misc/gpio/mode/gpio0",'w') as UART_RX:
UART_RX.write('3')
with open("/sys/devices/virtual/misc/gpio/mode/gpio1",'w') as UART_TX:
UART_TX.write('3')
myport = serial.Serial("/dev/ttyS1",9600,timeout=10)
myport.open()
myport.write('python serial test on pcino\n')
data = myport.readline()
if len(data)>0:
print(data)
myport.close()
保存上面的测试代码为“serial_test.py”文件,然后运行:sudo python ./serial_test.py (需要外接一个USB转串口的模块和pcino串口通讯,如果没有,也可以直接用跳线将RXD和TXD短接起来,终端会打印出发送的数据“python serial test on pcino”):
1
使用pc端的串口调试工具发送数据到pcino上:
2
‘叁’ 学习Linux的步骤是怎样的
对于Linux的学习,可以分为四个阶段,Linux初级入门阶段→Linux中级进阶→Linux高级进阶→Linux资深方向细化阶段
第一阶段:初级阶段
初级阶段需要把linux学习路线搞清楚,任何学习都是循序渐进的,所以学linux也是需要有一定的路线。
1. Linux基础知识、基本命令;
2. Linux用户及权限基础;
3. Linux系统进程管理进阶;
4. linux高效文本、文件处理命令;
5. shell脚本入门
第二阶段:中级进阶
中级进阶需要在充分了解linux原理和基础知识之后,对上层的应用和服务进行深入学习,其中说到服务肯定涉及到网络的相关知识,是需要花时间学习的。
1. TCP/IP网络基础;
2. Linux企业常用服务;
3. Linux企业级安全原理和防范技巧;
4. 加密/解密原理及数据安全、系统服务访问控制及服务安全基础;
5. iptables安全策略构建;
6. shell脚本进阶;
7. MySQL应用原理及管理入门
第三阶段:Linux高级进阶
1. http服务代理缓存加速;
2. 企业级负载集群;
3. 企业级高可用集群;
4. 运维监控zabbix详解;
5. 运维自动化学习;
第四阶段:Linux资深方向细化
1. 大数据方向;
2. 云计算方向;
3. 运维开发;
4. 自动化运维;
5. 运维架构师
以上是Linux的一个学习方向和路线,对于Linux学习是一个需要坚持的过程,也许通过自学或者培训,3至6个月都可以把基本知识学会,但是重在实践,深入的思考和不断的摸索,你会发现Linux更多的美!
‘肆’ Python语言中uart.any()是什么意思
应该是any(uart)吧?如果是的话,那么uart应该是列表、元组、集合、字典中的一个,如果列表、元组、集合里面有一个值不为0、空字符串、False,就返回True,比如说any([0, 0, False, ''])就会返回False,因为全部都是假;如果是any([1, 0, 0])就会返回True,因为有一个是真。字典的话就相当于把里面的键提取出来,再来像上面一样进行判断。