基于合宙Air700E的4G环境监测节点(温湿度、气压等数据) - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 基于合宙Air700E的4G环境监测节点(温湿度、气压等数据)

简介:基于合宙Air700E的4G环境监测节点(温度、湿度、气压等数据),通过MQTT上传阿里云物联网平台。同时ESP32C3通过WiFi连接MQTT服务器订阅数据并显示在LCD上。

开源协议: CC BY-NC-SA 4.0

(未经作者授权,禁止转载)

创建时间: 2023-10-17 11:11:45
更新时间: 2023-12-15 03:37:39
描述
基于合宙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](https://www.aliyun.com/daily-act/ecs/activity_share?userCode=jdjc69nf) **注意:** 由于阿里云物联网平台不同设备间不能订阅对方的主题,只能订阅本设备的主题,所以需要在 **消息转发→云产品流转** 那里添加一条规则,将4G节点设备的发布的消息转发到WiFi节点设备的一个主题。 ## 实物图 **演示视频:** [https://www.bilibili.com/video/BV1MH4y1B7Df/](https://www.bilibili.com/video/BV1MH4y1B7Df/) ### 整体图 ![](//image.lceda.cn/pullimage/lbQWROmWQYHTz2Der9glg6lW5Ko3goB1hiEcfQoV.jpeg) ### 4G节点 ![](//image.lceda.cn/pullimage/Sy1agrh9V5MPG1H10REONz3NvuigEjW1goeIWhvn.jpeg) ### WiFi节点 WiFi连接时: ![IMG_20231107_230343_1.jpeg](//image.lceda.cn/pullimage/BvSBB2fhuEQhWHmlHYAmZleN0M0i6clMhJC6eQMQ.jpeg) 连接上WiFi后开始连接MQTT服务器和NTP时间同步: ![IMG_20231107_230420.jpeg](//image.lceda.cn/pullimage/waMunyOnwPIchVrdCyRIu9FvaVzzRwKsfPwTnxz3.jpeg) 显示4G节点采集到的数据: ![IMG_20231107_211812.jpeg](//image.lceda.cn/pullimage/9TfJjQFwWupZqJdDnRKCI2HcPET6qFLGk9bdsHez.jpeg) 显示温湿度变化曲线: ![IMG_20231107_211856.jpeg](//image.lceda.cn/pullimage/4EfSL6VToyF4303UmrMlrYHiJNH4edXMlKxhW6ZU.jpeg) ### 物联网平台 阿里云物联网平台上显示的数据: ![image-20231215005346807.png](//image.lceda.cn/pullimage/MlEkUUoTeC2i0qcPI3Zxb8RMCih8xyAue85YgXJv.png) ## 代码 具体怎么下载代码我就不细说了,自行查看官方文档。 Air700E文档:[https://doc.openluat.com/wiki/44?wiki_page_id=4730](https://url.zeruns.tech/jy0t6) LVGL for LuatOS 手册:[https://url.zeruns.tech/7z7fN](https://url.zeruns.tech/7z7fN) ESP32-C3文档:[https://url.zeruns.tech/497AP](https://wiki.luatos.com/chips/esp32c3/index.html) Lua教程:[https://url.zeruns.tech/Pc4PA](https://url.zeruns.tech/Pc4PA) ### 4G节点 固件下载地址:[https://url.zeruns.tech/2G3K7](https://pan.baidu.com/s/1eB1tIKPPJZ-bPNY5of4gFQ?pwd=rn6t) **main.lua文件:** ```lua -- LuaTools需要PROJECT和VERSION这两个信息 PROJECT = "环境监测节点" VERSION = "1.1.0" -- 引入必要的库文件(lua编写), 内部库不需要require sys = require("sys") aht10 = require "aht10" bmx = require "bmx" --添加硬狗防止程序卡死 if wdt then wdt.init(9000)--初始化watchdog设置为9s sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗 end print(_VERSION) log.info(mobile.ipv6(true)) --开启ipv6 local ProductKey= "xxxxxx" --产品key local DeviceName= "xxxxxx" --改为你自己的设备名 local DeviceSecret = "xxxxxx" --改为你自己的设备密钥 local client_id, user_name, password = iotauth.aliyun(ProductKey, DeviceName ,DeviceSecret) --生成MQTT三元组 log.info("MQTT参数", client_id, user_name, password) local softI2C = i2c.createSoft(29, 31, 2) --初始化软件I2C local aht10_data,bmx_data local RH,Temp,Press,High,distance,BAT_Voltage,CPU_T = 0,0,0,0,0,0,0 --平均值,湿度、温度、气压、海拔、距离、电池电压、CPU温度 local RH_C,Temp_C,Press_C,High_C,distance_C,BAT_Voltage_C,CPU_T_C = 0,0,0,0,0,0,0 --当前值 local AHT10_flag,BMP180_flag,US100_flag,BAT_Voltage_flag,CPU_T_flag = false,false,false,false,false all_data = {params = {CurrentVoltage = 0,CurrentTemperature = 0, CurrentHumidity = 0,Atmosphere = 0, Altitude = 0,DetectDistance = 0,CPUTemperature = 0}} function US_100() --US-100超声波测距模块读取数据 uart.write(1, string.char(0x55)) --发送16进制0x55 sys.wait(50) --延时50毫秒 local hData,lData = string.byte(uart.read(1, 2),1,2) --串口接收2字节 uart.rxClear(1) --清空接收缓存 if hData and lData then --判断是否接收到数据 local Distance_mm = tonumber((hData * 256 ) + lData) --将高8位左移8位后和低8位数据相加 if Distance_mm > 4500 then --判断是否超出测量范围 Distance_mm = 4500 end --log.info("超声波:"..Distance_mm.."mm") --日志输出距离 return (Distance_mm / 10) --算出cm并返回 end end -- https://blog.zeruns.tech sys.taskInit(function() -- 创建一个线程,读取各个传感器数据 sys.wait(500) -- 延时500毫秒 aht10.init(softI2C) -- 初始化AHT10,传入i2c_id bmx.init(softI2C) -- 初始化BMP180,传入i2c_id uart.setup(1, 9600, 8, 1, uart.NONE) --初始化串口1 adc.open(0) -- 打开adc通道0,并读取 adc.open(adc.CH_CPU)-- 打开ADC通道-CPU内部温度通道 --adc.setRange(adc.ADC_RANGE_3_8) -- 开启ADC0,1分压电阻,范围0~3.8V sys.wait(500) -- 延时500毫秒 local RH_sum, Temp_sum, Press_sum, High_sum, distance_sum,BAT_Voltage_sum,CPU_T_sum = 0,0,0,0,0,0,0 --总和,求平均值用 local avg_count, avg_count2,avg_count3,avg_count4,avg_count5 = 0,0,0,0,0 while 1 do aht10_data = aht10.get_data() --读取AHT10的数据 bmx_data = bmx.get_data() --读取BMP10的数据 distance_C = US_100() --读取US-100的数据 -- 电池电压采样,分压电阻比例:4.7K/10K BAT_Voltage_C = ((adc.get(0) / 1000 / 1007) * 1473) -- 读取AD0电压值,计算电池电压 CPU_T_C = adc.get(adc.CH_CPU) / 1000 -- 读取CPU温度 -- AHT10温湿度平均值计算 if aht10_data.RH and aht10_data.T then --判断AHT10是否读取到数据 all_data.params.CurrentTemperature = aht10_data.T all_data.params.CurrentHumidity = aht10_data.RH*100 if avg_count < 6 then --判断是否小于3,累加计平均值 RH_C,Temp_C = aht10_data.RH*100, aht10_data.T --读取温度和湿度的当前值 RH_sum = RH_C + RH_sum Temp_sum = Temp_C + Temp_sum avg_count = avg_count + 1 elseif avg_count == 6 then RH = RH_sum / 6 -- 算出湿度平均值 Temp = Temp_sum / 6 -- 算出温度平均值 log.info("AHT10_data.RH: "..(string.format("%.2f", RH)).." %"," AHT10_data.T: "..(string.format("%.2f", Temp)).." ℃") --日志输出 AHT10_flag = true -- 标志位置位,数据采集完毕 sys.publish("MQTT_P") -- 发布消息,数据采集计算完毕,MQTT可以上报了 avg_count,RH_sum,Temp_sum = 0,0,0 --计数值和总和清零 end end --BMP180气压和高度平均值计算 if bmx_data.press and bmx_data.high then all_data.params.Atmosphere = bmx_data.press all_data.params.Altitude = bmx_data.high if avg_count2 < 10 then --判断是否小于10,累加计平均值 Press_C,High_C = bmx_data.press, bmx_data.high --读取气压和高度的当前值 Press_sum = Press_C + Press_sum High_sum = High_C + High_sum avg_count2 = avg_count2 + 1 elseif avg_count2 == 10 then Press = Press_sum / 10 High = High_sum / 10 log.info("BMP180_data.press: "..(string.format("%.2f", Press)).." hPa"," BMP180_data.high: "..(string.format("%.2f", High)).." m") BMP180_flag = true sys.publish("MQTT_P") avg_count2,Press_sum,High_sum=0,0,0 end end -- US-100超声波测距 距离平均值计算 if distance_C then --判断是否读取到数据 all_data.params.DetectDistance = distance_C if avg_count3 < 3 then distance_sum = distance_C + distance_sum avg_count3 = avg_count3 + 1 elseif avg_count3 == 3 then distance = distance_sum / 3 log.info("US-100: "..(string.format("%.1f", distance)).." cm") US100_flag = true sys.publish("MQTT_P") avg_count3,distance_sum = 0,0 end end -- 电池电压 if BAT_Voltage_C then --判断是否读取到数据 all_data.params.CurrentVoltage = BAT_Voltage_C if avg_count4 < 20 then BAT_Voltage_sum = BAT_Voltage_C + BAT_Voltage_sum avg_count4 = avg_count4 + 1 elseif avg_count4 == 20 then BAT_Voltage = BAT_Voltage_sum / 20 log.info("BAT_Voltage: "..(string.format("%.2f", BAT_Voltage)).." V") BAT_Voltage_flag = true sys.publish("MQTT_P") avg_count4,BAT_Voltage_sum = 0,0 end end -- CPU温度 if CPU_T_C then --判断是否读取到数据 all_data.params.CPUTemperature = CPU_T_C if avg_count5 < 20 then CPU_T_sum = CPU_T_C + CPU_T_sum avg_count5 = avg_count4 + 1 elseif avg_count5 == 20 then CPU_T = CPU_T_sum / 20 log.info("CPU_T: "..(string.format("%.2f", CPU_T)).." ℃") CPU_T_flag = true sys.publish("MQTT_P") avg_count5,CPU_T_sum = 0,0 end end sys.wait(500) end end) --[[sys.taskInit(function() --创建一个任务,超声波测距,1.5秒一次 uart.setup(1, 9600, 8, 1, uart.NONE) --初始化串口1 sys.wait(1000) while 1 do distance = US_100() --读取US-100的数据 if distance then --判断是否读取到数据 log.info("US-100: "..(string.format("%.1f", distance)).." cm") US100_flag = true sys.publish("MQTT_P") end sys.wait(1500) end end)]] sys.taskInit(function() --创建一个线程,MQTT初始化和数据上报 mqttc = mqtt.create(nil, "a1sJbDQiEqr.iot-as-mqtt.cn-shanghai.aliyuncs.com", 1883,true,true) mqttc:auth(client_id, user_name, password) mqttc:keepalive(120) -- 默认值240s mqttc:autoreconn(true, 3000) -- 自动重连机制 mqttc:on(function(mqtt_client, event, data, payload) if event == "conack" then sys.publish("mqtt_conack") log.info("mqtt", "mqtt已连接") mqtt_client:subscribe("/sys/"..ProductKey.."/"..DeviceName.."/thing/service/property/set") elseif event == "recv" then log.info("mqtt", "收到消息", data, payload) local mqtt_date = json.decode(payload) elseif event == "sent" then log.info("mqtt", "sent", "pkgid", data) end end) mqttc:connect() while true do sys.waitUntil("MQTT_P", 3000) if AHT10_flag then local json_str = json.encode({params = {CurrentTemperature = Temp, CurrentHumidity = RH}}, "2f") -- 数据改成JSON格式,保留2位小数 mqttc:publish("/sys/"..ProductKey.."/".. DeviceName.."/thing/event/property/post", json_str) -- MQTT上报属性 mqttc:publish("/"..ProductKey.."/".. DeviceName.."/user/update", json.encode(all_data,"2f")) -- MQTT上报属性 AHT10_flag = false end if BMP180_flag then local json_str = json.encode({params = {Atmosphere = Press, Altitude = High}}, "2f") -- 数据改成JSON格式,保留2位小数 mqttc:publish("/sys/"..ProductKey.."/"..DeviceName.."/thing/event/property/post", json_str) -- MQTT上报属性 mqttc:publish("/"..ProductKey.."/".. DeviceName.."/user/update", json.encode(all_data,"2f")) -- MQTT上报属性 BMP180_flag = false end if US100_flag then local json_str = json.encode({params = {DetectDistance = distance}}, "1f") -- 数据改成JSON格式,保留2位小数 mqttc:publish("/sys/"..ProductKey.."/"..DeviceName.."/thing/event/property/post", json_str) -- MQTT上报属性 mqttc:publish("/"..ProductKey.."/".. DeviceName.."/user/update", json.encode(all_data,"2f")) -- MQTT上报属性 US100_flag = false end if BAT_Voltage_flag then local json_str = json.encode({params = {CurrentVoltage = BAT_Voltage}}, "2f") -- 数据改成JSON格式,保留2位小数 mqttc:publish("/sys/"..ProductKey.."/"..DeviceName.."/thing/event/property/post", json_str) -- MQTT上报属性 mqttc:publish("/"..ProductKey.."/".. DeviceName.."/user/update", json.encode(all_data,"2f")) -- MQTT上报属性 BAT_Voltage_flag = false end if CPU_T_flag then local json_str = json.encode({params = {CPUTemperature = CPU_T}}, "2f") -- 数据改成JSON格式 mqttc:publish("/sys/"..ProductKey.."/"..DeviceName.."/thing/event/property/post", json_str) -- MQTT上报属性 mqttc:publish("/"..ProductKey.."/".. DeviceName.."/user/update", json.encode(all_data,"2f")) -- MQTT上报属性 CPU_T_flag = false end end end) -- https://blog.zeruns.tech sys.taskInit(function() u8g2.begin({ic = "ssd1306",direction = 0,mode="i2c_hw",i2c_id=1,i2c_speed = i2c.FAST}) -- direction 可选0 90 180 270 u8g2.ClearBuffer() --清屏 u8g2.SetFont(u8g2.font_opposansm10) --切换字体 u8g2.DrawUTF8("IMEI:", 0, 16) u8g2.DrawUTF8(mobile.imei(), 0, 32) u8g2.SendBuffer() --ntp同步时间 --socket.sntp() socket.sntp({"ntp.aliyun.com","ntp1.aliyun.com","ntp2.aliyun.com"}) --sntp自定义服务器地址 --socket.sntp(nil, socket.ETH0) --sntp自定义适配器序号 sys.subscribe("NTP_UPDATE", function() log.info("sntp", "time", os.date()) sys.publish("NTP_OK") end) sys.subscribe("NTP_ERROR", function() log.info("socket", "sntp error") socket.sntp() end) sys.wait(1000) sys.waitUntil("NTP_OK", 3000) u8g2.ClearBuffer() --清屏 u8g2.SetFont(u8g2.font_opposansm10) --切换字体 u8g2.DrawUTF8(os.date("%Y-%m-%d"), 0, 16) --显示时间 u8g2.DrawUTF8(os.date("%H:%M:%S"), 0, 32) --显示时间 local IP = socket.localIP() --显示IP地址 if IP then u8g2.DrawUTF8("IP:"..IP, 0, 63) end u8g2.SendBuffer() sys.wait(2500) while true do u8g2.ClearBuffer() --清屏 u8g2.SetFont(u8g2.font_sarasa_m10_ascii) if Temp_C then u8g2.DrawUTF8("T:"..(string.format("%.2f", Temp_C)).."°C", 0, 16) end if RH_C then u8g2.DrawUTF8("RH:"..(string.format("%.2f", RH_C)).."%", 0, 32) end if Press_C then u8g2.DrawUTF8("P:"..(string.format("%.2f", Press_C)).."hPa", 0, 48) end if distance_C then u8g2.DrawUTF8("D:"..(string.format("%.1f", distance_C)).."cm", 0, 63) end if High_C then u8g2.DrawUTF8("H:"..(string.format("%.2f", High_C)).."m", 61, 16) end if BAT_Voltage_C then u8g2.DrawUTF8("B:"..(string.format("%.2f", BAT_Voltage_C)).."V", 66, 32) end if CPU_T_C then u8g2.DrawUTF8("CPUT:"..(string.format("%d", CPU_T_C)).."°C", 63, 63) end u8g2.SendBuffer() --显示数据更新到屏幕 sys.wait(200) end end) sys.taskInit(function() --创建一个线程,500毫秒闪一次LED gpio.setup(27, 0) -- 设置gpio27为输出,且初始化电平为低,使用硬件默认上下拉配置 while true do gpio.toggle(27) --gpio翻转电平 sys.wait(500) end end) --[[ 支持字体 ["unifont_t_symbols","open_iconic_weather_6x_t","opposansm8","opposansm10","opposansm12","opposansm16","opposansm20", "opposansm24","opposansm32","sarasa_m8_ascii","sarasa_m10_ascii","sarasa_m12_ascii","sarasa_m14_ascii", "sarasa_m16_ascii","sarasa_m18_ascii","sarasa_m20_ascii","sarasa_m22_ascii"] ]] -- 用户代码已结束--------------------------------------------- -- 结尾总是这一句 sys.run() -- sys.run()之后后面不要加任何语句!!!!! ``` ### WiFi节点 固件下载地址:[https://url.zeruns.tech/a7eXJ](https://url.zeruns.tech/a7eXJ) **main.lua文件:** 由于描述超字数限制了,请到这篇文章看:[https://blog.zeruns.tech/archives/747.html](https://blog.zeruns.tech/archives/747.html) ## 用到的硬件 用到的硬件模块和购买地址: - 4G模块:Air700E,[https://s.click.taobao.com/gMXE14u](https://uland.taobao.com/coupon/edetail?e=LUUvClZZaoalhHvvyUNXZfh8CuWt5YH5OVuOuRD5gLJMmdsrkidbOUV9IBA4kmjLCKSz6NMEOpOk6DkEOOy39ANONOd65bn6k%2BQD1WLWk7D58pWrh7e7ViECg58T7b6E7qOXUj4MT3dyBOK%2B8KjzSuzY3MUSAX0G1TP3uC6T%2BzrKa4jyh4U%2Bo5gBVnx58RcK3x24QQZ%2BkKRI%2Bf4%2BtcDu44oLvKgaQ5D83qmGq7GPCXsH2XAjD13xyT%2FhMZgljYbZj4NAR0X%2B9c23Sv8LMk9JOkIQtV1V6tmtIciWFcjrsPzH6emLlAySAVD9ZzTfOOXe%2Bm9PGdJ%2FlaUZUAGa9XIpkqJ7%2BkHL3AEW&traceId=213d811317025749037687621e65ab&union_lens=lensId%3APUB%401702574899%40212be3f7_0d90_18c695f4255_c520%400212cIwjWn6h4JZ67isD7Et6%40eyJmbG9vcklkIjo4MDY3NCwiic3BtQiiI6Il9wb3J0YWxfdjJfcGFnZXNfcHJvbW9fZ29vZHNfaW5kZXhfaHRtIiiwiic3JjRmxvb3JJZCI6IjgwNjc0In0ie%3Bscm%3A1007.30148.329090.pub_search-item_ea9ed1dc-121c-4a26-85aa-1c27c9c4e982_) - WiFi模块:ESP32-C3,[https://s.click.taobao.com/VU6E14u](https://s.click.taobao.com/t?e=m%3D2%26s%3DZlxzb7VA%2BERw4vFB6t2Z2ueEDrYVVa64YUrQeSeIhnK53hKxp7mNFhiPRfK6WZZbW%2BG7BH3F%2BVP0JlhLk0Jl4QTquP0kWxBLBDnvz6xo38xspWc9%2BCL4bTGF1ceZMhPo8mL8HhJ3EdVrH4ks4QyiY4z4rjZDGVMA7PT7P4MIjv0iDnQnCfxRCKLWMw3EOEsyJN2owMjhufwDudUsQ2T%2BdtwdcXrvJnQ7ZHuYE9Ro5OOZ8DKCp9t3JAIHG%2FUGGufvqH4FkV%2B42f2z1OkmXn0f%2BU%2FuprW1TdmBLeMqtJBmsqBWpXpRELkuYcbEo3ADJdJgcSpj5qSCmbA%3D&union_lens=lensId%3APUB%401702575245%4021334feb_0c8e_18c6964886f_3037%4002FXjqZ71jUAMAWD59wyxDr%40eyJmbG9vcklkIjo4MDY3NCwiic3BtQiiI6Il9wb3J0YWxfdjJfcGFnZXNfcHJvbW9fZ29vZHNfaW5kZXhfaHRtIiiwiic3JjRmxvb3JJZCI6IjgwNjc0In0ie%3Bscm%3A1007.30148.329090.pub_search-item_86a564e3-eb01-4328-b966-1f368fd8dd53_) - 温湿度传感器:AHT10,[https://s.click.taobao.com/0bmD14u](https://s.click.taobao.com/t?e=m%3D2%26s%3D771Jk01ERgJw4vFB6t2Z2ueEDrYVVa64g3vZOarmkFi53hKxp7mNFhiPRfK6WZZbARW0aicXof30JlhLk0Jl4QTquP0kWxBLBDnvz6xo38xspWc9%2BCL4bTGF1ceZMhPo8mL8HhJ3EdVrH4ks4QyiY4z4rjZDGVMAhscfsB2%2FyzZJq71CBMBeP%2F1SarTXhIOTsgIpc1WFZiJNubylQlnZt9wh0O3n7rEs7VSraZkgkhwlqDRRVlGxRqvyzFinE2vlF34xAtPUu%2BiG3j8B3S26WYwmLWBgEm80VKxcI130SjETn2JhMaQNtYWLhXkoGmYy4m7hkqalpkwvY%2BXqRXyCksYOae24fhW0&union_lens=lensId%3APUB%401702575301%4021055555_16ff_18c69656404_8e69%40024dxCNyvH1jSaZZpYn2bbD3%40eyJmbG9vcklkIjo4MDY3NCwiic3BtQiiI6Il9wb3J0YWxfdjJfcGFnZXNfcHJvbW9fZ29vZHNfaW5kZXhfaHRtIiiwiic3JjRmxvb3JJZCI6IjgwNjc0In0ie%3Bscm%3A1007.30148.329090.pub_search-item_e4951d39-761b-41f5-8840-673a3c0c7f1f_) - 气压传感器:BMP180,[https://s.click.taobao.com/lj5E14u](https://s.click.taobao.com/t?e=m%3D2%26s%3DbnhyRgad73lw4vFB6t2Z2ueEDrYVVa64YUrQeSeIhnK53hKxp7mNFhiPRfK6WZZbbJVKleC4LJX0JlhLk0Jl4QTquP0kWxBLBDnvz6xo38xspWc9%2BCL4bTGF1ceZMhPo8mL8HhJ3EdVrH4ks4QyiY4z4rjZDGVMAFBcM8wkWlGmBPeR%2FUFCetKLWMw3EOEsyJN2owMjhufwDudUsQ2T%2BduXhptvf7sm0vQrr15PsJfJByQLpIiyxZXY%2Fio3PXH82JxEGSxl4yKUtXkuY7xjNZU%2FuprW1TdmBLeMqtJBmsqAZVo9hr9WaqYgTf7YQgcVJcSpj5qSCmbA%3D&union_lens=lensId%3APUB%401702575360%402106d2ff_0cdf_18c69664982_7aaf%40021C2JTg214QOPnilxsDb2w%40eyJmbG9vcklkIjo4MDY3NCwiic3BtQiiI6Il9wb3J0YWxfdjJfcGFnZXNfcHJvbW9fZ29vZHNfaW5kZXhfaHRtIiiwiic3JjRmxvb3JJZCI6IjgwNjc0In0ie%3Bscm%3A1007.30148.329090.pub_search-item_f8a710ac-0037-4ec2-bbff-896f3c1af2c5_) - 超声波测距模块:US-100(用串口通信模式),[https://s.click.taobao.com/K0o5X3u](https://s.click.taobao.com/t?e=m%3D2%26s%3DInz6n3%2B%2FZwxw4vFB6t2Z2ueEDrYVVa64YUrQeSeIhnK53hKxp7mNFhiPRfK6WZZbq%2FcxWpaeRwj0JlhLk0Jl4QTquP0kWxBLBDnvz6xo38xspWc9%2BCL4bTGF1ceZMhPo8mL8HhJ3EdVrH4ks4QyiY4z4rjZDGVMAFBcM8wkWlGmBPeR%2FUFCetKLWMw3EOEsyJN2owMjhufwDudUsQ2T%2Bdg68505k9IiwAZQz22%2FRFMA5pQILDo6IOf16Gn%2BAIx7L96W3Eb16pLNyU%2FAPg17%2FFE%2FuprW1TdmBLeMqtJBmsqB4r3mjD%2F4H9bgUNPZMnoHFcSpj5qSCmbA%3D&skuId=4276770277565&union_lens=lensId%3APUB%401702575435%40213e7f1b_0c9e_18c69676fe9_4d3a%40036cIiBD2TZI9c9YU2Vchohd%40eyJmbG9vcklkIjo2MTQyOSwiic3BtQiiI6Il9wb3J0YWxfdjJfcGFnZXNfcHJvbW9fZ29vZHNfZGV0YWlsX2h0bSIsInNyY0Zsb29ySWQiiOiiI4MDY3NCJ9%3Bscm%3A1007.30148.329090.pub_search-item_972f304d-0e03-4fbf-b740-fd750c7af1d6_) - LCD屏幕:1.47寸的ST7789,分辨率172*320,[https://s.click.taobao.com/qalD14u](https://s.click.taobao.com/t?e=m%3D2%26s%3DgP4fG3vZI%2FNw4vFB6t2Z2ueEDrYVVa64g3vZOarmkFi53hKxp7mNFhiPRfK6WZZbfpmjeIyJHHf0JlhLk0Jl4QTquP0kWxBLBDnvz6xo38xspWc9%2BCL4bTGF1ceZMhPo8mL8HhJ3EdVrH4ks4QyiY4z4rjZDGVMAhscfsB2%2FyzZJq71CBMBeP%2F1SarTXhIOTsgIpc1WFZiJNubylQlnZt8KAViuQdyPNc8ER84P6KktsP7OMD4hiwaj%2Fx4cHJV5ILJ9HqoY3BUsLMohkjCbsqowmLWBgEm80VKxcI130SjETn2JhMaQNtYWLhXkoGmYyruoikO2OymYJLixcAe8pyMYOae24fhW0&union_lens=lensId%3APUB%401702575502%40212c48cb_0c8f_18c69687670_23aa%40024B9sLEl2iRKmna6a9po7FA%40eyJmbG9vcklkIjo4MDY3NCwiic3BtQiiI6Il9wb3J0YWxfdjJfcGFnZXNfcHJvbW9fZ29vZHNfaW5kZXhfaHRtIiiwiic3JjRmxvb3JJZCI6IjgwNjc0In0ie%3Bscm%3A1007.30148.329090.pub_search-item_5e0d1922-0ca6-44f9-99a9-821166c9de7d_) - OLED屏幕:0.96寸的SSD1306,I2C接口,[https://s.click.taobao.com/otWD14u](https://s.click.taobao.com/t?e=m%3D2%26s%3DKH7sw7eX%2F2Bw4vFB6t2Z2ueEDrYVVa64YUrQeSeIhnK53hKxp7mNFhiPRfK6WZZbUnl%2Fg%2F1GNuL0JlhLk0Jl4QTquP0kWxBLBDnvz6xo38xspWc9%2BCL4bTGF1ceZMhPo8mL8HhJ3EdVrH4ks4QyiY4z4rjZDGVMAc7QBxLpsf4TZIsq6%2BWiNSqLWMw3EOEsyJN2owMjhufwDudUsQ2T%2BdqwhF6wjgAjmYU48%2FUVSeeMab%2F%2BCSuws4OiHLQ4Yn8csh%2BdzzS7mHW11b5eySA3UA0%2FuprW1TdmBLeMqtJBmsqChj81ryXyWXeLqYXvNN1cOcSpj5qSCmbA%3D&union_lens=lensId%3APUB%401702575558%40213f6e5c_0cfd_18c69694f33_999c%40021vqRKMT5nzj9ALhoKTH8lx%40eyJmbG9vcklkIjo4MDY3NCwiic3BtQiiI6Il9wb3J0YWxfdjJfcGFnZXNfcHJvbW9fZ29vZHNfaW5kZXhfaHRtIiiwiic3JjRmxvb3JJZCI6IjgwNjc0In0ie%3Bscm%3A1007.30148.329090.pub_search-item_b4129703-d754-49d5-b48a-82cdfefb2b5f_) - 电池充放电芯片:IP5306-CK(注意要买CK版本的,普通版本的放电电流太小时会自动关断输出,不适合单片机用),[https://s.click.taobao.com/eu85X3u](https://s.click.taobao.com/t?e=m%3D2%26s%3DjX7JisUJSllw4vFB6t2Z2ueEDrYVVa64g3vZOarmkFi53hKxp7mNFhiPRfK6WZZbiJKehPSaPYD0JlhLk0Jl4QTquP0kWxBLBDnvz6xo38xspWc9%2BCL4bTGF1ceZMhPo8mL8HhJ3EdVrH4ks4QyiY4z4rjZDGVMAhscfsB2%2FyzZJq71CBMBeP%2F1SarTXhIOTsgIpc1WFZiJNubylQlnZt4mEKVwjSJcGFXvRQPy5FMG3%2FxXe%2BxQvKcLHPTEEdUKrO5xtKw8OA8bUMx%2BC19Mn3YwmLWBgEm80VKxcI130SjETn2JhMaQNtYWLhXkoGmYy5%2FXtHaC5QvUT2J2P4FlLNcYOae24fhW0&union_lens=lensId%3APUB%401702575629%4021055b80_0c9f_18c696a64f6_4c08%40022k2R4UBS6bcyB2aIphUK2l%40eyJmbG9vcklkIjo4MDY3NCwiic3BtQiiI6Il9wb3J0YWxfdjJfcGFnZXNfcHJvbW9fZ29vZHNfaW5kZXhfaHRtIiiwiic3JjRmxvb3JJZCI6IjgwNjc0In0ie%3Bscm%3A1007.30148.329090.pub_search-item_9fa456ea-a73f-470b-94dc-a6e6199bf4a4_) - 电池:亿纬35V-18650,3500mAh,[https://s.click.taobao.com/uUc5X3u](https://s.click.taobao.com/t?e=m%3D2%26s%3DS952IFxDAbxw4vFB6t2Z2ueEDrYVVa64g3vZOarmkFi53hKxp7mNFhiPRfK6WZZbhQCvBpU9uKb0JlhLk0Jl4QTquP0kWxBLBDnvz6xo38xspWc9%2BCL4bTGF1ceZMhPo8mL8HhJ3EdVrH4ks4QyiY4z4rjZDGVMA2wPTjyt1VFhJDk80jsGTwv1SarTXhIOT%2FcbizUjsed%2BEr%2BInjt7kJlMJo4xVYoI6QTU2mSOmawi8xTwUuWBJq9spaWqoW5XN2MTzYpfP%2FlmjO9AJYjY8CXJ%2BwEVkOqHFdIW9JNkz7%2FgDXc3BRboPm%2FkFZVUCNgR0oMbC7PHmBq9RLBgaW5udaw%3D%3D&union_lens=lensId%3APUB%401702575711%400b8b8151_148e_18c696ba6d8_29d5%40021a7vszDH3fGcvCMrLJyErd%40eyJmbG9vcklkIjo4MDY3NCwiic3BtQiiI6Il9wb3J0YWxfdjJfcGFnZXNfcHJvbW9fZ29vZHNfaW5kZXhfaHRtIiiwiic3JjRmxvb3JJZCI6IjgwNjc0In0ie%3Bscm%3A1007.30148.329090.pub_search-item_52261151-42b3-4abc-8483-08f2c5c3cc3d_) **元器件购买推荐立创商城,优惠注册链接:[https://activity.szlcsc.com/invite/D03E5B9CEAAE70A4.html](https://activity.szlcsc.com/invite/D03E5B9CEAAE70A4.html)** **板上所有元器件都可以在立创商城买到,在开源链接里的BOM表那点立即到立创商城下单可将用到的元器件一键导入到购物车。** ## 物联网平台设置说明 具体看教程:[https://blog.zeruns.tech/archives/747.html](https://blog.zeruns.tech/archives/747.html) ## 其他开源项目推荐 - STM32F030C8T6最小系统板和流水灯(原理图和PCB):[https://blog.zeruns.tech/archives/715.html](https://blog.zeruns.tech/archives/715.html) - 画了个 MSP430F149的最小系统板 开源出来了:[https://blog.zeruns.tech/archives/713.html](https://blog.zeruns.tech/archives/713.html) - 2007年电赛电源题:30到36V可调升压DCDC模块(UC3843):[https://oshwhub.com/zeruns/36v-sheng-ya-dcdc-mo-kuai-uc3842](https://oshwhub.com/zeruns/36v-sheng-ya-dcdc-mo-kuai-uc3842) - STC12C5A60S2最小系统板/51单片机温度显示和温度控制风扇:[https://blog.zeruns.tech/archives/721.html](https://blog.zeruns.tech/archives/721.html) - 移植好U8g2图形库的STM32F407标准库工程模板:[https://blog.zeruns.tech/archives/722.html](https://blog.zeruns.tech/archives/722.html) - 沁恒CH32V307VCT6最小系统板开源:[https://blog.zeruns.tech/archives/726.html](https://blog.zeruns.tech/archives/726.html) - LM25118自动升降压可调DCDC电源模块:[https://blog.zeruns.tech/archives/727.html](https://blog.zeruns.tech/archives/727.html) - EG1164大功率同步整流升压模块开源,最高效率97%:[https://blog.zeruns.tech/archives/730.html](https://blog.zeruns.tech/archives/730.html)
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
暂无
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP