Zeruns's Blog - 温湿度
type: channel
link: https://blog.zeruns.com/tag/%E6%B8%A9%E6%B9%BF%E5%BA%A6/
items: 基于合宙Air700E的4G环境监测节点（温湿度、气压等数据），通过MQTT上传阿里云物联网平台
items: STM32读取SHT3x系列温湿度传感器，标准库和HAL库
items: STM32软件I2C读取AM2320温湿度传感器数据

基于合宙Air700E的4G环境监测节点（温湿度、气压等数据），通过MQTT上传阿里云物联网平台
type: item
date: 2023-12-15T01:46:00+08:00
description: AI摘要 基于合宙Air700E的4G环境监测节点，采集温湿度、气压等数据，通过MQTT上传至阿里云物联网平台，并在OLED屏幕显示。ESP32C3通过WiFi订阅数据并用LCD展示，结合LVGL图形库实现可视化。项目为课程设计，支持多种无线传输方式，适合学习物联网开发。 此内容根据文章生成，仅用于文章内容的解释与总结 基于合宙Air700E的4G环境监测节点（温度、湿度、气压等数据），通过MQTT上传阿里云物联网平台。介绍合宙Air700E 4G模块读取传感器（温湿度、气压等）数据并通过MQTT协议上传阿里云物联网平台，数据也会同时显示在0.96寸的OLED屏幕上，使用了U8g2图形库。ESP32C3 WiFi模块通过MQTT协议订阅4G节点上传的数据并显示在LCD屏上，使用了LVGL图形库。这是我的一个课程设计，随便做做的，不是很完善。题目要求：设计并制作无线通信系统，结合上学期所学知识，将本地采集的温、湿度/超声波测量距离通过无线收发的方式，发送到主机/接收端，并在接收端利用 LCD显示相关信息，具体要求如下：⑴ 蓝牙无线传输系统设计实现⑵ WiFi 无线传输系统设计及实现⑶ ZigBee 无线传输系统设计及实现⑷ GPRS/GSM 无线传输系统设计及实现(5) 4G 无线传输系统设计及实现(6) NBIoT/LoRa 无线传输系统设计及实现提示：可用 8/16/32 处理器作为主控制器，按照本小组选定的综合部分内容来进行选型，至少完成 2 个小项，其中（1）（2）（3）选 1 个完成，（4）（5）（6）选 1 个完成。Air700E和ESP32C3我都是使用LuatOS系统+Lua脚本的开发方式来开发的。LuatOS固件是我使用合宙的云编译生成的。ESP32C3上自带的4MByte的flash被我换成了8MByte的了，固件也是大于4MB的，因为加了LVGL图形库以及几种字体。阿里云学生优惠地址：https://www.aliyun.com/daily-act/ecs/activity_share?userCode=jdjc69nf注意： 由于阿里云物联网平台不同设备间不能订阅对方的主题，只能订阅本设备的主题，所以需要在 消息转发→云产品流转 那里添加一条规则，将4G节点设备的发布的消息转发到WiFi节点设备的一个主题。立创开源平台开源链接：https://oshwhub.com/zeruns/wen-shi-du-cai-ji-4g-shang-chuan电子/单片机技术交流群：2169025065合宙Air700E介绍Air700E 是合宙通信推出的 LTE Cat.1 bis通信模块，采用移芯EC618平台，支持 LTE 3GPP Rel.13 技术。该模块仅保留 LTE TDD 频段，适配中国移动运营主流频段，具有超小封装和极致成本，满足小型化和低成本需求。主要特性包括：支持单1.8/3.3V USIM接口支持1.8/3.3V可配置串口支持USB 2.0支持远程OTA固件升级支持PSM数字语音接口支持多种开发方式，如USB上网、标准AT开发， open CPU二次开发（LuatOS,C-SDK）等Air700E 内置丰富的网络协议，集成多个工业标准接口，并支持多种驱动和软件功能（如Windows 7/8/8.1/10，Linux，Android等操作系统下的 USB 驱动等），极大地拓展了其在 M2M 领域的应用范围，如CPE、路由器、数据卡、平板电脑、车载、安防以及工业级 PDA 等。Air700E的技术规格如下：LTE-TDD频段： B34/B38/B39/B40/B41LTE-TDD数据速率：上下行配比2时，最大8Mbps（DL）/最大2Mbps（UL）上下行配比1时，最大6Mbps（DL）/最大4Mbps（UL）接口：1个USB 2.0高速接口（最高达480Mbps）1个1.8V/3.0V (U)SIM卡接口1个NETLIGHT接口 (NET\_STATUS)1路数字I2S接口，支持外置codec3个UART接口（主串口，通用串口，调试串口）PWRKEY（低电平有效）2路ADC接口13个通用GPIO + 2路中断输入1路I2C接口合宙ESP32-C3介绍CORE ESP32核心板是基于乐鑫ESP32-C3进行设计的一款核心板，尺寸仅有21mm*51mm，板边采用邮票孔设计，方便开发者在不同场景下的使用。核心板支持UART、GPIO、SPI、I2C、ADC、PWM等接口，可根据实际需要选择。硬件资源：尺寸长宽 21mm*51mm1路SPI FLASH，板载4MB，支持最高 16MB2路UART接口，UART0\~UART1,其中下载口为UART05 路 12 比特 ADC，最高采样率 100KSPS1路低…

