基于LM35與Arduino的簡(jiǎn)易溫度檢測(cè)器:從原理到實(shí)現(xiàn)的完整指南
1. 項(xiàng)目緣起為什么我們需要一個(gè)“簡(jiǎn)易”的溫度檢測(cè)器最近在整理工作室的工具箱翻出來(lái)一堆閑置的電子元件其中幾個(gè)LM35溫度傳感器和Arduino Nano開(kāi)發(fā)板格外顯眼。看著它們我突然想到一個(gè)問(wèn)題我們身邊其實(shí)有很多場(chǎng)景需要一個(gè)簡(jiǎn)單、可靠、低成本的溫度監(jiān)測(cè)方案但市面上要么是功能復(fù)雜的智能設(shè)備要么是精度堪憂的廉價(jià)玩具。比如我想實(shí)時(shí)監(jiān)控一下3D打印機(jī)機(jī)箱內(nèi)部的溫度是否穩(wěn)定或者想看看陽(yáng)臺(tái)小溫室里的晝夜溫差又或者只是單純想給孩子做一個(gè)直觀的“溫度計(jì)”科學(xué)小項(xiàng)目。這些需求真的需要?jiǎng)虞m幾百塊、連接復(fù)雜App的智能家居設(shè)備嗎答案顯然是否定的。一個(gè)“簡(jiǎn)易溫度檢測(cè)器”的核心價(jià)值就在于此用最低的成本、最少的代碼和最簡(jiǎn)單的電路實(shí)現(xiàn)一個(gè)特定場(chǎng)景下的、可靠的溫度監(jiān)測(cè)功能。它不追求聯(lián)網(wǎng)、不追求大數(shù)據(jù)分析、甚至不追求極致的精度在合理誤差范圍內(nèi)它追求的是“夠用”和“可復(fù)現(xiàn)”。今天我就以手頭最常見(jiàn)的LM35傳感器和Arduino平臺(tái)為例帶大家從零開(kāi)始手搓一個(gè)這樣的檢測(cè)器并完成一份詳實(shí)的“報(bào)告”。這份報(bào)告不僅會(huì)告訴你接線和代碼怎么寫(xiě)更重要的是我會(huì)分享在實(shí)際制作和調(diào)試過(guò)程中那些容易踩的坑、參數(shù)選擇的考量以及如何讓這個(gè)簡(jiǎn)單的項(xiàng)目變得更穩(wěn)定、更實(shí)用。2. 核心器件選型LM35與Arduino為何是經(jīng)典組合工欲善其事必先利其器。選擇一個(gè)合適的溫度傳感器和微控制器是項(xiàng)目成功的第一步。市面上溫度傳感器很多像DS18B20單總線、DHT11溫濕度一體、熱電偶高溫等為什么我首選LM35搭配Arduino2.1 溫度傳感器LM35的“樸素”魅力LM35是一款模擬輸出型溫度傳感器它的工作方式非?!爸蹦小陛敵鲭妷号c攝氏溫度成線性正比比例系數(shù)是10mV/°C。這意味著在0°C時(shí)它輸出0mV。在25°C時(shí)它輸出250mV。在100°C時(shí)它輸出1000mV (1V)。這種線性關(guān)系帶來(lái)的最大好處就是計(jì)算極其簡(jiǎn)單。我們不需要像處理DS18B20那樣去解析復(fù)雜的數(shù)字信號(hào)協(xié)議也不需要像對(duì)待DHT11那樣嚴(yán)格遵循時(shí)序。只需要用單片機(jī)的ADC模數(shù)轉(zhuǎn)換器引腳讀取電壓值然后做一個(gè)簡(jiǎn)單的數(shù)學(xué)運(yùn)算溫度(°C) (讀取的電壓值V) * 100。注意這里隱含了一個(gè)前提你的單片機(jī)ADC參考電壓是穩(wěn)定的。對(duì)于Arduino Uno/Nano默認(rèn)使用板載的5V作為參考電壓AREF。如果這個(gè)5V電源有波動(dòng)測(cè)量結(jié)果就會(huì)漂移。這是模擬傳感器的一個(gè)共性弱點(diǎn)后文會(huì)講如何應(yīng)對(duì)。LM35的測(cè)量范圍是-55°C到150°C對(duì)于絕大多數(shù)室內(nèi)、電子設(shè)備監(jiān)控場(chǎng)景完全夠用。它的精度在室溫下典型值為±0.5°C也足以滿足“檢測(cè)”而非“計(jì)量”的需求。最關(guān)鍵的是它通常只需要三根線VCC, GND, 信號(hào)輸出電路連接簡(jiǎn)單到令人發(fā)指。2.2 Arduino平臺(tái)的“快速原型”優(yōu)勢(shì)Arduino在這里扮演的是大腦和ADC讀取器的角色。選擇它而不是更便宜的STM32或者更強(qiáng)大的ESP32主要是基于以下幾點(diǎn)考慮生態(tài)與易用性Arduino IDE上手門(mén)檻極低庫(kù)管理完善網(wǎng)上有海量的示例和社區(qū)支持。對(duì)于“簡(jiǎn)易”項(xiàng)目快速實(shí)現(xiàn)功能比追求極致性能更重要。ADC性能足夠Arduino Uno/Nano的ADC是10位精度意味著可以將0-5V的電壓分成1024份。對(duì)于LM35在0-150°C范圍內(nèi)對(duì)應(yīng)0-1.5V輸出動(dòng)態(tài)范圍被壓縮在了ADC量程的前30%。雖然分辨率不是最高但通過(guò)軟件濾波后文會(huì)講完全可以獲得穩(wěn)定的讀數(shù)。供電與接口方便USB供電即可方便連接電腦進(jìn)行數(shù)據(jù)監(jiān)控和調(diào)試。數(shù)字IO口和模擬口也足夠外接一個(gè)顯示屏或LED做輸出。為什么不選數(shù)字傳感器像DS18B20它抗干擾能力強(qiáng)精度高且支持一線總線串聯(lián)多個(gè)。但對(duì)于一個(gè)“簡(jiǎn)易”項(xiàng)目它的驅(qū)動(dòng)稍復(fù)雜需要精確的微秒級(jí)延時(shí)函數(shù)對(duì)新手不友好。LM35的“模擬直出”特性讓我們能把精力更多集中在數(shù)據(jù)處理和應(yīng)用邏輯上而非通信協(xié)議調(diào)試上。3. 從電路搭建到代碼編寫(xiě)手把手實(shí)現(xiàn)基礎(chǔ)功能理論說(shuō)再多不如動(dòng)手做一遍。我們先把最基本的功能跑通讀取溫度并通過(guò)串口打印出來(lái)。3.1 硬件連接圖與要點(diǎn)你需要準(zhǔn)備Arduino Uno/Nano 一塊LM35 傳感器 一個(gè)面包板 一塊杜邦線 若干連接方式如下以LM35 TO-92封裝引腳朝下平面對(duì)自己為例LM35 VCC引腳1- Arduino5V引腳。LM35 GND引腳3- ArduinoGND引腳。LM35 OUT引腳2- ArduinoA0模擬輸入引腳。重要提示踩坑點(diǎn)1有些LM35模塊或封裝不同的型號(hào)引腳定義可能不同。最穩(wěn)妥的方法是查閱你手中傳感器的數(shù)據(jù)手冊(cè)Datasheet。如果手頭沒(méi)有一個(gè)簡(jiǎn)單的判斷方法是上電后用手輕輕捏住傳感器用萬(wàn)用表測(cè)量哪個(gè)引腳對(duì)GND的電壓會(huì)上升那個(gè)就是信號(hào)輸出腳。電路非常簡(jiǎn)單但有一個(gè)細(xì)節(jié)常被忽略電源去耦。雖然LM35功耗很低但在面包板這種長(zhǎng)導(dǎo)線、接觸可能不良的環(huán)境中電源上的微小波動(dòng)會(huì)被ADC捕捉到導(dǎo)致讀數(shù)跳動(dòng)。一個(gè)簡(jiǎn)單的改進(jìn)是在LM35的VCC和GND之間就近焊接一個(gè)0.1uF的陶瓷電容可以很好地濾除高頻噪聲。3.2 核心代碼解析與初版實(shí)現(xiàn)打開(kāi)Arduino IDE輸入以下代碼// 定義LM35連接的模擬引腳 const int sensorPin A0; void setup() { // 初始化串口通信用于在電腦上顯示數(shù)據(jù) Serial.begin(9600); // 提示系統(tǒng)啟動(dòng) Serial.println(LM35 Temperature Sensor Start...); } void loop() { // 1. 讀取模擬值0-1023 int sensorValue analogRead(sensorPin); // 2. 將模擬值轉(zhuǎn)換為電壓值假設(shè)參考電壓為5V // Arduino的ADC是10位5V對(duì)應(yīng)1023 float voltage sensorValue * (5.0 / 1023.0); // 3. 將電壓值轉(zhuǎn)換為溫度值LM35: 10mV/°C float temperature voltage * 100.0; // 4. 通過(guò)串口輸出結(jié)果 Serial.print(Temperature: ); Serial.print(temperature); Serial.println( °C); // 延時(shí)1秒避免串口數(shù)據(jù)刷屏太快 delay(1000); }代碼逐行解讀analogRead(sensorPin)這是最關(guān)鍵的一步。Arduino的ADC將A0引腳上0-5V的電壓線性映射為一個(gè)0到1023的整數(shù)。這個(gè)值本身沒(méi)有單位我們稱(chēng)之為“ADC原始值”。voltage sensorValue * (5.0 / 1023.0)這是ADC的反向計(jì)算將原始值還原為實(shí)際的電壓值。5.0是默認(rèn)的參考電壓。這里用5.0而不是5是為了讓編譯器進(jìn)行浮點(diǎn)數(shù)運(yùn)算保證精度。temperature voltage * 100.0利用LM35的線性特性10mV/°C即0.01V/°C電壓乘以100得到攝氏度溫度。Serial輸出將結(jié)果打印到串口監(jiān)視器方便我們觀察。上傳代碼打開(kāi)串口監(jiān)視器波特率設(shè)為9600你應(yīng)該能看到每秒輸出一行的溫度數(shù)據(jù)。用手捏住傳感器溫度會(huì)上升吹口氣或放在冰袋旁溫度會(huì)下降。恭喜最基礎(chǔ)的功能實(shí)現(xiàn)了4. 精度提升與穩(wěn)定性?xún)?yōu)化從“能用”到“好用”基礎(chǔ)版本雖然能工作但你可能很快會(huì)發(fā)現(xiàn)兩個(gè)問(wèn)題1. 讀數(shù)在小范圍內(nèi)不停跳動(dòng)例如在24.5和25.1之間波動(dòng)。2. 測(cè)得的溫度可能和室內(nèi)溫度計(jì)有1-2°C的偏差。這就是“簡(jiǎn)易”和“可靠”之間的差距。下面我們來(lái)解決它。4.1 軟件濾波平滑跳動(dòng)的數(shù)據(jù)ADC讀取本身會(huì)引入噪聲電源波動(dòng)、電磁干擾都會(huì)導(dǎo)致單次讀數(shù)不準(zhǔn)。解決方法是對(duì)多次測(cè)量結(jié)果進(jìn)行數(shù)學(xué)處理即濾波。這里介紹兩種簡(jiǎn)單有效的軟件濾波方法。方法一移動(dòng)平均濾波思路很簡(jiǎn)單就是連續(xù)讀取N次然后取平均值。這能有效平滑隨機(jī)噪聲。const int sensorPin A0; const int numReadings 10; // 平均次數(shù) int readings[numReadings]; // 存儲(chǔ)讀數(shù)的數(shù)組 int readIndex 0; // 當(dāng)前讀數(shù)索引 int total 0; // 總和 float averageVoltage 0; // 平均電壓 void setup() { Serial.begin(9600); // 初始化數(shù)組全部置零 for (int thisReading 0; thisReading numReadings; thisReading) { readings[thisReading] 0; } } void loop() { // 減去最早的讀數(shù)加上最新的讀數(shù)實(shí)現(xiàn)滑動(dòng)窗口 total total - readings[readIndex]; readings[readIndex] analogRead(sensorPin); total total readings[readIndex]; readIndex readIndex 1; if (readIndex numReadings) { readIndex 0; // 到達(dá)數(shù)組末尾后歸零 } // 計(jì)算平均值 averageVoltage (total / numReadings) * (5.0 / 1023.0); float temperature averageVoltage * 100.0; Serial.print(Temperature: ); Serial.print(temperature); Serial.println( °C); delay(100); // 每次讀取間隔可以短一些但整體輸出頻率由這里控制 }方法二中值濾波有時(shí)會(huì)有偶發(fā)的、幅度很大的干擾脈沖比如附近開(kāi)關(guān)大功率設(shè)備平均值會(huì)被這種“野值”帶偏。中值濾波是取N次讀數(shù)排序后的中間值對(duì)脈沖噪聲抑制效果更好。Arduino社區(qū)有現(xiàn)成的庫(kù)也可以自己實(shí)現(xiàn)一個(gè)小數(shù)組的排序算法。實(shí)操心得對(duì)于溫度這種變化緩慢的量numReadings取10~20次結(jié)合100ms左右的采樣延遲效果就非常好了。你會(huì)看到串口數(shù)據(jù)變得非常穩(wěn)定。這是提升體驗(yàn)最直接的一步。4.2 校準(zhǔn)與參考電壓修正系統(tǒng)誤差即使數(shù)據(jù)穩(wěn)定了可能還存在一個(gè)固定的偏差。這主要來(lái)自?xún)蓚€(gè)地方LM35自身的誤差雖然典型精度是±0.5°C但個(gè)體有差異。Arduino的5V參考電壓不準(zhǔn)板載的5V穩(wěn)壓芯片輸出可能不是精確的5.00V可能是4.95V或5.05V。這會(huì)導(dǎo)致所有ADC讀數(shù)產(chǎn)生比例偏差。校準(zhǔn)方法你需要一個(gè)你認(rèn)為準(zhǔn)確的溫度計(jì)作為參考比如水銀溫度計(jì)、經(jīng)過(guò)校準(zhǔn)的數(shù)字溫度計(jì)。將LM35和參考溫度計(jì)置于同一個(gè)穩(wěn)定溫度環(huán)境中例如室內(nèi)靜止空氣等待至少10分鐘讓兩者充分達(dá)到熱平衡。讀取你的Arduino程序輸出的溫度值建議使用濾波后的穩(wěn)定值記錄為T(mén)_arduino。讀取參考溫度計(jì)的值記錄為T(mén)_ref。計(jì)算偏差offset T_ref - T_arduino。在代碼的溫度計(jì)算后加上這個(gè)偏移量temperature_calibrated temperature offset;。更進(jìn)階的方法是使用精準(zhǔn)的基準(zhǔn)電壓源。Arduino的ADC可以使用外部參考電壓(AREF引腳)。如果你有一個(gè)非常穩(wěn)定的3.3V或2.5V基準(zhǔn)源如REF3033芯片將其連接到AREF引腳并在setup()中加入analogReference(EXTERNAL);。這樣ADC的參考電壓就從波動(dòng)的5V變成了穩(wěn)定的基準(zhǔn)源從根本上提高了測(cè)量精度。計(jì)算電壓時(shí)的分母也要從5.0改為你提供的基準(zhǔn)電壓值如3.3。4.3 進(jìn)階優(yōu)化利用內(nèi)部基準(zhǔn)與睡眠模式對(duì)于電池供電的場(chǎng)景我們還需要考慮功耗。使用內(nèi)部基準(zhǔn)Arduino ATmega328P芯片有一個(gè)1.1V的內(nèi)部基準(zhǔn)電壓源精度一般但相對(duì)穩(wěn)定。如果你只關(guān)心0-100°C的范圍對(duì)應(yīng)LM35輸出0-1.0V可以將ADC參考電壓設(shè)置為內(nèi)部1.1VanalogReference(INTERNAL);。這樣ADC的1024個(gè)刻度對(duì)應(yīng)0-1.1V分辨率從約4.9mV/格(5V/1024)提升到約1.07mV/格理論分辨率提高了近5倍能更精細(xì)地分辨溫度變化。計(jì)算電壓的公式需相應(yīng)改為voltage sensorValue * (1.1 / 1023.0);。引入睡眠模式如果每秒鐘甚至每分鐘才需要一次數(shù)據(jù)可以讓Arduino在大部分時(shí)間里進(jìn)入深度睡眠僅在需要測(cè)量時(shí)被定時(shí)器喚醒。這可以將整體功耗從幾十mA降低到幾十μA用紐扣電池都能運(yùn)行數(shù)月。這需要用到avr/sleep.h庫(kù)并配置看門(mén)狗定時(shí)器作為喚醒源代碼會(huì)復(fù)雜一些但這是制作超低功耗無(wú)線傳感節(jié)點(diǎn)的關(guān)鍵一步。5. 功能擴(kuò)展從串口輸出到實(shí)體顯示與報(bào)警一個(gè)只在電腦上顯示的溫度檢測(cè)器實(shí)用性有限。我們給它加上“眼睛”和“嘴巴”。5.1 連接LCD1602顯示屏LCD1602是最常見(jiàn)的字符型液晶模塊可以顯示兩行每行16個(gè)字符。使用它需要連接較多線至少6根但庫(kù)的支持使得驅(qū)動(dòng)非常簡(jiǎn)單。接線基于常見(jiàn)的4位數(shù)據(jù)模式LCD RS - Arduino D12LCD E - Arduino D11LCD D4 - Arduino D5LCD D5 - Arduino D4LCD D6 - Arduino D3LCD D7 - Arduino D2LCD R/W - GND (始終寫(xiě)模式)LCD VSS - GNDLCD VCC - 5VLCD VO - 電位器中端 (用于調(diào)節(jié)對(duì)比度)LCD A (背光) - 5V (可通過(guò)電阻限流)LCD K (背光-) - GND代碼示例需安裝LiquidCrystal庫(kù)#include LiquidCrystal.h const int sensorPin A0; // 初始化液晶屏參數(shù)對(duì)應(yīng)(RS, E, D4, D5, D6, D7) LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); // 初始化16列2行的LCD lcd.print(Temp Monitor); // 開(kāi)機(jī)顯示標(biāo)題 delay(2000); lcd.clear(); } void loop() { int sensorValue analogRead(sensorPin); float voltage sensorValue * (5.0 / 1023.0); float temperature voltage * 100.0; // 顯示在第一行 lcd.setCursor(0, 0); lcd.print(Temperature:); // 顯示在第二行 lcd.setCursor(0, 1); lcd.print(temperature); lcd.print( C ); // 多加空格用于清除上次殘留字符 delay(1000); // 每秒更新一次 }現(xiàn)在你的溫度檢測(cè)器成了一個(gè)獨(dú)立的設(shè)備無(wú)需連接電腦即可查看實(shí)時(shí)溫度。5.2 添加聲光報(bào)警功能假設(shè)我們想監(jiān)控一個(gè)小冰箱溫度高于5°C就要報(bào)警。我們可以增加一個(gè)LED和一個(gè)蜂鳴器。接線LED正極 - Arduino D8 (通過(guò)一個(gè)220Ω限流電阻)LED負(fù)極 - GND蜂鳴器正極 - Arduino D9 (有源蜂鳴器直接驅(qū)動(dòng)無(wú)源的需用三極管或PWM)蜂鳴器負(fù)極 - GND代碼邏輯補(bǔ)充在loop()函數(shù)的溫度計(jì)算后添加// 報(bào)警邏輯 float upperThreshold 5.0; // 上限閾值 if (temperature upperThreshold) { digitalWrite(8, HIGH); // LED亮 tone(9, 1000); // 在引腳9上產(chǎn)生1000Hz的聲音無(wú)源蜂鳴器 // 如果有源蜂鳴器則是 digitalWrite(9, HIGH); lcd.setCursor(0, 1); // 在LCD上顯示警告信息 lcd.print(TOO HOT! ); } else { digitalWrite(8, LOW); // LED滅 noTone(9); // 停止發(fā)聲 // digitalWrite(9, LOW); // 有源蜂鳴器用這個(gè) }別忘了在setup()里用pinMode(8, OUTPUT);和pinMode(9, OUTPUT);初始化引腳。6. 項(xiàng)目報(bào)告撰寫(xiě)將過(guò)程轉(zhuǎn)化為可復(fù)現(xiàn)的文檔一個(gè)完整的項(xiàng)目除了做出實(shí)物一份清晰的報(bào)告同樣重要。它幫助你梳理思路也方便他人復(fù)現(xiàn)。一份好的“簡(jiǎn)易溫度檢測(cè)器報(bào)告”應(yīng)該包含以下部分1. 項(xiàng)目概述目標(biāo)明確說(shuō)明項(xiàng)目要解決的問(wèn)題如監(jiān)測(cè)3D打印機(jī)機(jī)箱內(nèi)部溫度。功能清單列出最終實(shí)現(xiàn)的功能如實(shí)時(shí)溫度顯示、超溫聲光報(bào)警、串口數(shù)據(jù)記錄。特點(diǎn)總結(jié)項(xiàng)目的亮點(diǎn)如低成本、高穩(wěn)定性、低功耗設(shè)計(jì)。2. 系統(tǒng)設(shè)計(jì)與原理系統(tǒng)框圖用文字描述信號(hào)流溫度物理量 - LM35傳感器轉(zhuǎn)換為電壓- Arduino ADC轉(zhuǎn)換為數(shù)字- 軟件處理濾波、計(jì)算- 輸出LCD/串口/報(bào)警。核心器件原理簡(jiǎn)述LM35的線性電壓輸出特性以及Arduino ADC的工作原理和分辨率。電路原理圖可以手繪或使用Fritzing等軟件繪制清晰的接線圖標(biāo)注所有元件和引腳連接。3. 硬件搭建詳述物料清單BOM以表格形式列出所有元件型號(hào)、數(shù)量、關(guān)鍵參數(shù)和用途。焊接/組裝步驟如果是焊接成品板描述焊接順序和注意事項(xiàng)如先焊矮元件再焊高元件LM35引腳加熱縮管防止短路。調(diào)試接口說(shuō)明指出哪部分是電源哪部分是信號(hào)方便后續(xù)排查。4. 軟件設(shè)計(jì)與實(shí)現(xiàn)開(kāi)發(fā)環(huán)境Arduino IDE版本、所需庫(kù)如LiquidCrystal。程序流程圖主程序loop的邏輯判斷過(guò)程。關(guān)鍵代碼段及注釋不要貼全部代碼只貼核心的配置、濾波算法、溫度計(jì)算和報(bào)警邏輯部分并配上詳細(xì)注釋解釋“為什么這么做”。參數(shù)調(diào)整記錄比如濾波窗口大小numReadings為什么選10報(bào)警閾值upperThreshold為什么設(shè)為5.0校準(zhǔn)偏移量offset是多少這些是基于實(shí)際測(cè)試得出的經(jīng)驗(yàn)值最有價(jià)值。5. 測(cè)試與數(shù)據(jù)分析測(cè)試方法如何測(cè)試的與什么設(shè)備對(duì)比環(huán)境條件如何數(shù)據(jù)記錄以表格形式展示在不同溫度點(diǎn)如冰水混合物、室溫、體溫附近下參考溫度計(jì)讀數(shù)與自制檢測(cè)器讀數(shù)的對(duì)比。誤差分析計(jì)算平均誤差、最大誤差并分析誤差可能來(lái)源傳感器本身、參考電壓、ADC量化誤差、熱傳導(dǎo)延遲等。穩(wěn)定性測(cè)試記錄設(shè)備在恒溫環(huán)境下長(zhǎng)時(shí)間如1小時(shí)的運(yùn)行數(shù)據(jù)觀察波動(dòng)范圍。6. 遇到的問(wèn)題與解決方案問(wèn)題1讀數(shù)跳動(dòng)大?,F(xiàn)象串口數(shù)據(jù)不停小范圍波動(dòng)。排查檢查電源是否穩(wěn)定接線是否牢固。解決引入軟件移動(dòng)平均濾波numReadings10后數(shù)據(jù)平滑。問(wèn)題2測(cè)量值整體偏高1.5°C?,F(xiàn)象與參考溫度計(jì)存在固定偏差。排查懷疑是LM35個(gè)體誤差或5V參考不準(zhǔn)。解決采用兩點(diǎn)校準(zhǔn)法增加一個(gè)偏移量offset -1.5。問(wèn)題3LCD顯示亂碼?,F(xiàn)象上電后屏幕顯示黑色方塊或不規(guī)則字符。排查對(duì)比度電位器未調(diào)節(jié)或接線順序錯(cuò)誤。解決調(diào)節(jié)VO引腳連接的電位器直到字符清晰仔細(xì)核對(duì)數(shù)據(jù)線D4-D7的連接順序。7. 總結(jié)與展望項(xiàng)目總結(jié)回顧是否達(dá)成最初目標(biāo)成本、性能是否符合預(yù)期。心得體會(huì)分享在硬件焊接、軟件調(diào)試、誤差分析中學(xué)到的最深刻的教訓(xùn)或技巧。改進(jìn)方向如果未來(lái)要升級(jí)可以考慮的方向如改用ESP32實(shí)現(xiàn)Wi-Fi數(shù)據(jù)上傳至手機(jī)增加SD卡模塊進(jìn)行長(zhǎng)時(shí)間數(shù)據(jù)記錄設(shè)計(jì)3D打印外殼使用鋰電池和充電模塊實(shí)現(xiàn)便攜化等。通過(guò)這樣一份報(bào)告你的“簡(jiǎn)易溫度檢測(cè)器”項(xiàng)目就不再只是一個(gè)玩具而是一個(gè)有始有終、可評(píng)估、可迭代的完整工程實(shí)踐。它體現(xiàn)了從需求分析、方案選型、實(shí)現(xiàn)調(diào)試到總結(jié)歸納的全過(guò)程這才是動(dòng)手做項(xiàng)目最大的收獲。

相關(guān)新聞

4年測(cè)試開(kāi)發(fā)經(jīng)驗(yàn),自動(dòng)化測(cè)試體系搭建

4年測(cè)試開(kāi)發(fā)經(jīng)驗(yàn),自動(dòng)化測(cè)試體系搭建

4年測(cè)試開(kāi)發(fā)經(jīng)驗(yàn),自動(dòng)化測(cè)試體系搭建 **四年磨一劍,自動(dòng)化測(cè)試體系的構(gòu)建與實(shí)踐** 在軟件開(kāi)發(fā)與維護(hù)的過(guò)程中,測(cè)試環(huán)節(jié)的重要性不言而喻。它確保了軟件的質(zhì)量和穩(wěn)定性,為軟件的持續(xù)改進(jìn)提供了有力的數(shù)據(jù)支持。隨著科技的進(jìn)步&…

2026/7/30 5:01:48 閱讀更多
華為OD機(jī)試“攀登者1”題解:狀態(tài)機(jī)與數(shù)組處理的實(shí)戰(zhàn)邏輯

華為OD機(jī)試“攀登者1”題解:狀態(tài)機(jī)與數(shù)組處理的實(shí)戰(zhàn)邏輯

1. 項(xiàng)目概述:從一道題看華為OD機(jī)試的實(shí)戰(zhàn)邏輯 最近在幫幾個(gè)準(zhǔn)備華為OD機(jī)試的朋友做模擬輔導(dǎo),發(fā)現(xiàn)一個(gè)挺有意思的現(xiàn)象:很多人一看到“攀登者1”這種題目,第一反應(yīng)是去網(wǎng)上搜現(xiàn)成的答案,或者直接套用一些經(jīng)典的動(dòng)態(tài)規(guī)劃?!?/p>

2026/7/30 5:01:48 閱讀更多
C++11 auto與范圍for循環(huán):現(xiàn)代C++編程的核心利器

C++11 auto與范圍for循環(huán):現(xiàn)代C++編程的核心利器

1. 項(xiàng)目概述&#xff1a;為什么我們需要 auto 和范圍 for 循環(huán)&#xff1f;如果你寫(xiě)過(guò)一段時(shí)間的 C&#xff0c;尤其是維護(hù)過(guò)一些老舊的代碼庫(kù)&#xff0c;你肯定對(duì)那種冗長(zhǎng)、重復(fù)的類(lèi)型聲明深?lèi)和唇^。想象一下&#xff0c;你面對(duì)一個(gè)std::map<std::string, std::vector<…

2026/7/30 5:01:48 閱讀更多
人形機(jī)器人進(jìn)工廠,缺的不是機(jī)器,是懂視覺(jué)的現(xiàn)場(chǎng)工程師

人形機(jī)器人進(jìn)工廠,缺的不是機(jī)器,是懂視覺(jué)的現(xiàn)場(chǎng)工程師

8臺(tái)人形機(jī)器人在一家平板工廠連續(xù)干了6天&#xff0c;質(zhì)檢成功率99.99%。同一時(shí)間&#xff0c;深職大悄悄掛牌了全國(guó)第一個(gè)職業(yè)本科"具身智能產(chǎn)業(yè)學(xué)院"。一邊是機(jī)器人拼命"上崗"&#xff0c;一邊是院校拼命"造人"——因?yàn)楝F(xiàn)階段最缺的&#xff0…

2026/7/30 6:01:52 閱讀更多
國(guó)產(chǎn)長(zhǎng)芯微LDC7124-8 替代 AD7124-8 參數(shù)對(duì)比分析

國(guó)產(chǎn)長(zhǎng)芯微LDC7124-8 替代 AD7124-8 參數(shù)對(duì)比分析

描述LDC7124-8是一款適合高精度測(cè)量應(yīng)用的低功耗、低噪聲、高度集成的模擬前端。該器件內(nèi)置一個(gè)低噪聲24位Σ-Δ型模數(shù)轉(zhuǎn)換器(ADC)&#xff0c;可通過(guò)寄存器配置提供8個(gè)差分輸入或15個(gè)單端或偽差分輸入。LDC7124-4可以提供4對(duì)差分輸入或者7個(gè)單端或偽差分輸入。片內(nèi)低噪聲增益放…

2026/7/30 6:01:52 閱讀更多
Elasticsearch在電商推薦系統(tǒng)中的應(yīng)用與優(yōu)化

Elasticsearch在電商推薦系統(tǒng)中的應(yīng)用與優(yōu)化

1. 分布式商品推薦系統(tǒng)的架構(gòu)挑戰(zhàn)在電商平臺(tái)的實(shí)際運(yùn)營(yíng)中&#xff0c;商品推薦系統(tǒng)面臨著三個(gè)核心難題&#xff1a;首先是如何處理海量商品數(shù)據(jù)的實(shí)時(shí)檢索&#xff0c;其次是保證高并發(fā)用戶請(qǐng)求下的系統(tǒng)響應(yīng)速度&#xff0c;最后是確保推薦結(jié)果的精準(zhǔn)度。傳統(tǒng)單體架構(gòu)在應(yīng)對(duì)這些…

