diff --git "a/docs/Getting_started/zh/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC.md" "b/docs/Getting_started/zh/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC.md" new file mode 100644 index 0000000000000000000000000000000000000000..ecc8f74d8508df16865c78699c023334376ca218 --- /dev/null +++ "b/docs/Getting_started/zh/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC.md" @@ -0,0 +1,143 @@ +# ADC - 电压采集功能 + +本文主要介绍什么是ADC、怎么使用ADC、ADC可以做什么等相关问题。 + +## 什么是ADC + +ADC(Analog to Digital Converter)即模拟数字转换器即[A/D转换器](https://baike.baidu.com/item/A%2FD转换器/4883848?fromModule=lemma_inlink),对于嵌入式应用开发来说,可以简单理解为:在单片机或我们的模组上有一个引脚可以读取电路中的电压值。一般软件开发人员主要关注如何读出ADC引脚的电压值,并将电压值做一些运算从而间接得出外部传感器当前所测量的环境值,如温度值、亮度值等。 + +## 怎么使用ADC + +### 硬件设计 + +对于嵌入式产品开发来说,可靠的硬件电路是软件开发的前提条件。 + +ADC相关电路设计需要参考每个型号模组的硬件设计手册和参考设计手册,可以在主页的[下载区](/download/)检索下载,但具体功能引脚仍需以QuecPython的[ADC功能API](../../../API_reference/zh/QuecPython类库/misc.ADC.html)介绍的引脚号为准。关于ADC功能常见的应用电路也可以通过搜素引擎了解更多信息。简单应用电路也可参考QuecPython的学习开发板,开发板可以通过天猫旗舰店、京东旗舰店等移远通信官方销售渠道获取,开发板的硬件设计同样是参考的上述硬件文档,开发板的原理图也可以在主页的[下载区](/download/)检索下载。 + +### 软件应用 + +使用QuecPython开发的模组,想要读取ADC引脚的电压需要先完成QuecPython开发环境的搭建,再参考[ADC功能的API介绍文档](../../../API_reference/zh/QuecPython类库/misc.ADC.html)进行如下命令行测试即可打印出ADC通道0引脚当前的电压值,单位为毫安(mA)。 + +```python +>>>from misc import ADC +>>>adc = ADC() +>>>adc.open() +>>>voltage = adc.read(ADC.ADC0) +>>>print("ADC channel 0 voltage = {}mA".format(voltage)) +``` + +### ADC功能测试 + +使用QPYcom工具和模组进行交互,下面实例是基于ADC0。 + + + +# ADC功能应用实例 + +## 亮度传感器应用 + +亮度传感器是一种能够检测周围环境亮度的传感器。在 QuecPython 平台上,您可以使用光敏电阻或光敏二极管作为亮度传感器,并使用相应的代码来读取其值。在本文档中,我们将讨论如何在 QuecPython 平台上使用光敏电阻作为亮度传感器。 + +## 所需材料 + +- QuecPython 模块(选择支持 ADC 的模块即可,参见[ADC](../../../API_reference/zh/QuecPython类库/misc.ADC.html)) +- 光敏电阻 +- 高精度电阻(具体以硬件设计手册为准) +- 充足的导线(杜邦线即可) +- 如有自带光敏电阻的 QuecPython 开发板上述材料均包含 + +## 电路连接 + +以 QuecPython 开发板为例,以下是 EC600X_QuecPython_EVB_V3.1 版本开发板光敏电阻电路连接图: + +
+ +如上两图所示,左边图中的 R22 即为光敏电阻,型号为 GT36528,右图为连接到 QuecPython 模块 ADC 引脚的电路,模块型号为 EC600U。 + +上图电路可等效为下图所示电路: + + + +## 原理分析 + +想要得到当前光照度,首先我们需要知道光敏电阻在当前光照条件下的电阻值,再根据电阻值与光照度之间的关系计算得出光照度,电阻值我们不能直接通过 API 接口读出,但我们可以使用 ADC 的 API 读出电路中光敏电阻的电压值,再通过欧姆定律我们就可以计算得出光敏电阻的阻值,又由于 ADC 的测量电压范围有限,所以我们设计了电子电路进行分压,将电路中某一点的电压限制在 ADC 的测量范围内,再测量电路中这一点的电压,间接换算出光敏电阻的阻值,具体分析和计算原理如下。 + +如上图所示等效电路, R3 和 R4 为串联关系,R22 与 R3、R4 组合的整体为并联关系,R14 与 R22、R3、R4 组成的整体为串联关系,根据欧姆定律及并联分流的特点我们可以得出,A 点的电流为通过 R22 支路的电流和通过 R3、R4 支路的电流之和,则可以列出如下表达式。 + +$$ +\frac{V_{3.3}-V_A}{R_{14}}=\frac{V_A}{R_{22}}+\frac{V_A}{R_{3}+R_{4}} +$$ + +再经过换算我们可以得出光敏电阻 R22 的数学表达式如下: + +$$ +R_{22}=\frac{(R_3+R_4)R_{14}V_{A}}{(R_3+R_4)(V_{3.3}-V_A)-(R_{14}V_A)} +$$ + +到这里,也许有些人会有疑问,R81 为什么没有被计算到?因为 R81 接到的是 ADC 引脚,我们可以认为只是接到了一个电压表上,所以并不会分压,无需加入计算中。即 ADC0 测得的电压即为 B 点的电压,那么 B 点电压对于我们来说是可以通过 API 变为已知的。但是在上述表达式中又并未用到 B 点电压,是怎么回事呢? + +从上述表达式中我们可以看出,表达式右侧的所有变量只有 A 点电压是未知量,左侧是待求量,一个表达式中有两个未知量是求不出结果的,所以我们需要将未知量 A 点电压变为已知量,此时就用到了已知量 B 点电压。我们再根据欧姆定律和串并联电路的知识可以知道,R22 所在支路的电压和 R3、R4 所在支路的电压是相同的,并且是 A 点电压。又由于整个支路是串联的,则支路上每一点电流是相同的,我们根据欧姆定律可以得出如下表达式: + +$$ +\frac{V_A}{R_3+R_4}=\frac{V_B}{R_4} +$$ + +由上述表达式我们可以换算得出 A 点电压和 B 点电压的关系: + +$$ +V_A=\frac{R_3+R_4}{R4}V_B +$$ + +将上述表达式整理再统一单位后代入真实数值我们可以得到表达式: + +$$ +V_A=5.02V_B +$$ + +再将这一结果和真实数值代入 R22 的表达式可以得到如下表达式: + +
+ + +$$ +\begin{aligned} +R_{22}&=\frac{(R_3+R_4)R_{14}V_{A}}{(R_3+R_4)(V_{3.3}-V_A)-(R_{14}V_A)}\\ +&=\frac{((40.2+10)*1000)*40.2*1000*5.02*V_B}{((40.2+10)*1000)*(3.3-5.02*V_B)-(40.2*1000*5.02*V_B)}\\ +&=\frac{10130560800*V_B}{165660-453808*V_B} +\end{aligned} +$$ + + + +## 代码实现 + +在写代码之前我们需要了解到光敏电阻阻值和光照亮度之间的数学关系,一般需要通过实验测试得到,此示例仅展示我们如何获取光敏电阻的阻值,单位为欧姆,在代码中计算时一定记得统一为国际单位制再进行计算。 + +```python +from misc import ADC +import utime + +class lightSensor(): + def __init__(self, ADC_channel): + self.adc = ADC() + self.adc_channel = ADC_channel + self.adc.open() + + def readResistanceValue(self): + Vb = self.adc.read(self.adc_channel)/1000 + R22 = (10130560800*Vb) / (165660-(453808*Vb)) + return R22 + +if __name__ == "__main__": + + gt36528 = lightSensor(ADC.ADC0) + + while True: + resistanceValue = gt36528.readResistanceValue() + print("resistance value = {} Ohm".format(resistanceValue)) + utime.sleep(1) +``` + +# 总结 + +ADC功能的一般常见用法在此做了详细的介绍,如有疑问或更好的建议欢迎联系我们,也可以直接向我们提交文档贡献,后续本文将继续完善和补充更多应用案例。 \ No newline at end of file diff --git "a/docs/Getting_started/zh/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/PWM.md" "b/docs/Getting_started/zh/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/PWM.md" new file mode 100644 index 0000000000000000000000000000000000000000..49a3106f2c483544b10d28f402d6896f5a66b9b2 --- /dev/null +++ "b/docs/Getting_started/zh/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/PWM.md" @@ -0,0 +1,112 @@ +# PWM - 脉宽调制 + +## 什么是PWM + +[PWM](https://baike.baidu.com/item/脉冲宽度调制/10813756?fromtitle=PWM&fromid=3034961&fr=aladdin)代表脉冲宽度调制(Pulse Width Modulation),是一种常见的电子信号调制技术。它通过改变信号的脉冲宽度来控制电路或设备的输出功率或速度。PWM信号是一个周期性的信号,包含一个固定频率的基准信号和一个可变的占空比信号。占空比指的是脉冲宽度与周期之间的比率,它控制着信号的平均电平,从而控制电路或设备的输出功率或速度。 + +PWM技术在电子工程、控制系统和机械工程等领域得到广泛应用。例如,在电机控制中,PWM信号可以用来控制电机的转速和转向。在电源管理中,PWM信号可以用来调节直流-直流转换器的输出电压和电流。在LED灯控制中,PWM信号可以用来控制LED的亮度和颜色。 + +需要注意的是,在使用PWM技术时,需要选择适当的频率和占空比,以满足具体应用的需求。同时,还需要考虑PWM信号的稳定性和噪声等因素,以确保电路或设备的正常运行和可靠性。 + +## 怎么使用PWM + +使用PWM技术需要通过特定的电路或芯片来生成PWM信号,支持QuecPython开发的模组大部分都具有此功能,具体可见[PWM功能API文档](../../../API_reference/zh/QuecPython类库/misc.PWM.html)确认是否支持此功能,可以按照以下步骤进行: + +### 硬件设计 + +根据上述[PWM功能API文档](../../../API_reference/zh/QuecPython类库/misc.PWM.html)介绍的引脚号和模组的硬件设计文档(从[下载区](/download/)获取)设计好硬件电路即可。设计硬件电路注意需要注意电平转换,以及电平转换电路的最大输出频率。 + +如模组本身不支持或支持的数量不够用,则可以使用模组支持的任意一个[GPIO](../../../API_reference/zh/QuecPython类库/machine.Pin.html)结合[定时器](../../../API_reference/zh/QuecPython类库/machine.Timer.html)来粗略模拟输出PWM信号,硬件设计相同,软件实现可见下文。 + +### 软件应用 + +当使用模组自带PWM功能时: + +```python +>>>from misc import PWM +>>>pwm = PWM(PWM.PWM0, PWM.ABOVE_MS, 1, 5) +>>>pwm.open() +``` + +当自行模拟PWM功能时需要注意QuecPython对于时序控制并不是很精确,请自行根据需求实现相关代码。 + +### PWM功能测试 + +在命令行中执行上面三行代码即可让模组的PWM0引脚输出一个周期为5ms,占空比为20%的方波,借助[逻辑分析仪](https://baike.baidu.com/item/逻辑分析仪/2364388?fr=aladdin)我们可以看到输出的波形。交互界面及逻辑分析仪获取到的波形如下图。 + + + + + +如上图所示,填写的参数和实际抓取到的波形是能够对应上的,有关API具体参数含义可以仔细阅读API介绍文档进行理解。 + +对于QuecPython的PWM API需要注意的是,填的参数不能超出填写范围,否则将会出现报错,这是常见问题。 + +一般使用PWM功能主要步骤是: + +1. 设置PWM参数:根据具体应用需求,设置PWM信号的频率和占空比等参数。频率决定信号的周期,占空比决定信号的平均电平和电路或设备的输出功率或速度。对于QuecPython API,则需要填写高电平时间和周期来决定占空比和频率。即占空比=高电平时间/周期,频率=1秒/周期(单位:秒)。 +2. 连接PWM输出:将PWM信号的输出端口连接到需要控制的电路或设备,如电机、LED等。通常需要使用适当的电路元件,如电容、电感、MOSFET或三极管等,来控制PWM信号的幅值和波形。 +3. 调试和优化:根据实际情况,调试PWM电路或程序,以确保PWM信号的稳定性和准确性。可以通过示波器、数字万用表等仪器来监测PWM信号的波形和电平等参数,进行优化和调整。 + +需要注意的是,在使用PWM技术时,需要根据具体应用需求选择合适的PWM芯片或电路,即选择合适的模组,并合理设置参数和连接电路。同时,还需要注意PWM信号的稳定性、可靠性和噪声等因素,以确保电路或设备的正常运行和安全性。 + +# PWM功能应用实例 + +## 呼吸灯应用 + +在本文中,我们将使用QuecPython板载的PWM功能,实现一个呼吸灯的效果。呼吸灯是一种灯光效果,类似于人类呼吸时的变化。它可以在各种电子设备中使用,例如嵌入式系统、智能家居、玩具等。 + +## 准备工作 + +我们需要使用QuecPython开发板、以及一个直插式LED灯(部分板载贴片式LED即可测试,详情请看电路原理图确认)。将LED灯连接到QuecPython开发板上。将LED的长脚连接到开发板的PWM0引脚,将短脚连接到开发板的GND引脚。 + +## 代码实现 + +以下是实现呼吸灯效果的QuecPython代码。代码中的注释将帮助您理解代码的工作原理。 + +```python +# 导入所需模块 +from misc import PWM +from utime import sleep_ms + +# 设置PWM通道和频率 +PWM_CHANNEL = PWM.PWM0 +PWM_FREQ_Hz = 50 + +# 初始化PWM占空比和周期时长 +pwm_duty = 100 # PWM占空比初始值为100% +cycleTime = 1000 // PWM_FREQ_Hz # 周期时长(单位:ms) + +while True: + # 根据当前PWM占空比计算高电平时间 + highTime = cycleTime * pwm_duty // 100 + + # 创建PWM对象并打开 + pwm = PWM(PWM_CHANNEL, PWM.ABOVE_MS, highTime, cycleTime) + pwm.open() + + # 根据PWM占空比的变化情况更新PWM占空比值 + if pwm_duty >= 100: + pwm_duty_change_step = -10 # 如果PWM占空比达到了100%,则向负方向降低 + if pwm_duty <= 0: + pwm_duty_change_step = 10 # 如果PWM占空比达到了0%,则向正方向增加 + pwm_duty += pwm_duty_change_step # 更新PWM占空比 + + # 等待一段时间,再进行下一次循环操作 + sleep_ms(100) +``` + +这段代码通过使用`misc`模块和`utime`模块中的函数实现对PWM(脉冲宽度调制)信号的控制。PWM信号的特点是占空比可以调整,因此可以通过占空比来控制输出的平均电压。在这段代码中,先选择一个PWM通道(`PWM_CHANNEL = PWM.PWM0`)和设定PWM信号的频率(`PWM_FREQ_Hz = 50`)。然后通过循环语句不断改变PWM信号的占空比,从而使输出的电平产生周期性的变化。 + +具体来说,代码循环中的每个步骤如下: + +1. 根据当前的PWM占空比值计算出PWM信号的高电平时间(`highTime = cycleTime * pwm_duty // 100`)。这里`cycleTime`表示一个PWM信号的周期时长,单位为毫秒,由设定的PWM频率和公式`cycleTime = 1000 / PWM_FREQ_Hz`计算得出。`pwm_duty`表示当前的PWM占空比,范围在0%~100%之间。因此,当`pwm_duty`为100%时,高电平时间等于一个周期的时长;当`pwm_duty`为0%时,高电平时间为0。 +2. 创建一个PWM对象,并指定输出方式为“高电平持续时间大于等于给定时间”(`PWM.ABOVE_MS`),同时将高电平时间和周期时长设置为计算得到的值。然后通过`open()`方法打开PWM输出。 +3. 根据当前PWM占空比的变化趋势更新PWM占空比值。当PWM占空比达到100%时,向负方向(即减小PWM占空比)变化;当PWM占空比达到0%时,向正方向(即增加PWM占空比)变化。 +4. 等待一段时间(这里是100毫秒),然后进入下一次循环。 + +这样,即可实现对PWM信号的控制,从而产生周期性变化的平均电压输出。 + +# 总结 + +PWM功能在此做了详细的介绍,如有疑问或更好的建议欢迎联系我们,也可以直接向我们提交文档贡献,后续本文将继续完善和补充更多应用案例。 \ No newline at end of file diff --git "a/docs/Getting_started/zh/QuecPython\347\263\273\347\273\237\345\212\237\350\203\275/\346\227\266\351\227\264\345\212\237\350\203\275.md" "b/docs/Getting_started/zh/QuecPython\347\263\273\347\273\237\345\212\237\350\203\275/\346\227\266\351\227\264\345\212\237\350\203\275.md" new file mode 100644 index 0000000000000000000000000000000000000000..9fd5a1a3147f7d1ac5f8fc8eb9815f79ea8a8097 --- /dev/null +++ "b/docs/Getting_started/zh/QuecPython\347\263\273\347\273\237\345\212\237\350\203\275/\346\227\266\351\227\264\345\212\237\350\203\275.md" @@ -0,0 +1,142 @@ +# 时间功能 + +在使用QuecPython开发物联网应用程序时,时间功能对于一些用户来说是非常重要的一部分。本文将介绍如何在QuecPython中使用时间功能。 + +主要围绕以下几个功能展开介绍: + +[ntptime - NTP对时](../../../API_reference/zh/QuecPython组件库/ntptime.html) + +[class RTC – 实时时钟](../../../API_reference/zh/QuecPython类库/machine.RTC.html) + +[utime - 时间相关功能](../../../API_reference/zh/QuecPython标准库/utime.html) + +[class Timer - 硬件定时器](../../../API_reference/zh/QuecPython类库/machine.Timer.html) + +## 1. 时间同步 + +在一些需要准确时间的应用中,可以通过与网络时间服务器进行同步来保证时间的准确性,虽然不主动对时我们也可以在模块联网的时候从网络获取到时间,但是这个时间出现过不准确的情况,所以建议先进行时间同步。在QuecPython中,可以使用`ntptime`模块与NTP服务器进行时间同步,但是此功能依赖于网络,在使用此功能前务必确保我们的网络已经正常,可以参见[天线、SIM卡和网络注册](./../QuecPython物联网基础功能/天线SIM卡和网络注册.html)章节。并且确保您的卡没有被限制ip访问范围,如有限制需要联系运营商将NTP服务器加入白名单,或者自己实现对时功能确保时间能够被校准。 + +当前我们的`ntptime`模块默认支持五个常用服务器域名:"ntp.aliyun.com","pool.ntp.org", "asia.pool.ntp.org", "cn.ntp.org.cn", "cn.pool.ntp.org",当其中任何一个异常时,都将自动切换下一个域名,如仍不能满足您的需求,您可以选择设置自己更为可靠的服务器。 + +```python +import utime +import ntptime + +# 设置NTP服务器 +ntptime.host = "pool.ntp.org" + +# 同步时间(以同步东八区时间为例) +ntptime.settime(timezone=8) + +# 获取同步后的时间戳 +current_timestamp = utime.time() + +# 将时间戳转换为本地时间 +local_time = utime.localtime(current_timestamp) + +# 打印本地时间 +print(local_time) +``` + +在上面的代码中,`ntptime.host`变量设置了NTP服务器的地址,`ntptime.settime()`函数与NTP服务器进行时间同步,`utime.time()`函数获取同步后的时间戳。 + +需要注意的是,并不能过于频繁的进行NTP对时,下面的文章将会继续介绍原因。 + +## 2. 获取当前时间 + +获取当前时间是最基本的时间操作。在QuecPython中,可以使用`utime`模块获取当前时间上一部分也有实际用到,但是实际上可以更简单,并且`utime`模块还有其他更加实用的时间功能,具体查看API介绍,这里介绍用的较多的。 + +```python +import utime + +# 直接获取本地时间 +local_time = utime.localtime() + +# 打印本地时间 +print(local_time) + +# 设置时区,不建议使用,建议使用ntptime +utime.setTimeZone(offset) + +# 休眠即延时 +utime.sleep(1) +utime.sleep_ms(1) +utime.sleep_us(1) +``` + +在上面的代码中,`utime.localtime()`函数可以直接获取本地时间,十分方便,但是前提是RTC时间已经是正确的,因为这里的时间实际来源于RTC时间,关于RTC的介绍详见下文。 + +`utime`模块中的设置时区实际并不好用,不如使用ntptime对时的同时设置时区。 + +`utime`模块中的sleep延时功能有着很多的用处,同时也有一些使用建议。 + +1.首先从其字面含义来说,在我们想让模块处于睡眠状态时(依赖其他前提条件,详见[低功耗](./../QuecPython硬件高级功能/低功耗.html)章节),需要正在执行这个函数。 + +2.之所以调用这个函数时模块可以处于睡眠,是因为调用这个函数时,模块主动让出了CPU执行权限,基于这个特性,当我们在使用多线程时每个死循环里也必须使用这个函数,来主动让出CPU执行权限,使得各个线程均能够正常得到调度,sleep时间无特殊要求,详见[多线程](./多线程.html)章节。 + +3.使用sleep函数来进行软件延时。需要注意sleep的软件延时并不精准,无法作为高精度延时来使用,并且虽然具有sleep_us这个函数,但是并不能进行微秒级的延时,延时的最小时间需要实测确认。 + +4.`utime.sleep`、`utime.sleep_ms`及`utime.sleep_us`函数的调用会导致程序休眠阻塞。 + +`utime`模块除了这些功能,还有一个比较实用的功能,可以测量两段脚本之间的执行时间,详见API介绍文档,不过多赘述。 + +## 3. RTC实时时钟 + +RTC(Real Time Clock)实时时钟是一种硬件设备,它可以提供独立于操作系统的时间计时服务,即使设备关机(不断电)也能保持时间的准确性。在QuecPython中,可以使用`machine`模块访问RTC实时时钟。对于RTC的所有用法参见[class RTC – 实时时钟](../../../API_reference/zh/QuecPython类库/machine.RTC.html)章节,下面主要介绍常用操作与注意事项。 + +```python +from machine import RTC + +# 初始化RTC实时时钟 +rtc = RTC() + +# 设置RTC时间 +rtc.datetime([2020, 3, 12, 1, 12, 12, 12, 0]) + +# 获取RTC时间 +rtc_time = rtc.datetime() + +# 打印RTC时间 +print(rtc_time) +``` + +在上面的代码中,主要介绍了如何使用RTC获取和设置模块的时间,至此,我们可以知道,虽然`utime`和`RTC`都能够获取时间,但是只有`RTC`是能够设置时间的,所以`utime`的时间也是来源于`RTC`设置的时间,整个系统中的时间,除了从网络中获取的,其余均来自于`RTC`,网络中同步的时间,如基站提供的时间、NTP服务器提供的时间则是通过`RTC`来设置到系统中的。 + +上面提到不能频繁进行NTP对时的原因也在这里,因为RTC每设置一次时间都会擦写模块内部的flash,会导致flash的寿命减少,flash的擦写次数上限一般为10万次。 + +`RTC`模块中还有一个函数对于部分场景比较实用,`rtc.set_alarm`,具体用法和适用的模块详见对应的API介绍文档,这个函数同样会擦写flash,不宜频繁调用。其实用性主要体现在,部分型号可以在关机后由`RTC`唤醒开机,而开机时间就是由这个函数进行设置的,这个功能可以应用于对功耗要求较高的场景,除此之外还可以对一般的低功耗模式进行唤醒,详见[低功耗](./../QuecPython硬件高级功能/低功耗.html)。 + +## 4. 综合示例代码 + +以下是一个完整的示例代码,该代码实现了获取当前时间、RTC时间、时间同步、时间格式化、时间延时等功能。 + +```python +import utime +import machine +import ntptime + +# 同步东八区时间 +ntptime.host = "pool.ntp.org" +ntptime.settime(timezone=8) +current_timestamp = utime.localtime() +print("Synchronized time:", current_timestamp) + +# 获取RTC时间 +rtc = machine.RTC() +rtc_time = rtc.datetime() +print("RTC time:", rtc_time) + +# 获取当前时间 +current_timestamp = utime.localtime() +print("Current timestamp:", current_timestamp) + +# 延时 +utime.sleep(1) +print("Delay 1 second.") +utime.sleep_ms(500) +print("Delay 500ms.") +``` + +# 总结 + +用户经常关注的时间相关的功能应用均在此做了介绍,如有疑问或更好的建议欢迎联系我们,也可以直接向我们提交文档贡献,后续本文将继续完善和补充。 \ No newline at end of file diff --git "a/docs/Getting_started/zh/QuecPython\347\263\273\347\273\237\345\212\237\350\203\275/\347\263\273\347\273\237\344\277\241\346\201\257.md" "b/docs/Getting_started/zh/QuecPython\347\263\273\347\273\237\345\212\237\350\203\275/\347\263\273\347\273\237\344\277\241\346\201\257.md" index 8e20c9ac6b89605b8ee72bfd3bafddc98662c28e..770d3eec0f65ccb1d3efdb4f769470a0d9fcd3f0 100644 --- "a/docs/Getting_started/zh/QuecPython\347\263\273\347\273\237\345\212\237\350\203\275/\347\263\273\347\273\237\344\277\241\346\201\257.md" +++ "b/docs/Getting_started/zh/QuecPython\347\263\273\347\273\237\345\212\237\350\203\275/\347\263\273\347\273\237\344\277\241\346\201\257.md" @@ -131,4 +131,4 @@ print('剩余可用RAM空间:{}KB'.format(mem / 1024)) # 总结 -用户经常关注的模块相关的,可以通过microPython脚本查询到的信息均在此做了介绍,如有疑问或更好的建议欢迎联系我们,或直接向我们提交文档贡献,后续本文将继续完善和补充。 \ No newline at end of file +用户经常关注的模块相关的,可以通过microPython脚本查询到的信息均在此做了介绍,如有疑问或更好的建议欢迎联系我们,也可以直接向我们提交文档贡献,后续本文将继续完善和补充。 \ No newline at end of file diff --git a/docs/Getting_started/zh/README.md b/docs/Getting_started/zh/README.md index 2505a5462eff8f7fbb1ba05a44045386213bdbef..8b1cb293365aef401004c91ee53e34efdcb1bfd4 100644 --- a/docs/Getting_started/zh/README.md +++ b/docs/Getting_started/zh/README.md @@ -96,11 +96,9 @@ - [6.4:MQTT 通信](./QuecPython物联网基础功能/MQTT通信.md) -- [6.5:SNMP 通信](./QuecPython物联网基础功能/SNMP通信.md) +- [6.5:WebSocket 通信](./QuecPython物联网基础功能/WebSocket通信.md) -- [6.6:WebSocket 通信](./QuecPython物联网基础功能/WebSocket通信.md) - -- [6.7:通信异常处理](./QuecPython物联网基础功能/通信异常处理.md) +- [6.6:通信异常处理](./QuecPython物联网基础功能/通信异常处理.md) diff --git "a/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_0.png" "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_0.png" new file mode 100644 index 0000000000000000000000000000000000000000..4a1c10f5f4a3dbaf17ed0aed577e9d0c6de13e2c Binary files /dev/null and "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_0.png" differ diff --git "a/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_1.png" "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_1.png" new file mode 100644 index 0000000000000000000000000000000000000000..42861328ae75675564c189c91942a92ab6006bdf Binary files /dev/null and "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_1.png" differ diff --git "a/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_2.png" "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_2.png" new file mode 100644 index 0000000000000000000000000000000000000000..7b46a98d18c309ab93adec062eca7e6ec66ad8ac Binary files /dev/null and "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_2.png" differ diff --git "a/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_3.png" "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_3.png" new file mode 100644 index 0000000000000000000000000000000000000000..89a36362d7d649d47b5f7a502b144d827aca9019 Binary files /dev/null and "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/ADC/ADC_3.png" differ diff --git "a/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/PWM/PWM_0.png" "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/PWM/PWM_0.png" new file mode 100644 index 0000000000000000000000000000000000000000..aec7390f55748fce445af07cdd78f9acdfc461bd Binary files /dev/null and "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/PWM/PWM_0.png" differ diff --git "a/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/PWM/PWM_1.png" "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/PWM/PWM_1.png" new file mode 100644 index 0000000000000000000000000000000000000000..31a3e7b62dcdbd2c0691b809bbbdb9823e79c825 Binary files /dev/null and "b/docs/Getting_started/zh/media/QuecPython\347\241\254\344\273\266\345\237\272\347\241\200\345\212\237\350\203\275/PWM/PWM_1.png" differ diff --git a/docs/Getting_started/zh/sidebar.yaml b/docs/Getting_started/zh/sidebar.yaml index 072c898835028adebc614388e105afb958c9be49..def2031074a9ca5c161772675641cdd1c447d6b0 100644 --- a/docs/Getting_started/zh/sidebar.yaml +++ b/docs/Getting_started/zh/sidebar.yaml @@ -96,11 +96,9 @@ items: file: QuecPython物联网基础功能/HTTP通信.md - label: 6.4:MQTT 通信 file: QuecPython物联网基础功能/MQTT通信.md - - label: 6.5:SNMP 通信 - file: QuecPython物联网基础功能/SNMP通信.md - - label: 6.6:WebSocket 通信 + - label: 6.5:WebSocket 通信 file: QuecPython物联网基础功能/WebSocket通信.md - - label: 6.7:通信异常处理 + - label: 6.6:通信异常处理 file: QuecPython物联网基础功能/通信异常处理.md - label: 7:QuecPython 云平台功能