STM32读取SHT3x系列温湿度传感器，标准库和HAL库
type: item
date: 2023-01-04T00:19:00+08:00
description: AI摘要 STM32通过硬件I2C和软件模拟IIC读取SHT3x温湿度传感器数据并显示在OLED屏上，包含标准库和HAL库代码实现。 此内容根据文章生成，仅用于文章内容的解释与总结 STM32读取SHT3x系列(SHT30、SHT31、SHT35)温湿度传感器的数据并显示在0.96寸OLED屏上。我下面提供两份代码，一份是标准库使用硬件I2C的，另一份是HAL库使用软件模拟IIC的。我用的单片机是STM32F103C8T6，温湿度传感器是SHT30。STM32软件I2C读取AM2320温湿度传感器数据：https://blog.zeruns.com/archives/695.htmlSTM32使用硬件I2C读取SHTC3温湿度传感器：https://blog.zeruns.com/archives/692.htmlSTM32单片机读取AHT10温湿度传感器数据：https://blog.zeruns.com/archives/693.html电子/单片机技术交流群：2169025065实现效果图I2C协议简介I2C 通讯协议(Inter－Integrated Circuit)是由 Phiilps 公司开发的，由于它引脚少，硬件实现简单，可扩展性强，不需要 USART、CAN 等通讯协议的外部收发设备（那些电平转化芯片），现在被广泛地使用在系统内多个集成电路(IC)间的通讯。I2C只有一跟数据总线 SDA(Serial Data Line)，串行数据总线，只能一位一位的发送数据，属于串行通信，采用半双工通信半双工通信：可以实现双向的通信，但不能在两个方向上同时进行，必须轮流交替进行，其实也可以理解成一种可以切换方向的单工通信，同一时刻必须只能一个方向传输，只需一根数据线.对于I2C通讯协议把它分为物理层和协议层物理层规定通讯系统中具有机械、电子功能部分的特性（硬件部分），确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑，统一收发双方的数据打包、解包标准（软件层面）。I2C物理层I2C 通讯设备之间的常用连接方式(1) 它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中，可连接多个 I2C 通讯设备，支持多个通讯主机及多个通讯从机。(2) 一个 I2C 总线只使用两条总线线路，一条双向串行数据线SDA（Serial Data Line ），一条串行时钟线SCL（Serial Data Line ）。数据线即用来表示数据，时钟线用于数据收发同步(3) 总线通过上拉电阻接到电源。当 I2C 设备空闲时会输出高阻态，而当所有设备都空闲，都输出高阻态时，由上拉电阻把总线拉成高电平。I2C通信时单片机GPIO口必须设置为开漏输出，否则可能会造成短路。关于更多STM32的I2C相关信息和使用方法可以看这篇文章：https://url.zeruns.com/JC0Ah我这里就不详细讲解了。SHT3x温湿度传感器SHT3x数据手册下载地址：原版：https://url.zeruns.com/uWNnP 提取码：icqu中文版(机翻)：https://url.zeruns.com/n9b9t 提取码：vedy浏览数据手册可以得到一个大概信息，SHT30是一个可以检测温度和湿度的传感器，温度范围：-40℃\~125℃湿度范围：0%\~100%工作电压：2.4v\~5.5v通讯方式：i2c时钟频率：0 \~ 1000kHz找到如下几个关键信息SHT3x设备地址和读写命令SHT3x的地址可以通过第2个引脚接高或低电平来设置，我在淘宝买的模块的传感器2脚是通过一个电阻接到VCC，也就是默认是0x44。在实际的使用过程中，SHT3x的设备地址需要与读写数据/命令方向位组成一个字节同时发送，字节的最低位为读写数据/命令方向位，高7位是SHT3x的设备地址。如果要通过I2C写数据或命令给SHT3x，在I2C起始信号之后，需要发送“1000 1000”，即0x88给SHT3x，除了通过高7位“1000 100”（0x44）的设备地址寻址还通过最低位“0”通知SHT3x接下来是写数据或命令操作。如果要通过I2C读取SHT3x中的数据，在I2C起始信号之后，需要发送“1000 1001”，即0x89给SHT3x，除了通过高7位“1000 100”的设备地址寻址还通过最低位“1”通知SHT3x接下来是读取数据的操作。简单来说就是，0x88表示写数据，0x89表示读数据。不过使用STM32硬件I2C时只需要输入0x88就行，最低位标准库会处理的。读取温湿度数据可知，不同的命令，获取的数据方式不一样，有单次测量和周期测量模式，还有一个Clock Stretching Enable 和 Disable的区别。Clock Stretchin…

