在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在樹莓派上使用DS18B20來獲取溫度讀數

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-02 15:57 ? 次閱讀

概述

Raspbian發行版包括對DS18B20 1線溫度傳感器的支持。這些傳感器采用晶體管等小的三引腳封裝,是精確的數字設備。

在本課程中,您將學習如何在Raspberry Pi上使用DS18B20來獲取溫度讀數。

從Raspberry開始Pi沒有ADC模數轉換器),它不能直接使用TMP36之類的模擬溫度傳感器,這使得DS18B20成為溫度傳感的理想選擇。

硬件

DS18B20晶體管外形尺寸(TO-92)部件和防水有線型號的面包板布局如下所示。我們提供了較舊的20針和現代40針Raspberry Pi連接器的示例。此設置將適用于已發布的所有Raspberry Pi型號,但不包含突破接頭的Pi計算模塊除外。

DS18B20“ 1-wire”傳感器可以并聯連接-與出售的幾乎所有其他傳感器不同!所有傳感器都應共享相同的引腳,但是所有它們只需要一個4.7K電阻器

電阻器用作數據線的“上拉”,并且需要保持數據傳輸的穩定和快樂

請注意正確選擇DS18B20。彎曲的邊緣應位于左側,如下圖所示。如果使用錯誤的方法,它將變熱然后破裂。

DS18B20 +都是溫度傳感器,但與TMP36完全不同。您不能在本教程中使用TMP36!

40針(A,B,B +和零)Cobbler Plus原理圖

-Pin(Raspberry Pi版本1和版本2)補鞋匠示意圖

防水40針[黑色]

如果您使用的是DS18B20的防水版本,則該設備具有三根引線,紅色,黑色和黃色。不需要連接的裸銅屏蔽線。

防水20針[黑色]

高溫防水[白色]

如果使用我們出售的DS18B20的“高溫”版本,將橙色條紋連接到3.3V,白色連接到地面,藍色條紋是數據,引腳4。

您仍然需要?4.7K-10K從數據到3.3V的電阻

DS18B20

盡管DS18B20看起來像普通的晶體管,但實際上內部有很多東西。

該芯片包括特殊的1有線串行接口以及控制邏輯和溫度傳感器本身。

其輸出引腳發送數字消息,而Raspbian包括讀取這些消息的接口。一旦我們在Raspberry Pi上使用“ raspi-config”工具啟用了1-Wire,將在隨后的重啟中加載正確的內核模塊。

啟用1-Wire

下載:文件

復制代碼

sudo raspi-config sudo raspi-config

選擇接口選項

選擇 1-Wire 》

選擇是是是

退出raspi-config并重新啟動Pi,以便加載1-wire內核模塊。

下載:文件

復制代碼

sudo reboot sudo reboot

驗證是否在下次啟動時加載了1-Wire內核模塊。運行 lsmod 命令時,您應該會看到類似下面的輸出。

下載:文件

復制代碼

lsmod | grep -i w1_ lsmod | grep -i w1_

軟件

Python程序處理任何失敗的消息,并每秒報告攝氏度和華氏溫度。

下載:Project Zip 或 thermometer.py | 在Github上查看

復制代碼

import glob

import time

base_dir = ‘/sys/bus/w1/devices/’

device_folder = glob.glob(base_dir + ‘28*’)[0]

device_file = device_folder + ‘/w1_slave’

def read_temp_raw():

f = open(device_file, ‘r’)

lines = f.readlines()

f.close()

return lines

def read_temp():

lines = read_temp_raw()

while lines[0].strip()[-3:] != ‘YES’:

time.sleep(0.2)

lines = read_temp_raw()

equals_pos = lines[1].find(‘t=’)

if equals_pos != -1:

temp_string = lines[1][equals_pos+2:]

temp_c = float(temp_string) / 1000.0

temp_f = temp_c * 9.0 / 5.0 + 32.0

return temp_c, temp_f

while True:

print(read_temp())

time.sleep(1)

import glob

import time

base_dir = ‘/sys/bus/w1/devices/’

device_folder = glob.glob(base_dir + ‘28*’)[0]

device_file = device_folder + ‘/w1_slave’

def read_temp_raw():

f = open(device_file, ‘r’)

lines = f.readlines()

f.close()

return lines

def read_temp():

lines = read_temp_raw()

while lines[0].strip()[-3:] != ‘YES’:

time.sleep(0.2)

lines = read_temp_raw()

equals_pos = lines[1].find(‘t=’)

if equals_pos != -1:

temp_string = lines[1][equals_pos+2:]

temp_c = float(temp_string) / 1000.0

