基于树莓派Pico W的DIY物联网风速计与环境监测站全攻略
1. 项目概述与核心思路拆解我一直对气象数据很着迷尤其是风速——它看不见摸不着却能实实在在地影响我们的生活从决定今天是否适合晾衣服到评估户外设备的稳定性。市面上的专业气象站动辄上千元而一个基础的风速计模块也要几百块这对于个人爱好者或者教学项目来说门槛不低。最近在捣鼓树莓派Pico W时我就在想能不能用这颗性价比极高的微控制器配合一些常见的传感器自己攒一个能用的风速计出来经过几轮设计和测试这个想法还真成了。这个项目不仅仅是一个风速计我更愿意称它为一个小型的“环境监测站”因为它除了测风还能同时监测温湿度、气压和空气质量二氧化碳浓度数据可以通过Wi-Fi上传实现远程查看。这个DIY风速计的核心思路是将传统的机械式风速测量原理与现代化的物联网技术相结合。其工作流程可以拆解为三个层次感知层、处理层和应用层。在感知层我们利用风杯的旋转切割磁力线通过霍尔传感器产生脉冲信号来测量风速同时BME280和MQ135传感器负责采集温湿压和空气质量数据。在处理层树莓派Pico W作为大脑负责读取所有传感器的原始数据进行必要的计算比如将脉冲频率换算为风速并打包处理。在应用层Pico W的Wi-Fi功能使得数据能够被发送到指定的服务器或显示在本地屏幕上完成从物理信号到可用信息的转化。整个项目的价值在于它用很低的成本实现了一套可定制、可扩展的环境监测方案你不仅可以学到传感器原理和嵌入式编程还能亲手打造一个真正有用的工具。2. 硬件选型与材料清单解析工欲善其事必先利其器。硬件选型直接决定了项目的可行性、精度和最终成本。下面我详细拆解一下每个核心部件的选择理由和需要注意的细节。2.1 核心控制器为什么是树莓派Pico W在众多微控制器中我选择树莓派Pico W主要是基于以下几点考量性价比与性能平衡Pico W价格亲民但搭载了双核ARM Cortex-M0处理器主频133MHz性能足以流畅地处理多传感器数据采集和简单的网络通信任务远超许多同价位的8位单片机。内置Wi-Fi这是选择“W”型号而非普通Pico的关键。内置的Wi-Fi模块Infineon CYW43439让我们无需额外添加ESP8266等模块就能轻松实现物联网功能简化了电路设计和编程复杂度。丰富的GPIO与接口Pico W拥有26个多功能GPIO引脚支持UART、I2C、SPI、PWM等多种协议。本项目需要连接多个传感器I2C接口可以轻松串联BME280而霍尔传感器和MQ135则可以使用普通的GPIO进行读取引脚资源绰绰有余。完善的MicroPython支持对于快速原型开发来说MicroPython比C/C更友好。其丰富的库生态如machine、network、urequests让我们可以专注于业务逻辑而不是底层寄存器操作极大地加快了开发速度。低功耗特性虽然我们使用移动电源供电但Pico W本身支持多种睡眠模式为未来可能的太阳能电池板蓄电池的离网部署方案留下了优化空间。注意购买时请认准“Pico W”型号。早期的Pico不带无线功能。另外建议同时购买一个半孔母排针焊接上去这样可以直接插在面包板上使用比焊接排针到开发板本身更灵活也保护了板子。2.2 传感器阵列功能与精度考量传感器是项目的“感官”它们的选型决定了数据的质量。风速测量霍尔传感器与磁铁方案原理我们没有使用成品风速计模块而是采用了更底层的方案一个装有磁铁的风杯转盘和一个固定的霍尔传感器如常见的A3144。风杯旋转带动磁铁周期性地靠近和远离霍尔传感器使其输出高低电平变化的脉冲信号。通过测量单位时间内的脉冲数就能计算出转速进而换算成风速。选型理由成本极低霍尔传感器和磁铁仅需几元钱并且让我们能完全控制机械结构理解从物理运动到电信号的全过程。相比于光学编码器霍尔方案在户外灰尘、水汽环境下更可靠。关键参数霍尔传感器要选择“开关型”如A3144而不是线性霍尔。磁铁建议使用强磁性的钕铁硼小磁铁确保信号清晰。磁铁与传感器的距离需要仔细调试通常在2-5mm时信号最佳。环境传感器BME280与MQ135BME280这是一个集温度、湿度、气压测量于一体的传感器芯片。选择它是因为其精度较高温度±1°C湿度±3%RH气压±1hPa且通过I2C接口通信只需两根线SDA SCL就能读取全部数据接线非常简洁。气压数据还可以用于粗略的海拔估算或者未来扩展为天气预报功能。MQ135这是一个模拟输出的气体传感器对二氧化碳、氨气、苯等多种气体有敏感性常被用作“空气质量”的粗略指示。选择它是因为其响应明显价格便宜适合定性监测。需要明确的是它无法提供像专业NDIR传感器那样精确的CO2 ppm值但其电阻值变化能有效反映室内通风状况或特定污染事件。替代方案如果追求更高的空气质量监测精度可以考虑SGP30TVOC和eCO2或Sensirion的SCD40。但成本会显著上升。2.3 结构材料与防护设计户外设备防护是第一要务。原文中提到了IP56防护箱、PVC管、塑料容器等这里我补充一些实操心得主控箱IP56等级的防水盒是明智之选。“IP56”意味着防尘等级为5无法完全防止灰尘进入但进入量不影响设备运行防水等级为6防强力喷水。对于非暴雨直淋的环境如屋檐下完全够用。打孔后务必使用电缆防水接头电缆格兰头这是保证密封性的关键普通热熔胶或硅胶长时间会老化开裂。风杯传感器外壳使用透明塑料圆盒如饼干盒是个巧妙的做法便于观察内部磁铁和传感器是否对齐。顶部开孔穿轴处可以用一小段硅胶管做密封圈既能固定转轴又能防止进水。底部记得钻几个小的排水孔防止冷凝水积聚。支架与风杯风杯可以用3个或4个小塑料瓶如药瓶切割制作重量要尽量一致并用环氧树脂胶对称粘在十字支架上以保证旋转平衡。支架转轴最好使用不锈钢棒强度高且耐腐蚀。整个传感器头部要安装在足够长的PVC管或木杆顶端以减少下方建筑对气流的影响。完整材料清单补充版类别物品数量备注核心电子树莓派 Pico W1主控制器霍尔传感器 (如A3144)1用于测速钕铁硼小磁铁2-4建议多备几个对称粘贴BME280传感器模块1温湿压三合一MQ135传感器模块1空气质量传感器半孔母排针1套方便插拔面包板1用于原型搭建杜邦线公对公、公对母若干连接电路微型USB数据线1供电与编程大容量移动电源1建议20000mAh以上续航数天结构材料IP56防水接线盒1主控室透明圆形塑料盒带盖1风杯传感器外壳小型塑料瓶或半球形物体3或4制作风杯PVC管或木杆1-2米立杆不锈钢棒或硬质钢丝约20cm转轴电缆防水接头格兰头3-4个不同孔径用于穿线螺丝、螺母、垫片若干固定用工具与耗材电烙铁及焊锡1套焊接排针和传感器热熔胶枪及胶棒1套快速固定非永久手电钻及钻头1套开孔万用表1调试电路必备剪刀、美工刀、钢尺各1裁剪材料防水胶布、扎带若干理线与辅助固定3. 机械结构设计与组装实操这一部分是整个项目从图纸变为实物的关键很多细节决定了最终设备的稳定性和测量准确性。3.1 风杯传感器总成制作风杯传感器的核心是将风能转化为稳定、低摩擦的旋转。制作风杯转子取三个相同的小塑料瓶用美工刀切掉底部保留瓶身上半部分作为“杯体”。找一个轻质的十字支架可以用厚塑料片或铝片切割确保三臂等长、夹角为120度。用环氧树脂将三个杯体分别粘在支架的三个臂的末端杯口朝向必须一致通常都是顺着旋转方向。平衡调试这是影响测量精度和轴承寿命的关键。将组装好的风杯组件放在一个尖针或轴承上看它是否能在任意位置静止。如果总是某一侧下沉需要在轻的一侧的杯体内壁少量涂抹热熔胶或粘贴配重如小螺母进行调整直到基本平衡。组装传感器外壳在透明圆盒的盖子中心钻一个与不锈钢转轴直径匹配的孔。孔不能太大否则会晃动。将转轴一端用强力胶或螺丝固定在与风杯支架的中心。在转轴伸入盒内的末端用胶水固定一个圆形小塑料片如光盘片作为磁铁载体。在这个载体边缘等距粘贴2-4颗小磁铁。磁铁数量越多每转一圈产生的脉冲数就越多在低风速下的分辨率就越高但也要考虑传感器响应频率是否跟得上。在盒内底部固定好霍尔传感器模块调整其位置使其正对磁铁旋转的轨迹且距离在2-5mm内。可以用热熔胶临时固定通电测试信号正常后再用环氧树脂永久固定。密封与安装在盖子与转轴之间填入少量润滑脂并套上一小段硅胶管作为软密封既能防水又能减少摩擦。在盒子底部钻几个微小排水孔。最后将这个传感器总成通过支架或直接固定在立杆的顶端。3.2 主控防护箱内部布局IP56箱子的内部布局讲究“分区明确、走线整齐、利于散热”。区域划分箱子内部可以大致分为三个区域。最里面固定移动电源中间区域放置固定在面包板上的Pico W及核心电路靠近入口处是传感器线缆的接入和接线端子区。设备固定移动电源和面包板不要直接用胶粘在箱底。我建议使用高强度双面泡沫胶或尼龙扎带底座来固定。这样既牢固又方便后期拆卸更换。Pico W最好先焊接到半孔母排针上再插入面包板避免焊接应力直接作用在Pico的焊盘上。线缆管理所有从外部进入的传感器线风速、BME280、MQ135先通过防水格兰头。在箱内线缆用扎带捆扎整齐留出一定余量避免拉扯。电源线USB线单独走一个格兰头。强烈建议在USB电源线上串接一个带开关的USB模块这样无需开箱就能切断整个系统电源。散热与防凝露电子设备工作会发热在密封环境中可能产生凝露。可以在箱子背阴面非迎风面的底部钻几个非常细小的透气孔并贴上防水透气膜如戈尔特斯膜平衡内外气压和湿度同时防止液态水进入。4. 电路连接与原理图详解电路是项目的神经网络正确的连接是数据采集的基础。下面我将给出详细的接线图和原理说明。4.1 系统电路连接图首先我们来看一下所有部件与树莓派Pico W的连接关系。Pico W的引脚图是必备的参考资料你需要清楚每个GPIO的编号和功能。接线表基于Pico W的GPIO编号传感器/模块信号线连接至 Pico W 引脚说明霍尔传感器输出 (OUT)GPIO 15 (Pin 20)用于检测磁铁脉冲电源 (VCC)3V3(OUT) (Pin 36)提供3.3V电源地 (GND)GND (Pin 38)接地BME280 (I2C)SDAGPIO 0 (Pin 1)I2C数据线SCLGPIO 1 (Pin 2)I2C时钟线VCC3V3(OUT) (Pin 36)提供3.3V电源GNDGND (Pin 38)接地MQ135 (模拟)模拟输出 (AO)GPIO 26 (ADC0) (Pin 31)读取模拟电压值数字输出 (DO)不接或 GPIO 14本项目仅用模拟输出VCC3V3(OUT) (Pin 36)注意MQ135需5V驱动加热丝GNDGND (Pin 38)接地关键提示MQ135的供电问题。MQ135传感器模块通常包含一个稳压芯片和加热电路。虽然逻辑电平是3.3V兼容但其内部的加热器需要5V电压才能正常工作以达到最佳灵敏度。因此必须将MQ135模块的VCC引脚连接到Pico W的VBUS引脚Pin 40或者移动电源的5V输出上而不是3.3V。否则传感器可能无法正常预热读数不准。其AO输出是模拟电压Pico W的ADC可以安全读取3.3V以内的电压所以直接接GPIO 26 (ADC0)即可。4.2 电源方案与注意事项整个系统由一块20000mAh的移动电源通过USB线供电。功耗估算Pico W全速运行约100mABME280约1mAMQ135加热时约150mA霍尔传感器忽略不计。总电流约250mA。20000mAh移动电源理论上可供电约80小时超过3天。实际由于转换效率、待机功耗等能稳定工作2-3天是比较现实的。电源稳定性在程序中建议初始化后让MQ135预热加热15-20分钟再开始正式读数这样数据才稳定。移动电源要选择输出稳定的品牌劣质电源的电压波动可能影响ADC读数精度。扩展思考对于长期部署可以考虑“太阳能板充电控制器蓄电池”的方案。Pico W支持深度睡眠可以每隔几分钟唤醒一次进行测量和发送数据这样功耗可以降到毫安级配合一块小太阳能板就能实现永久续航。5. 软件编程与数据处理逻辑代码是项目的灵魂它定义了设备如何思考和行为。我们将使用MicroPython进行开发因为它简单易学库资源丰富。5.1 开发环境搭建与基础库安装给Pico W刷入MicroPython固件去树莓派官网下载最新的Pico W MicroPython固件.uf2文件。按住Pico W上的BOOTSEL按钮不放同时通过USB线连接到电脑。松开按钮电脑会识别出一个名为RPI-RP2的U盘。将下载的.uf2文件拖入该U盘。Pico W会自动重启并运行MicroPython。选择代码编辑器Thonny这是最推荐给新手的IDE。它内置了MicroPython支持能自动识别Pico W实现一键上传、运行和调试。安装后在右下角选择解释器为“MicroPython (Raspberry Pi Pico)”。VS Code Pico-W-Go插件适合更喜欢专业编辑器的用户功能更强大。安装必要库BME280和MQ135通常不需要额外库我们可以用machine模块的I2C和ADC功能直接读取。但为了更方便可以上传一个写好的BME280驱动文件如bme280.py到Pico W。将驱动文件通过Thonny的文件管理器功能保存到Pico W的根目录下即可。5.2 核心代码实现与解析下面是一个整合了所有功能的MicroPython代码框架并附有详细注释。# main.py - 风速与环境监测站主程序 import machine import time import network import urequests as requests from machine import Pin, ADC, I2C import math # 1. 硬件引脚初始化 # 风速传感器 (霍尔传感器) - 作为中断输入 wind_sensor Pin(15, Pin.IN, Pin.PULL_UP) # 使用内部上拉电阻 # BME280 (I2C 初始化) i2c I2C(0, sclPin(1), sdaPin(0), freq100000) # 使用I2C0 SCLGP1, SDAGP0 # 注意需要先将bme280.py库文件上传到Pico from bme280 import BME280 bme BME280(i2ci2c) # MQ135 (模拟输入) - 连接到ADC0 (GP26) mq135 ADC(Pin(26)) # 2. 全局变量定义 wind_count 0 # 风速脉冲计数 last_wind_time 0 # 用于计算频率 CALIBRATION_FACTOR 2.4 # 风速校准系数 (需实测调整) 单位: (km/h) / Hz # 3. 中断服务函数 (用于风速计数) def wind_speed_trigger(pin): global wind_count wind_count 1 # 简单的消抖忽略过快的触发10ms # 实际可根据磁铁数量和转速调整 # 绑定中断检测下降沿磁铁靠近霍尔传感器输出低电平 wind_sensor.irq(triggerPin.IRQ_FALLING, handlerwind_speed_trigger) # 4. 风速计算函数 def calculate_wind_speed(): global wind_count, last_wind_time current_time time.ticks_ms() time_elapsed time.ticks_diff(current_time, last_wind_time) / 1000.0 # 转换为秒 if time_elapsed 2.0: # 每2秒计算一次平均风速 if time_elapsed 0: frequency wind_count / time_elapsed # 计算频率 (Hz) # 风速 频率 * 校准系数 # 校准系数需要通过对比专业风速计实测得到 speed_kmh frequency * CALIBRATION_FACTOR wind_count 0 last_wind_time current_time return round(speed_kmh, 1) return None # 5. MQ135读数转换函数 def read_mq135(): # 读取ADC原始值 (0-65535 对应 0-3.3V) raw_value mq135.read_u16() voltage (raw_value / 65535) * 3.3 # 将电压值转换为一个粗略的“空气质量指数” # 这是一个简化模型需要在实际环境中用已知条件校准 # 假设清洁空气中电压约为1V污染时升高 if voltage 1.2: aqi 优 elif voltage 1.8: aqi 良 elif voltage 2.4: aqi 轻度污染 else: aqi 污染 return voltage, aqi # 6. Wi-Fi连接与数据上传函数 def connect_wifi(ssid, password): wlan network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(ssid, password) print(正在连接Wi-Fi..., end) max_wait 20 while max_wait 0: if wlan.isconnected(): break max_wait - 1 time.sleep(1) print(., end) if not wlan.isconnected(): print(\n连接失败) return False else: print(\n连接成功IP地址:, wlan.ifconfig()[0]) return True def send_data_to_server(temp, humidity, pressure, wind_speed, air_quality): # 示例将数据发送到ThingSpeak平台 api_key YOUR_API_KEY_WRITE_HERE url https://api.thingspeak.com/update?api_key api_key url field1 str(temp) url field2 str(humidity) url field3 str(pressure) url field4 str(wind_speed) url field5 str(air_quality[0]) # 发送电压值 try: response requests.get(url, timeout5) print(数据发送状态码:, response.status_code) response.close() except Exception as e: print(发送数据失败:, e) # 7. 主循环 def main(): # 配置你的Wi-Fi信息 WIFI_SSID 你的Wi-Fi名称 WIFI_PASSWORD 你的Wi-Fi密码 # 连接Wi-Fi if not connect_wifi(WIFI_SSID, WIFI_PASSWORD): print(将在无网络模式下运行仅本地打印数据) print(系统启动MQ135预热中...约90秒) time.sleep(90) # MQ135预热时间 while True: # 读取BME280数据 temp, pressure, humidity bme.read_compensated_data() # BME280库返回的单位可能需要转换请根据具体库调整 temperature_c temp / 100 # 示例转换 pressure_hpa pressure / 25600 humidity_rh humidity / 1024 # 计算风速 wind_speed calculate_wind_speed() # 读取MQ135 mq_voltage, aqi read_mq135() # 打印到串口通过Thonny查看 print(*30) print(温度: {:.1f} °C.format(temperature_c)) print(湿度: {:.1f} %RH.format(humidity_rh)) print(气压: {:.1f} hPa.format(pressure_hpa)) if wind_speed is not None: print(风速: {:.1f} km/h.format(wind_speed)) print(MQ135电压: {:.2f} V - 空气质量: {}.format(mq_voltage, aqi)) # 如果Wi-Fi已连接则上传数据例如每分钟一次 # 这里可以添加一个计时器控制上传频率避免过于频繁 # if network.WLAN(network.STA_IF).isconnected(): # send_data_to_server(temperature_c, humidity_rh, pressure_hpa, wind_speed, (mq_voltage, aqi)) # 主循环延迟 time.sleep(5) # 每5秒读取一次传感器风速是2秒平均 if __name__ __main__: main()代码关键点解析风速测量使用中断来捕获霍尔传感器的脉冲确保不丢失任何一次计数。calculate_wind_speed函数每隔2秒计算一次平均频率再乘以校准系数得到风速。校准系数CALIBRATION_FACTOR是核心参数需要通过对比一个已知准确的风速计进行标定。它的物理意义是风杯每旋转一圈产生N个脉冲N磁铁数量所对应的实际风速。传感器读数BME280通过I2C读取使用了专门的驱动库简化操作。MQ135通过ADC读取模拟电压并将其映射为一个粗略的空气质量等级。请注意MQ135的数值是电压值并非精确的PPM它更适用于趋势监测和相对比较。网络功能connect_wifi函数负责连接网络。send_data_to_server是一个示例将数据发送到ThingSpeak物联网平台。你需要注册ThingSpeak账号创建一个Channel并将生成的Write API Key替换代码中的YOUR_API_KEY_WRITE_HERE。你也可以修改此函数将数据发送到自己的服务器或其他IoT平台如Blynk、阿里云等。功耗与稳定性当前代码是持续运行的。为了省电可以引入深度睡眠模式machine.deepsleep()但需要注意深度睡眠时Wi-Fi会断开唤醒后需要重新连接。对于气象监测通常30秒到1分钟采集一次数据就足够了。6. 校准、测试与部署优化设备组装好、代码上传后并不意味着项目结束。校准和现场调试才是让它从“能工作”到“测得准”的关键。6.1 风速计的校准这是最具技术挑战性的一步。因为没有现成的标准你需要一个参考基准。相对校准法推荐给大多数爱好者工具一个已知准确度的风速计可以向学校、气象爱好者借或者购买一个便宜的USB风速计或者在有稳定风源的条件下如风扇用手机APP的风速计做粗略参考。方法将你的DIY风速计和参考风速计并排放在同一位置确保它们感受的风力相同。记录下不同风速下如风扇开低、中、高档你的设备输出的脉冲频率可以在代码中打印frequency变量和参考风速计的真实值。计算将多组数据真实风速 频率在坐标纸上描点或使用Excel它们应该大致呈线性关系。通过线性拟合得到的斜率就是你的CALIBRATION_FACTOR。例如测得频率10Hz时对应风速24km/h那么系数就是24/102.4。公式估算法精度较低通过测量风杯的旋转半径r根据风速与转速的经验公式估算。但这种方法误差较大因为风杯形状、摩擦等因素影响显著。6.2 系统集成测试与常见问题排查在正式户外部署前务必进行全面的室内测试。测试步骤上电与串口监控通过USB连接电脑在Thonny中运行main.py打开串口监视器。观察启动信息检查Wi-Fi是否连接成功。传感器读数测试BME280用手握住传感器应能看到温度缓慢上升哈气应能看到湿度急剧上升。MQ135向传感器吹气模拟二氧化碳浓度升高观察输出的电压值是否显著上升。风速传感器用磁铁快速在霍尔传感器前来回晃动模拟风杯旋转观察wind_count是否增加计算出的风速是否变化。网络功能测试注释掉数据上传的延时让程序立刻上传一次数据到ThingSpeak查看你的Channel图表是否成功更新。常见问题排查速查表现象可能原因排查步骤与解决方案Pico W无法被电脑识别1. USB线问题只能充电不能传数据2. 固件未正确刷入1. 更换一条确认可传数据的USB线。2. 重新进入BOOTSEL模式刷写固件。串口无输出或乱码1. 串口波特率设置错误2. 代码有语法错误未运行1. 在Thonny中检查串口波特率是否为115200。2. 检查代码看是否有红色错误提示。BME280读取失败1. I2C接线错误SDA/SCL接反2. 地址错误3. 电源未接通1. 用万用表检查SDA/SCL线是否连通。2. 运行i2c.scan()查看发现的设备地址。3. 检查3.3V和GND是否接好。风速始终为01. 霍尔传感器未触发2. 中断未正确配置3. 磁铁距离太远或磁性太弱1. 用万用表测量霍尔传感器OUT引脚电压用磁铁靠近看电压是否跳变。2. 检查代码中引脚号和中断触发边沿设置。3. 调整磁铁与传感器的距离至2-3mm。MQ135读数无变化1. 供电电压不足未接5V2. 预热时间不够1.确保MQ135模块VCC接的是5VVBUS。2. 延长预热时间到2-3分钟再读数。Wi-Fi连接失败1. SSID/密码错误2. 信号太弱3. 路由器设置了MAC过滤1. 仔细核对密码注意大小写。2. 将设备靠近路由器测试。3. 查看路由器后台将Pico W的MAC地址加入允许列表。数据上传失败1. 网络未连接2. API Key错误3. 服务器URL错误1. 先确保Wi-Fi连接成功。2. 核对ThingSpeak的Write API Key。3. 检查urequests的URL拼接是否正确。6.3 户外部署与长期维护建议通过所有测试后就可以进行户外部署了。选址选择开阔、远离建筑物和树木至少10米的地方。安装高度建议在2米以上标准气象观测是10米家用可降低。确保立杆牢固能抵御大风。定向风杯传感器安装时无需特别定向。防水复查部署前再次检查所有防水接头是否拧紧外壳缝隙是否用防水胶条或硅胶密封好。长期维护定期检查每隔一两周检查设备是否在线数据是否正常。清理风杯和传感器外壳上的灰尘、蜘蛛网。电源管理关注移动电源电量建立定期充电或更换的 routine。如果是太阳能方案定期清洁太阳能板。数据备份ThingSpeak免费版有数据条数限制。对于长期记录建议额外将数据保存到本地SD卡需为Pico W添加SD卡模块或同步到自己的数据库。这个项目最有成就感的一刻就是看到自己亲手制作的设备在风雨中稳定工作并将真实世界的风、温度、湿度的变化转化为屏幕上跳动的数字和图表。它不仅仅是一个工具更是一个理解物理世界与数字世界如何连接的窗口。你可以基于此继续扩展比如增加雨量计、光照传感器或者做一个本地显示的LCD屏甚至用多个节点组网监测整个区域的小气候。希望这份详细的指南能帮你少走弯路顺利打造出属于自己的环境监测站。