• <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>

    24小時(shí)聯(lián)系電話(huà):18217114652、13661815404

    中文

    您當前的位置:
    首頁(yè)>
    電子資訊>
    行業(yè)資訊>
    帶有 ESP8266 和 DS18...

    行業(yè)資訊

    帶有 ESP8266 和 DS18B20 的 WIFI 溫度監控器


    帶有 ESP8266 DS18B20 WIFI 溫度監控器

    今天,我們將創(chuàng )建一個(gè)wifi溫度監控系統。對于讀數,我們將使用 DS18B20 傳感器。對于數據處理和網(wǎng)頁(yè)創(chuàng )建,我們將使用我們已知的 ESP8266。

    該項目將建設如下:

    電路組裝

    讀取 DS18B20 傳感器的代碼(我們將使用串行進(jìn)行測試)。

    創(chuàng )建網(wǎng)頁(yè)(我們將使用 SPIFFS 存儲在 FLASH 中)。

    但首先,讓我們了解一下傳感器及其使用的通信模型。

    DS18B20

    DS18B20是一款精度好、定制性好、實(shí)用、可靠、成本低的數字溫度傳感器。組合好?

    傳感器監測范圍內的溫度:-55°C +125°C-67°F +257°F),在 -10°C +85°C 的范圍內精度為 +-0.5°C (在該范圍之外,這種不準確性會(huì )增加,但沒(méi)什么可笑的)。

    它使用三個(gè)引腳進(jìn)行操作:

    VDD(電源)

    GND(接地)

    DQ(數字通信)

    VDD 3V 5.5V 的值工作,甚至可以省略。傳感器具有寄生模式,僅使用 DQ GND 引腳,其電源來(lái)自通信引腳。這種模式效果很好,但更容易受到噪音的影響。

    數據通信使用 DQ 引腳通過(guò) 1-Wire (OneWire) 協(xié)議進(jìn)行。我們稍后將討論該協(xié)議,但現在重要的是要知道,盡管只有一根電線(xiàn),但它允許雙向通信。

    讀取是主動(dòng)執行的,微控制器發(fā)送命令并接收回包含信息的數據包。

    除了讀取請求,傳感器還可以接收報警配置和數據格式命令。DallasTemperature 庫已經(jīng)為我們處理了大部分。包括為我們提供一些附加功能,例如在法拉第接收讀數。

    市場(chǎng)上最常見(jiàn)的型號是TO-92封裝(看起來(lái)像晶體管)和防水封裝。由于其實(shí)際應用,這第二種更常見(jiàn),1m 長(cháng)的帶不銹鋼尖端的電纜。例如,它可用于控制水溫。讀取是主動(dòng)執行的,微控制器發(fā)送命令并接收回包含信息的數據包。

    除了讀取請求,傳感器還可以接收報警配置和數據格式命令。DallasTemperature 庫已經(jīng)為我們處理了大部分。包括為我們提供一些附加功能,例如在法拉第接收讀數。

    市場(chǎng)上最常見(jiàn)的型號是TO-92封裝(看起來(lái)像晶體管)和防水封裝。由于其實(shí)際應用,這第二種更常見(jiàn),1m 長(cháng)的帶不銹鋼尖端的電纜。例如,它可用于控制水溫。

    單線(xiàn)

    OneWire(或 1-Wire)是由 Dallas Semiconductor 設計的一種通信方法,它僅使用一條線(xiàn)路傳輸數據,并帶有發(fā)送誰(shuí)和何時(shí)發(fā)送的信號系統。

    該方法與 i2C 非常相似,但它的數據傳輸速度要有限得多。另一個(gè)區別是在 1-wire 的情況下,可以省略電源引腳,在寄生模式下使用數據引腳(現在,您可能已經(jīng)注意到,盡管名稱(chēng)如此,該方法至少需要兩條線(xiàn):數據和地)。

    通信在主從模式下完成,其中微控制器發(fā)送所有請求,其他設備僅在名義上請求時(shí)發(fā)送數據。

    每個(gè)設備都有一個(gè)唯一的地址/名稱(chēng)。這允許我們在同一條數據線(xiàn)上連接多個(gè)設備。請求以廣播方式發(fā)送,在其中識別自身的設備會(huì )做出響應。

    電路

    我們應用的電路很簡(jiǎn)單。我們將傳感器的 VDD 引腳連接到 NodeMCU 3V3,GND GND,我們將使用 D4 引腳作為傳感器數據。它可以是任何其他數字引腳。

    此外,必須在數據引腳和 3V3 之間放置一個(gè) 4k7 歐姆電阻以增加穩定性。

    查找 DS18B20 地址

    正如我們之前看到的,每個(gè)傳感器都有一個(gè)唯一的地址,這個(gè)地址對于通信至關(guān)重要。我們可以將其理解為制造序列號。但是如何識別這個(gè)數字呢?

    我們將創(chuàng )建一個(gè)幫助程序代碼來(lái)查找此地址。在這種情況下,代碼會(huì )掃描連接到引腳 D4 的任何設備。我們將使用串行監視器來(lái)可視化結果。

    我們從導入 OneWire DallasTemperature 庫開(kāi)始(不要忘記維護順序)。如果出現任何導入錯誤,您可以將它們添加到 Arduino IDE 的庫管理器中。

    接下來(lái),我們在引腳 D4 上啟動(dòng)一個(gè) OneWire 對象,并使用該對象創(chuàng )建一個(gè)傳感器。從那一刻起,傳感器對象具有 DallasTemperature 庫提供的所有屬性和功能。

    我們將使用兩個(gè)函數 Search(),它執行 OneWire 中的設備搜索,以及 reset_search() 重新開(kāi)始搜索。

    我們的代碼所做的是開(kāi)始搜索,將結果保存在 addr 變量中,如果變量不為空,則將其寫(xiě)入串行中。

    我們在串行監視器上找到了結果。如果有其他設備,它們也會(huì )出現在這里。留下地址,我們會(huì )需要的。

    串行監視器讀取傳感器

    現在我們知道了傳感器的地址。讓我們開(kāi)始讀取溫度的主要代碼。這里的目標是啟動(dòng)傳感器并每 10 秒讀取一次讀數。

    我們以同樣的方式開(kāi)始,但這次我們使用收集到的地址創(chuàng )建了 sensor1 變量。

    readDs18b20() 函數中,我們將使用兩個(gè)函數:

    requestTemperatures() – 此函數不專(zhuān)門(mén)與任何傳感器通信,而是與所有傳感器通信。就像它說(shuō)的:如果你是 ds18b20,現在運行一個(gè)新的讀取并等待我的以及傳感器的作用。

    getTempC(address) – 在這里,我們將信息定向到每個(gè)感興趣的傳感器,這些傳感器以最后的讀數響應我們

    Setup() 函數中,我們使用 begin() 函數啟動(dòng)傳感器,它會(huì )自動(dòng)執行讀數,如果您沒(méi)有發(fā)出新請求,傳感器仍會(huì )響應 getTemp() 函數,但會(huì )使用過(guò)時(shí)的值。

    在循環(huán)中,我們有一個(gè)帶有 millis() 函數的計時(shí)器,以便每 10 秒讀取一次。

    在串行監視器上,我們應該得到以下結果:

    請注意,在第 15 行,我們向 Serial.println() 函數添加了另一個(gè)參數。有了這個(gè),我們定義了小數位數。

    創(chuàng )建監控頁(yè)面

    準備好閱讀后,讓我們創(chuàng )建一個(gè)網(wǎng)頁(yè)以在瀏覽器中查看此信息。請記住,稍后我們會(huì )將這些文件放在帶有 SPIFFS FLASH ESP8266 中。

    我們將構建以下屏幕:

    為此,我們將使用兩個(gè)文件:

    索引.html

    樣式文件

    頁(yè)面結構不是本文的重點(diǎn),但基本上,我們有 index.html 文件創(chuàng )建頁(yè)面本身并觸發(fā)一個(gè) javascript 函數來(lái)更新閱讀。

    style.css 文件改進(jìn)了頁(yè)面的外觀(guān),但不影響其功能。

    兩個(gè)文件都必須在項目文件夾內的數據文件夾中,并使用 ESP8266 Sketch Data Upload 傳輸。

    完整代碼

    將頁(yè)面保存到 FLASH 后,我們需要創(chuàng )建為頁(yè)面提供服務(wù)的結構。

    wifi 上連接

    創(chuàng )建一個(gè)網(wǎng)絡(luò )服務(wù)器

    為對此的請求創(chuàng )建回調

    這一步對我們來(lái)說(shuō)并不新鮮,但有幾點(diǎn)值得注意。

    現在 readDs18b20() 函數也更新了一個(gè) String 類(lèi)型的變量。我們這樣做是因為服務(wù)器回調函數不接受整數或浮點(diǎn)變量。

    對于服務(wù)器,我們有三個(gè)路由:

    “/”將發(fā)送帶有最新傳感器讀數的 html 文件。

    “/styled.css” 將發(fā)送 css 文件

    “/state”將返回要更新的溫度變量。

    請輸入搜索關(guān)鍵字

    確定
    色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
  • <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>