temp_f = temp_c * 9.0 / 5.0 + 32.0

return temp_c, temp_f

while True:

print(read_temp())

time.sleep(1)

接下來的三行,從中找到文件

下載:文件

復制代碼

def read_temp_raw():

catdata = subprocess.Popen([‘cat’,device_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

out,err = catdata.communicate()

out_decode = out.decode(‘utf-8’)

lines = out_decode.split(‘ ’)

return lines def read_temp_raw():

catdata = subprocess.Popen([‘cat’,device_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)

out,err = catdata.communicate()

out_decode = out.decode(‘utf-8’)

lines = out_decode.split(‘ ’)

return lines

讀取溫度是通過兩個函數進行的,read_temp_raw只是從接口獲取消息的兩行。 read_temp函數會對此進行總結,以檢查是否有錯誤消息,然后重試直到收到第一行末尾帶有“ YES”的消息。該函數返回兩個值,第一個為攝氏度,第二個為華氏。

如果希望將這兩個值分開,如下例所示:

下載:文件

復制代碼

deg_c, deg_f = read_temp() deg_c, deg_f = read_temp()

程序的主循環只是循環,讀取溫度并打印,然后睡眠一秒鐘。

要將程序上傳到Raspberry Pi上,可以使用 SSH連接到Pi ,使用以下行啟動編輯器窗口:

下載:文件

復制代碼

nano thermometer.py nano thermometer.py

,然后粘貼上面的代碼,然后使用CTRL-保存文件x和Y。

配置和測試

該程序必須以超級用戶身份運行,因此在終端中鍵入以下命令以啟動該程序:

下載:文件

復制代碼

sudo python thermometer.py sudo python thermometer.py

如果一切順利,您將看到一系列讀數,如下所示:

嘗試將手指放在傳感器上進行加熱。

添加更多傳感器

您可以并行添加其他DS18B20傳感器-將所有傳感器的VCC,數據和接地引腳連接在一起。使用一個4.7K電阻。您將看到多個 /sys/bus/w1/ devices/28-nnnnn 目錄,每個目錄都有唯一的序列號作為目錄名。 python示例代碼現在僅適用于一個傳感器,因此如果您希望一次從不同的傳感器讀取它,則必須對其進行修改
責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • DS18B20
    +關注

    關注

    10

    文章

    782

    瀏覽量

    81726
  • 樹莓派
    +關注

    關注

    118

    文章

    1895

    瀏覽量

    106436
收藏 人收藏

    評論

    相關推薦

    基于FPGA的DS18B20數字溫度傳感器測溫實例

    本文將使用三段式狀態機(Moore型)的寫法DS18B20進行測溫操作,以便了解DS18B20和熟悉三段式狀態機的寫法。
    的頭像 發表于 03-17 11:06 ?975次閱讀
    基于FPGA的<b class='flag-5'>DS18B20</b>數字<b class='flag-5'>溫度</b>傳感器測溫實例

    DS18B20實時溫度傳感器中文資料

    DS18B20 是一種單總線數字溫度傳感器,它被廣泛應用于各種領域,例如氣象監測、室內溫度控制、工業自動化等。DS18B20 采用了單總線接口(One-Wire Interface),
    發表于 02-28 17:02 ?5次下載

    基于FPGA的溫度傳感器(ds18b20)驅動設計

    本篇主要討論基于FPGA的溫度傳感器(ds18b20)驅動設計---第一版 設計實現:利用FPGA驅動DS18b20,讀取到溫度數值顯示到數碼管上。 首先介紹
    的頭像 發表于 01-16 14:08 ?750次閱讀
    基于FPGA的<b class='flag-5'>溫度</b>傳感器(<b class='flag-5'>ds18b20</b>)驅動設計

    《DNESP32S3使用指南-IDF版_V1.6》第二十九章 DS18B20實驗

    第二十九章 DS18B20實驗 本章,我們將介紹ESP32-S3如何讀取外部溫度傳感器的溫度,來得到較為準確的環境溫度。我們將學習單總線技術,通過它
    發表于 12-25 09:43

    CW32模塊使用 DS18B20溫度傳感器

    DS18B20數字溫度傳感器提供9位至12位精度的溫度測量,并具有非易失性用戶可編程上下觸發點報警功能。DS18B20通過單總線通信,根據定義,只需要一條數據線(和地線)即可與單片機通
    的頭像 發表于 11-26 17:47 ?495次閱讀
    CW32模塊使用 <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b>傳感器

    DS18B20溫度傳感器的工作原理和硬件設計

    通過本文可以了解DS18B20溫度傳感器工作原理、硬件設計、DS18B20單總線接口驅動編寫。
    的頭像 發表于 10-24 14:38 ?6911次閱讀
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b>傳感器的工作原理和硬件設計

    ds18b20傳感器的使用方法

    DS18B20是一種廣泛使用的數字溫度傳感器,它基于1-Wire(單總線)通信協議。這種傳感器因其高精度、易用性和低成本而受到歡迎。 DS18B20傳感器簡介 DS18B20是由Max
    的頭像 發表于 10-18 14:52 ?1926次閱讀

    ds18b20溫度傳感器怎么接線

    DS18B20是一種廣泛使用的數字溫度傳感器,它基于1-Wire(一線)通信協議工作。這種傳感器因其高精度、易用性和低成本而受到歡迎。 DS18B20傳感器引腳介紹 DS18B20有三
    的頭像 發表于 10-18 14:50 ?3073次閱讀

    ds18b20溫度傳感器如何使用

    DS18B20是一款廣泛使用的數字溫度傳感器,它具有高精度、低功耗和易于使用的特點。 DS18B20溫度傳感器簡介 DS18B20是由Max
    的頭像 發表于 09-03 16:51 ?1215次閱讀

    ds18b20溫度傳感器是什么類型

    DS18B20溫度傳感器是一種數字溫度傳感器,它屬于單總線(One-Wire)數字溫度傳感器類型。這意味著它僅需要一根數據線(加上電源線和地線,共三根線)就能與微處理器或其他數字電路進
    的頭像 發表于 09-03 16:46 ?1644次閱讀

    ds18b20溫度傳感器和dht11的區別

    進行通信。這種傳感器可以提供9位到12位的數字溫度讀數,精度非常高。DS18B20的工作原理是通過測量其內部溫度傳感器的電壓變化計算
    的頭像 發表于 09-03 16:44 ?3223次閱讀

    STC32和STC8H驅動DS18B20測溫串口發送數據

    STC32G12K128 和 STC8H8K64U 驅動 DS18B20 模塊,采集環境溫度并通過串口發送數據至電腦
    的頭像 發表于 06-27 16:27 ?1229次閱讀
    STC32和STC8H驅動<b class='flag-5'>DS18B20</b>測溫串口發送數據

    基于51單片機煙霧及DS18B20溫度檢測設計

    本資源內容概要:? ? ? ?這是基于51單片機煙霧及DS18B20溫度檢測設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單(excel
    發表于 06-27 11:33 ?0次下載

    基于51單片機DS18B20溫度采集1602液晶顯示報警設計

    本資源內容概要:? ? ? ?這是基于51單片機DS18B20溫度采集1602液晶顯示報警設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件
    發表于 06-25 10:16 ?0次下載

    DS18B20溫度傳感器工作原理

    ,DS18B20以其獨特的工作原理、卓越的技術參數和廣泛的應用場景,成為了市場的明星產品。 深入了解DS18B20的工作原理 DS18B20溫度傳感器的工作原理基于熱敏電阻的特性和數字
    的頭像 發表于 06-19 16:01 ?1817次閱讀
    主站蜘蛛池模板: 国产亚洲人成网站观看 | 97理论三级九七午夜在线观看 | 你懂的网站在线 | 中文字幕一区二区三区免费看 | 在线观看免费国产 | 夜夜爱夜夜爽夜夜做夜夜欢 | 2021久久天天躁狠狠躁夜夜 | 久久午夜神器 | 日韩高清成人毛片不卡 | 黄篇网站在线观看 | 在线免费看片 | 亚洲a在线播放 | 午夜日韩在线 | 在线观看国产精美视频 | 国产毛片农村妇女系列 | 在线免费国产 | 久久久久久久国产 | 精品国产成人三级在线观看 | 免费视频在线视频观看1 | 男人日女人免费视频 | 高清视频 一区二区三区四区 | 久久婷婷国产精品香蕉 | 欧美不卡1卡2卡三卡老狼 | 性欧美护士18xxxxhd | 天天爱天天色 | 四虎影视大全免费入口 | 久久国产高清字幕中文 | 午夜视频在线观看完整高清在线 | www在线小视频免费 www资源 | 国产精品久久久久久久人热 | 亚洲国产综合久久精品 | 视频1区 | 国产精品自线在线播放 | 速度与激情在线 | a毛片成人免费全部播放 | 丁香婷婷久久大综合 | 欧美熟色妇 | 欧美一区二区三区四区视频 | 老色批午夜免费视频网站 | 亚洲黄色录像 | 四虎影院在线免费观看视频 |