STM32软件I2C读取AM2320温湿度传感器数据
type: item
date: 2022-12-08T17:06:00+08:00
description: AI摘要 STM32通过软件I2C读取AM2320温湿度数据并显示在OLED屏上，包含详细代码和时序解析。 此内容根据文章生成，仅用于文章内容的解释与总结 STM32单片机使用软件IIC读取AM2320温湿度传感器的数据并显示在0.96寸OLED屏上。我用的单片机是STM32F103C8T6，程序用的是ST标准库写的。STM32使用硬件I2C读取SHTC3温湿度传感器：https://blog.zeruns.com/archives/692.htmlSTM32单片机读取AHT10温湿度传感器数据：https://blog.zeruns.com/archives/693.html电子/单片机技术交流群：2169025065实现效果图I2C协议简介I2C 通讯协议(Inter－Integrated Circuit)是由 Phiilps 公司开发的，由于它引脚少，硬件实现简单，可扩展性强，不需要 USART、CAN 等通讯协议的外部收发设备（那些电平转化芯片），现在被广泛地使用在系统内多个集成电路(IC)间的通讯。I2C只有一跟数据总线 SDA(Serial Data Line)，串行数据总线，只能一位一位的发送数据，属于串行通信，采用半双工通信半双工通信：可以实现双向的通信，但不能在两个方向上同时进行，必须轮流交替进行，其实也可以理解成一种可以切换方向的单工通信，同一时刻必须只能一个方向传输，只需一根数据线.对于I2C通讯协议把它分为物理层和协议层物理层规定通讯系统中具有机械、电子功能部分的特性（硬件部分），确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑，统一收发双方的数据打包、解包标准（软件层面）。I2C物理层I2C 通讯设备之间的常用连接方式(1) 它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中，可连接多个 I2C 通讯设备，支持多个通讯主机及多个通讯从机。(2) 一个 I2C 总线只使用两条总线线路，一条双向串行数据线SDA（Serial Data Line ），一条串行时钟线SCL（Serial Data Line ）。数据线即用来表示数据，时钟线用于数据收发同步(3) 总线通过上拉电阻接到电源。当 I2C 设备空闲时会输出高阻态，而当所有设备都空闲，都输出高阻态时，由上拉电阻把总线拉成高电平。I2C通信时单片机GPIO口必须设置为开漏输出，否则可能会造成短路。关于更多STM32的I2C相关信息和使用方法可以看这篇文章：https://url.zeruns.com/JC0Ah我这里就不详细讲解了。AM2320温湿度传感器介绍AM2320 数字温湿度传感器是一款含有己校准数字信号输出的温湿度复合型传感器。采用专用的温湿度采集技术，确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个高精度集成测温元件，并与一个高性能微处理器相连接。该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。AM2320 通信方式采用单总线、标准 I2C 两种通信方式。标准单总线接口，使系统集成变得简易快捷。超小的体积、极低的功耗，信号传输距离可达 20 米以上，使其成为各类应用甚至最为苛刻的应用场合的最佳选择。I2C 通信方式采用标准的通信时序，用户可直接挂在 I2C通信总线上，无需额外布线，使用简单。两种通信方式都采用直接输出经温度补偿后的湿度、温度及校验 CRC 等数字信息，用户无需对数字输出进行二次计算，也无需要对湿度进行温度补偿，便可得到准确的温湿度信息。两种通信方式可自由切换，用户可自由选择，使用方便，应该领域广泛。产品为 4 引线，连接方便，特殊封装形式可根据用户需求而提供。AM2320数据手册下载地址：https://url.zeruns.com/74o6F浏览数据手册可以得到一个大概信息：温度范围：-40℃\~80℃温度误差：±0.5℃湿度范围：0%\~99.9%湿度误差：±3%工作电压：3.1v\~5.5v通讯方式：I2C或单总线时钟频率：100kHz以内找到如下几个关键信息设备地址和读写命令在实际的使用过程中，AM2320的设备地址需要与读写数据/命令方向位组成一个字节同时发送，字节的最低位为读写数据/命令方向位，高7位是AM2320的设备地址。如果要通过I2C写数据或命令给AM2320，在I2C起始信号之后，需要发送“1011 1000”，即0xB8给AM2320，除了通过高7位“1011 100”的设备地址寻址还通过最低位“0”通知AM2320接下来是写数据或命令操作。如果要通过I2C读取AM2320中的数据，在I2C起始信号之后，需要发送“1011 1001”，即0xB9给AM2320，除了通过高7位“1011 100”的设备地址寻址还通过最低位…