diff --git a/docs/Advanced_development/zh/QuecPythonBus/WDT.md b/docs/Advanced_development/zh/QuecPythonBus/WDT.md new file mode 100644 index 0000000000000000000000000000000000000000..af2ac4485760f6ba0096917ab67a2f2ad6055f59 --- /dev/null +++ b/docs/Advanced_development/zh/QuecPythonBus/WDT.md @@ -0,0 +1,94 @@ +## 修订历史 + +| 版本 | 日期 | 作者 | 变更表述 | +| ---- | ---------- | ------ | ------------ | +| 1.0 | 2021-09-15 | Kayden | 初始版本修订 | + + + +# Watchdog开发使用说明 + +文档主要基于EC600S介绍如何使用QuecPython_Watchdog(**适用于其他模组**),Watchdog通常用于防止设备死机不再运作的情况,加入了Watchdog后,在意外死机后系统将会自动重启,从而使设备继续工作,Watchdog以下简称WDT。通过本文你将了解到WDT的所有设置参数及使用方法。 + +## 硬件描述 + +WDT模块功能:APP应用程序发生异常不执行时进行系统重启操作,该功能系统完全内置,不需要接任何外围电路。 + +## 软件设计 + +看门狗API详细介绍参见链接:[看门狗API](https://python.quectel.com/wiki/#/zh-cn/api/QuecPythonClasslib?id=wdt) + +1. 函数原型 WDT(period),返回一个wdt 对象,用于设置WDT的喂狗、开启、关闭功能。 + +创建WDT对象并立即启动: + +> wdt = WDT(period) + +| 参数 | 类型 | 说明 | +|--------|------|----------------------------| +| period | int | 设置软狗检测时间,单位(s) | + +1. 函数原型feed(),无返回值。 + +喂狗: + +> wdt.feed() + +1. 函数原型**stop**(),无返回值。 + +关闭软狗功能: + +> wdt.stop() + +## 交互操作 + +1. 使用QPYcom工具和模组进行交互,示例如下: + +
+![](media/watchdog_1.png) + +
+ +注意: + +1. from machine import WDT即为让WDT模块在当前空间可见。 + +2. 只有from machine import WDT模块,才能使用WDT内的函数和变量。 + +说明:没有喂狗动作,可见两秒后,系统自动复位。 + +## 下载验证 + +下载.py文件到模组运行,代码如下: + + 下载代码 + +```python +from machine import WDT +from machine import Timer + +count = 0 +def feed(t): + global count + count += 1 + if count >= 5: + print('停止喂狗') + timer1.stop() + print('喂狗') + wdt.feed() + + +timer1 = Timer(Timer.Timer1) +wdt = WDT(2) # 启动看门狗,间隔时长 单位 秒 +timer1.start(period=1000, mode=timer1.PERIODIC, callback=feed) # 使用定时器喂狗 + +``` + + + +## 专业名词解释 + +> **看门狗**:定时计数[增加](https://baike.baidu.com/item/%E5%A2%9E%E5%8A%A0/9062530)到[设定值](https://baike.baidu.com/item/%E8%AE%BE%E5%AE%9A%E5%80%BC/7386889)就认为程序没有正常工作,[强制](https://baike.baidu.com/item/%E5%BC%BA%E5%88%B6/16011573)整个系统复位 + +> **喂狗**:复位计数值 + diff --git a/docs/Advanced_development/zh/QuecPythonBus/code/Watchdog.py b/docs/Advanced_development/zh/QuecPythonBus/code/Watchdog.py new file mode 100644 index 0000000000000000000000000000000000000000..42d5cef0ce2cc9c3cd074fc5ed33e513d576f86d --- /dev/null +++ b/docs/Advanced_development/zh/QuecPythonBus/code/Watchdog.py @@ -0,0 +1,17 @@ +from machine import WDT +from machine import Timer + +count = 0 +def feed(t): + global count + count += 1 + if count >= 5: + print('停止喂狗') + timer1.stop() + print('喂狗') + wdt.feed() + + +timer1 = Timer(Timer.Timer1) +wdt = WDT(2) # 启动看门狗,间隔时长 单位 秒 +timer1.start(period=1000, mode=timer1.PERIODIC, callback=feed) # 使用定时器喂狗 diff --git a/docs/Advanced_development/zh/QuecPythonBus/media/watchdog_1.png b/docs/Advanced_development/zh/QuecPythonBus/media/watchdog_1.png new file mode 100644 index 0000000000000000000000000000000000000000..95bfbbba7ba88614c10c27352dfb0669889d3586 Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonBus/media/watchdog_1.png differ diff --git a/docs/Advanced_development/zh/QuecPythonSub/Photoresistor.md b/docs/Advanced_development/zh/QuecPythonSub/Photoresistor.md new file mode 100644 index 0000000000000000000000000000000000000000..628716bb989ff7a90c8d7b1a28721f45788788bc --- /dev/null +++ b/docs/Advanced_development/zh/QuecPythonSub/Photoresistor.md @@ -0,0 +1,213 @@ +## 修订历史 + +| 版本 | 日期 | 作者 | 变更表述 | +| ---- | ---------- | ------ | ------------ | +| 1.0 | 2021-09-15 | Kayden | 初始版本修订 | + + + +## 光敏传感器实验 + +本片文章主要简介EC600S ADC 硬件资源(其他模组类同), 介绍[QuecPython ADC API](https://python.quectel.com/wiki/#/zh-cn/api/QuecPythonClasslib?id=adc),以及使用ADC来检测当前光敏电阻的阻值。 + +### 硬件资源 + +EC600S 引出了两个ADC接口。参考 EC600S_QuecPython_EVB_V1.0_SCH.pdf 文档。 + +其他开发板参考对应原理图文档,可从下载中心或者QQ群下载:[下载中心](https://python.quectel.com/download) + +QQ群:445121768 + +![](media/photoresistor_1.png) + +| 外设 | 引脚 | +| ---- | ---- | +| ADC0 | 19 | +| ADC1 | 20 | + +**注:每个模组具体对应关系API介绍有详细介绍。** + +并且提供了一个光敏电阻。 + +![](media/photoresistor_2.png) + +### 软件资源 + +#### 创建ADC对象 + +**ADC()** + +返回一个adc对象。 + +#### 打开设备 – open + +ADC功能初始化。 + +参数 + +无 + +返回值 + +成功返回整型0,失败返回整型-1。 + +#### 读取电压值 – read + +读取指定通道的电压值,单位mV。 + +参数 + +| 参数 | 参数类型 | 参数说明 | +| ---- | -------- | ------------------------------------------- | +| ADCn | int | EC600平台: ADC0 – 引脚号19 ADC1 – 引脚号20 | + +#### 关闭设备 – close + +关闭ADC。 + +参数:无 + +返回值: + +0关闭成功,-1关闭失败。 + +### 光敏电阻实验 + +#### 光敏电阻原理简介 + +定义: + +光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器,表面还涂有防潮树脂,具有光电导效应。 + +特性: + +光敏电阻对光线十分敏感。光照愈强,阻值就愈低。随着光照强度的升高,电阻值迅速降低,可降低至1KΩ以下。包含了以下几个特性。 + +- 伏安特性: + + 光敏传感器在一定的入射照度下,光敏元件的电流 *I* 与所加电压 *U*之间的关系称为光敏器件的伏安特性。 + +- 光照特性 + + 光敏传感器的光谱灵敏度与入射光强之间的关系称为光照特性,有时光敏传感器的输出电压或电流与入射光强之间的关系也称为光照特性。 + +#### 实验设计 + +设计一个实验,根据当前光照强度,实时打印当前的光敏电阻的阻值。下图是光敏电阻的原理图。 + +![](media/photoresistor_3.png) + +ADC0 是我们可以使用ADC外设测试的电压点。 + +![](media/photoresistor_4.png) + +最终可以计算出,按照如下算式计算R22阻值。 + +![](media/photoresistor_5.png) + +#### 实验代码 + + 下载代码 + +```python +''' + +File: Photoresistor.py + +Project: adc + +File Created: Thursday, 24th December 2020 5:44:08 pm + +Author: chengzhu.zhou + +----- + +Last Modified: Wednesday, 30th December 2020 10:10:33 am + +Modified By: chengzhu.zhou + +----- + +Copyright 2020 - 2020 quectel + +''' + +from misc import ADC + +import utime as time + +import _thread + + + +# unit as Ω + +def Voltage_to_Resistance(Volt): + + # + + Va = 2 * Volt + + resistance = (2 * 4700 * 40200 * Va)/(2 * 4700 * (3300 - Va) - (40200 *Va)) + + return resistance + + + +def Photoresistor_thread(delay, retryCount): + + # creat a adc device + + AdcDevice = ADC() + + while retryCount: + + retryCount = retryCount - 1 + + # get ADC.ADC0 value + + adcvalue = AdcDevice.read(ADC.ADC0) + + print("get ADC.ADC0 Voltage value as {0}mv".format(adcvalue)) + + # Converted to resistance + + resistance = Voltage_to_Resistance(adcvalue) + + print("Photoresistor resistance as {0}Ω".format(resistance)) + + time.sleep(delay) + + pass + + + +if __name__ == "__main__": + + # creat a thread Convert ADC to Voltage + + _thread.start_new_thread(Photoresistor_thread, (1, 10)) + + print("creent main thread has exit") +``` + + + +#### 实验操作 + +1.将代码烧录进开发板运行。 + +2.用物品挡住光敏电阻,改变照射到光敏电阻的光强, + +3.查看串口输出的阻值的变化。 + +最终我们可以在串口看到,阻值输出的变化如下。 + +![](media/photoresistor_6.png) + + + +### 专业名词 + +> ***ADC:模数转换*** + diff --git a/docs/Advanced_development/zh/QuecPythonSub/code/Photoresistor.py b/docs/Advanced_development/zh/QuecPythonSub/code/Photoresistor.py new file mode 100644 index 0000000000000000000000000000000000000000..171b64f561878b3bec1e24cd05783b12fadbbcfc --- /dev/null +++ b/docs/Advanced_development/zh/QuecPythonSub/code/Photoresistor.py @@ -0,0 +1,46 @@ +''' +File: Photoresistor.py +Project: adc +File Created: Thursday, 24th December 2020 5:44:08 pm +Author: chengzhu.zhou +----- +Last Modified: Wednesday, 30th December 2020 10:10:33 am +Modified By: chengzhu.zhou +----- +Copyright 2020 - 2020 quectel +''' + + +from misc import ADC +import utime as time +import _thread + +# unit as Ω +def Voltage_to_Resistance(Volt): + # + Va = 2 * Volt + resistance = (2 * 4700 * 40200 * Va)/(2 * 4700 * (3300 - Va) - (40200 * Va)) + return resistance + + +def Photoresistor_thread(delay, retryCount): + # creat a adc device + AdcDevice = ADC() + while retryCount: + retryCount = retryCount - 1 + # get ADC.ADC0 value + adcvalue = AdcDevice.read(ADC.ADC0) + print("get ADC.ADC0 Voltage value as {0}mv".format(adcvalue)) + # Converted to resistance + resistance = Voltage_to_Resistance(adcvalue) + print("Photoresistor resistance as {0}Ω".format(resistance)) + time.sleep(delay) + pass + + +if __name__ == "__main__": + # creat a thread Convert ADC to Voltage + _thread.start_new_thread(Photoresistor_thread, (1, 10)) + print("creent main thread has exit") + + diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_1.png b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_1.png new file mode 100644 index 0000000000000000000000000000000000000000..65636edf0a30432d20f7c0490115dc72a0bfc756 Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_1.png differ diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_2.png b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d91411af15c2b32ceaff4136c285a035109065 Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_2.png differ diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_3.png b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_3.png new file mode 100644 index 0000000000000000000000000000000000000000..cb47d1bb9d5cb19935e88f503ad0a039d6467022 Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_3.png differ diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_4.png b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e51011501fa429bcde5ed12c8c328849a3c92b1 Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_4.png differ diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_5.png b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_5.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c449641fefac9b1bbbae0e7de00ea67dfeba25 Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_5.png differ diff --git a/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_6.png b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_6.png new file mode 100644 index 0000000000000000000000000000000000000000..e1dba48bf52138d10014cf41be378f24fb5339cd Binary files /dev/null and b/docs/Advanced_development/zh/QuecPythonSub/media/photoresistor_6.png differ diff --git a/docs/Quick_start/zh/README.md b/docs/Quick_start/zh/README.md index 6dca56a04af55b522d15c174eeed5c390b7e7184..368baed73e5177346193b438def2cab558251755 100755 --- a/docs/Quick_start/zh/README.md +++ b/docs/Quick_start/zh/README.md @@ -31,7 +31,7 @@ 拿到板子不知道怎么开始,看到这篇文章就对了。 -本部分内容详细操作可以结合EC600X开发板介绍进行学习,链接:[https://python.quectel.com/doc/doc/Quecpython_intro/zh/Qp_Hw_EC600X/Hardware_Support_EC600X.html](https://python.quectel.com/doc/doc/Quecpython_intro/zh/Qp_Hw_EC600X/Hardware_Support_EC600X.html ) +本部分内容详细操作可以结合EC600X开发板介绍进行学习,链接:[EC600X开发板介绍](https://python.quectel.com/doc/doc/Quecpython_intro/zh/Qp_Hw_EC600X/Hardware_Support_EC600X.html ) 本文以EC600S_QuecPython_EVB_V1.1为例,V1.2、V1.3类同,具体差异可查看上文EC600X开发板介绍链接。 @@ -276,4 +276,5 @@ demo下载地址:https://python.quectel.com/download ![](media/C66.png) -官网提供的demo非常丰富和完善,帮助客户快速开发产品。 \ No newline at end of file +官网提供的demo非常丰富和完善,帮助客户快速开发产品。 + diff --git a/docs/Quick_start/zh/code/test_a.py b/docs/Quick_start/zh/code/test_a.py new file mode 100644 index 0000000000000000000000000000000000000000..6ea4cdf191d05180a6c510da1d8d6cd881e32dcc --- /dev/null +++ b/docs/Quick_start/zh/code/test_a.py @@ -0,0 +1,16 @@ +import uio + +# 以追加方式打开 test_a.txt 文件 +fd = uio.open("usr/test_a.txt", mode='a') +# 向文件追加写内容 +fd.write("Hello Quectel") +# 关闭文件 +fd.close() + +# 以只读方式打开看追加的结果 +fd = uio.open("usr/test_a.txt", mode='r') +# 读取文件内容 +text = fd.read() +print(text) +# 关闭文件 +fd.close() diff --git a/docs/Quick_start/zh/code/test_a.txt b/docs/Quick_start/zh/code/test_a.txt new file mode 100644 index 0000000000000000000000000000000000000000..0a3cfff13f034a58c591a7638bd587f5234c8aa1 --- /dev/null +++ b/docs/Quick_start/zh/code/test_a.txt @@ -0,0 +1 @@ +hello python \ No newline at end of file diff --git a/docs/Quick_start/zh/code/test_r.py b/docs/Quick_start/zh/code/test_r.py new file mode 100644 index 0000000000000000000000000000000000000000..9cfb58e911c53587c208992917cf099d2c958cdd --- /dev/null +++ b/docs/Quick_start/zh/code/test_r.py @@ -0,0 +1,9 @@ +import uio + +# 以只读方式打开 test_r.txt 文件 +fd = uio.open("usr/test_r.txt", mode='r') +# 读取文件内容 +text = fd.read() +print(text) +# 关闭文件 +fd.close() diff --git a/docs/Quick_start/zh/code/test_r.txt b/docs/Quick_start/zh/code/test_r.txt new file mode 100644 index 0000000000000000000000000000000000000000..7d266c2323b952a0dd484e8cad9d773eb1e635a1 --- /dev/null +++ b/docs/Quick_start/zh/code/test_r.txt @@ -0,0 +1 @@ +Hello Python \ No newline at end of file diff --git a/docs/Quick_start/zh/code/test_w.py b/docs/Quick_start/zh/code/test_w.py new file mode 100644 index 0000000000000000000000000000000000000000..78177b27024892152fc918e4190bdce095496a0a --- /dev/null +++ b/docs/Quick_start/zh/code/test_w.py @@ -0,0 +1,8 @@ +import uio + +# 以只写方式打开 test_w.txt 文件 +fd = uio.open("usr/test_w.txt", mode='w') +# 向文件写内容 +fd.write("HELLO PYTHON") +# 关闭文件 +fd.close() diff --git a/docs/Quick_start/zh/code/test_w.txt b/docs/Quick_start/zh/code/test_w.txt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/docs/Quick_start/zh/code/test_w_r.py b/docs/Quick_start/zh/code/test_w_r.py new file mode 100644 index 0000000000000000000000000000000000000000..82e8ba7cef0ed9ddd720a26e80972b1a4404c7ff --- /dev/null +++ b/docs/Quick_start/zh/code/test_w_r.py @@ -0,0 +1,9 @@ +import uio + +# 以只读方式打开 test_w.txt 文件 +fd = uio.open("usr/test_w.txt", mode='r') +# 读取文件内容 +text = fd.read() +print(text) +# 关闭文件 +fd.close() diff --git a/docs/Quick_start/zh/timer.md b/docs/Quick_start/zh/timer.md index a20539f720e1901cf8757062314c911a027e7874..08ce5d31422a5b371d98fd3bdfec6b1ee7eecf0a 100644 --- a/docs/Quick_start/zh/timer.md +++ b/docs/Quick_start/zh/timer.md @@ -62,7 +62,7 @@ timer.stop():关闭对应的定时器,无参数。
![](media/Timer_1.png) - +
注意: @@ -112,9 +112,8 @@ while state: 1. 打开QPYcom运行timer\_file.py,如下图: -
-![](media/Timer_2.png) -
+ ![](media/Timer_2.png) + 2. 在QPYcom交互界面查看输出结果如下: diff --git a/docs/sbs/zh/BSP/ADC.md b/docs/sbs/zh/BSP/ADC.md index 573350acac2a01c2a53c60725d2fabe26d9d0a3f..05046751bf79f407c6a5c2b95ece46419ae46d6c 100644 --- a/docs/sbs/zh/BSP/ADC.md +++ b/docs/sbs/zh/BSP/ADC.md @@ -22,7 +22,7 @@ ADC硬件原理图请查看模组硬件设计手册和开发板原理图[官网 资料如有缺失可在QQ群搜索群文件获取:445121768 -![](media/7acc910ebd7bf4eb806399676e468795.png) +![](media/ADC_0.png) 对应关系如下表: diff --git a/docs/sbs/zh/QuecPythonWirelessNetwork/DataCall.md b/docs/sbs/zh/QuecPythonWirelessNetwork/DataCall.md index 297b4ef9a9c692157377644c46903009e3008e80..4a439d017f1b3539c12cc3ece8a7e1c604ad6848 100644 --- a/docs/sbs/zh/QuecPythonWirelessNetwork/DataCall.md +++ b/docs/sbs/zh/QuecPythonWirelessNetwork/DataCall.md @@ -4,27 +4,16 @@ | ---- | ---------- | ------ | ------------ | | 1.0 | 2021-09-13 | Kayden | 初始版本修订 | - +
# QuecPython_dataCall数据拨号 -本片文章主要简介QuecPython_datacall 模块的使用,模块默认开机自动拨号上网。 - **模块功能:** 提供数据拨号相关接口。启动;配置;查询终端通过何种接入方式来访问何种网络。 -**对应API:** - -- dataCall.start(profileIdx, ipType, apn, username, password, authType) -- dataCall.setApn(profileIdx, ipType, apn, username, password, authType) -- dataCall.setCallback(usrFun) -- dataCall.getInfo(profileIdx, ipType) - 具体的API 详解请参考[Quecpython - dataCall - 数据拨号](https://python.quectel.com/wiki/#/zh-cn/api/QuecPythonClasslib?id=datacall-数据拨号) - - ## 数据拨号简介 简单理解, 数据拨号即为通过拨号的方式和服务器建立连接,获取网络访问许可过程。 对于终端设备来说就是配置APN。