2026/7/30 6:01:52 閱讀更多
國(guó)際知名 BPM / 工作流廠商有哪些,國(guó)產(chǎn) CCFlow / JFlow 有什么優(yōu)劣勢(shì)?

國(guó)際知名 BPM / 工作流廠商有哪些,國(guó)產(chǎn) CCFlow / JFlow 有什么優(yōu)劣勢(shì)?

國(guó)際知名 BPM / 工作流廠商有哪些&#xff0c;國(guó)產(chǎn) CCFlow / JFlow 有什么優(yōu)劣勢(shì)&#xff1f;文檔性質(zhì)&#xff1a;選型參考與能力畫(huà)像&#xff0c;非廠商宣傳稿。 對(duì)比范圍&#xff1a;Pegasystems、Appian、IBM、Software AG、Camunda、Flowable&#xff0c;以及國(guó)產(chǎn)馳騁 CCF…

2026/7/30 6:01:52 閱讀更多
5分鐘徹底掌握R3nzSkin換膚工具:從安裝到清理的完整指南

5分鐘徹底掌握R3nzSkin換膚工具:從安裝到清理的完整指南

5分鐘徹底掌握R3nzSkin換膚工具&#xff1a;從安裝到清理的完整指南 【免費(fèi)下載鏈接】R3nzSkin Skin changer for League of Legends (LOL) 項(xiàng)目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin R3nzSkin是一款專(zhuān)為《英雄聯(lián)盟》玩家設(shè)計(jì)的開(kāi)源換膚工具&#xff0c;通…

2026/7/30 5:51:52 閱讀更多
[GESP202606 四級(jí)] 掃雷

[GESP202606 四級(jí)] 掃雷

B4557 [GESP202606 四級(jí)] 掃雷 https://www.luogu.com.cn/problem/B4557 中國(guó)計(jì)算機(jī)學(xué)會(huì)&#xff08;CCF&#xff09;2026年6月C四級(jí)講解——掃雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四級(jí)] 掃雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:01:06 閱讀更多