chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用Raspberry Pi和傳感器制作“可自動營造舒適空間的裝置” 第二部分

呂鋼格 ? 來源:羅姆 ? 作者:羅姆 ? 2023-03-01 11:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家好,我是吉田!
我們這次要?jiǎng)?chuàng)作一款讓家中更舒適、讓在家辦公更高效的設(shè)備,本文是第二部分。第一部分介紹了制作綱要和所需部件。這次我們將實(shí)際連接Bluetooth傳感器和Raspberry Pi。使用羅姆SensorMedal,您甚至可以遠(yuǎn)程輕松地將傳感器值共享給Raspberry Pi!

pYYBAGPzGSyASspjAAG_TBVpFfg091.jpg

本部分所需部件

Raspberry Pi 3 B+ 或 Raspberry Pi 4 Model B

poYBAGPzGsaAP1GPAACgjfKDWVg250.jpg

Raspberry Pi 3 B+

poYBAGPzGsmAPwNLAACvO9u33bY417.jpg

Raspberry Pi 4 Model B

羅姆SensorMedal(SensorMedal-EVK-002)

poYBAGPzGsyAZvoKAAB6V-XqblY393.jpg

手機(jī)電池

pYYBAGPzGpiAWSk2AAA4faohBjA382.jpg

USB設(shè)備

使用100日元商店就能買到的USB迷你燈和迷你風(fēng)扇等物件

poYBAGPzGpyAD08DAAE81HV2ez4907.jpg

本部分的流程

羅姆SensorMedal與Raspberry Pi的BLE連接

Raspberry Pi的USB控制

使用傳感器值讓硬件工作的程序

總結(jié)

1. 羅姆SensorMedal與Raspberry Pi的BLE連接

在第一部分中,我將羅姆SensorMedal連接到我的智能手機(jī)上并顯示了結(jié)果。在本項(xiàng)目中,Raspberry Pi將作為接收數(shù)據(jù)的航空母艦使用,所以在第二部分中,我們將通過Raspberry Pi的Bluetooth功能連接SensorMedal。

首先,安裝的Python程序bluepy,以便進(jìn)行Raspberry Pi的Bluetooth連接。

pi@raspberrypi:~ $ sudo pip3 install bluepy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting bluepy
  Downloading https://www.piwheels.org/simple/bluepy/bluepy-1.3.0-cp37-cp37m-linux_armv7l.whl (560kB)
    100% |████████████████████████████████| 563kB 608kB/s 
Installing collected packages: bluepy
Successfully installed bluepy-1.3.0

然后,開啟SensorMedal和Raspberry Pi的電源,并將它們放在附近。

poYBAGPzGwiAbb4UAALrUmcJRDA619.jpg

通過Bluetooth將SensorMedal連接到Raspberry Pi。有一個(gè)可以顯示來自SensorMedal的數(shù)值的方便程序,我們直接下載這個(gè)程序即可(我使用的是這里的Github)。

pi@raspberrypi:~ $  sudo mkdir Programs
pi@raspberrypi:~ $  cd Programs
pi@raspberrypi:~ $  sudo git clone http://github.com/bokunimowakaru/SensorMedal2

打開已下載的SensorMedal2文件夾,并執(zhí)行以下示例程序。這個(gè)需要在Python 3中使用sudo權(quán)限執(zhí)行。

pi@raspberrypi:~ $  cd SensorMedal2
pi@raspberrypi:~ $  sudo python3 ble_logger_SensorMedal2.py

怎么樣?是不是很簡單?如下圖所示,從Raspberry Pi能夠很輕松地看到SensorMedal傳來的測量值。

pYYBAGPzGxGAcR2gAASQ-D3uNYw245.png

SensorMedal中共內(nèi)置6種傳感器。每種傳感器的含義如下,使用這些傳感器可以測量并獲取相應(yīng)的數(shù)值。

Temperature: 溫度(℃)

Humidity: 濕度(%)

Pressure: 氣壓(hPa)

Illuminance: 亮度(lx)

Accelerometer: 加速度(x軸、y軸、z軸)(g)

Geomagnetic: 陀螺儀傳感器值(x軸、y軸、z軸)(uT)

Magnetic: 霍爾傳感器值(磁鐵在附近通過為1,否則為0)

Steps: 步數(shù)(步)

Battery Level: 電池電量

2. Raspberry Pi的USB 控制

我們已經(jīng)非常輕松地獲得了傳感器的值,現(xiàn)在,讓我們使用這些值來控制與Raspberry Pi連接的硬件吧。
先來實(shí)現(xiàn)第一部分中提到的“要是能自動搞定就好了(要是有這些功能就好了)”列表中的以下兩項(xiàng)。

編號 檢測功能 檢測后希望具備的功能
1 檢測房間的溫度 根據(jù)室溫控制風(fēng)扇等
2 檢測工作臺周圍的亮度 亮度不夠時(shí)自動開燈

亮度會因天氣變化和房間情況而發(fā)生變化。如果亮度不夠還繼續(xù)工作的話,眼睛會很疲勞,所以我們使用SensorMedal的亮度值——Illiminance(lx)。亮度(光照強(qiáng)度)的單位是“勒克斯”。白天房間的亮度約為200?300(lx)。

測好亮度后,我們用一個(gè)USB迷你燈來實(shí)現(xiàn)亮度不足時(shí)自動開燈的功能。如下圖所示,將迷你燈插入Raspberry Pi的 USB端口。

poYBAGPzGxWABiMjAAHdLbsqv50587.jpg

安裝一個(gè)庫來控制USB,讓它可以根據(jù)亮度開燈和關(guān)燈。如下所示,下載并安裝庫文件。

pi@raspberrypi:~ $  wget https://www.gniibe.org/oitoite/ac-power-control-by-USB-hub/hub-ctrl.c
pi@raspberrypi:~ $  sudo apt-get install libusb-dev
pi@raspberrypi:~ $  gcc -o hub-ctrl hub-ctrl.c -lusb

現(xiàn)在,就可以通過命令打開和關(guān)閉插入U(xiǎn)SB端口的設(shè)備啦。這個(gè)“hub-ctrl”的使用方法為“hub-ctrl -b [Bus Num] -d [Device Num] -P [Port Num] -p [On:1 / Off:0] ”。使用“l(fā)susb -t”命令獲取設(shè)備連接信息。在這里,Bus num: 1, Device num: 2, USB端口的Port num為2。

pi@raspberrypi:~ $  hub-ctrl
Hub #0 at 001:002
 INFO: individual power switching.
 WARN: Port indicators are NOT supported.
Hub #1 at 001:001
 INFO: ganged switching.
 WARN: Port indicators are NOT supported.

pi@raspberrypi:~ $  lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
        |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M

如下所示,在“-p”后置“0”將關(guān)閉電源,置“1”則打開電源。

pi@raspberrypi:~ $  sudo hub-ctrl -b 1 -d 2 -P 2 -p 0
pi@raspberrypi:~ $  sudo hub-ctrl -b 1 -d 2 -P 2 -p 1

poYBAGPzGxqAVGlQAAGRquEa67g590.jpg

這是指定“-p 1”時(shí)的狀態(tài)。連接到USB端口的燈亮了

3.使用傳感器值讓硬件工作的程序

下面,我們將創(chuàng)建程序,把來自SensorMedal的數(shù)值與USB控制關(guān)聯(lián)起來。
基本上,可以使用前面下載的 SensorMedal2 程序。

pi@raspberrypi:~ $  sudo cp ble_logger_SensorMedal2.py ble_illum.py

我在原程序基礎(chǔ)上,添加了下述第9行和第78?85行的內(nèi)容。當(dāng)亮度低于300lx時(shí),讓燈點(diǎn)亮。當(dāng)亮度高于該值時(shí),讓燈熄滅。

#!/usr/bin/env python3
# coding: utf-8

from __future__ import (division, absolute_import, print_function,
                                unicode_literals)
import fcntl
import socket
import struct
import os

def get_addr(ifname):
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        return socket.inet_ntoa(
            fcntl.ioctl(
                s.fileno(),
                0x8915,  # SIOCGIFADDR
                struct.pack('256s', ifname[:15].encode('utf-8')))[20:24])
    except IOError:
        return 'Not Found!'

interval = 10 # 工作間隔

from bluepy import btle
from sys import argv
import getpass
from time import sleep

def payval(num, bytes=1, sign=False):
    global val
    a = 0
    for i in range(0, bytes):
        a += (256 ** i) * int(val[(num - 2 + i) * 2 : (num - 1 + i) * 2],16)
    if sign:
        if a >= 2 ** (bytes * 8 - 1):
            a -= 2 ** (bytes * 8)
    return a

scanner = btle.Scanner()
while True:    
    try:
        devices = scanner.scan(interval)
    except Exception as e:
        print("ERROR",e)
        if getpass.getuser() != 'root':
            print('使用方法: sudo', argv[0])
            exit()
        sleep(interval)
        continue

    for dev in devices:
        print("nDevice %s (%s), RSSI=%d dB" % (dev.addr, dev.addrType, dev.rssi))
        isRohmMedal = False
        sensors = dict()
        for (adtype, desc, val) in dev.getScanData():
            print("  %s = %s" % (desc, val))
            if desc == 'Short Local Name' and val[0:10] == 'ROHMMedal2':
                isRohmMedal = True
            if isRohmMedal and desc == 'Manufacturer':

                # 將傳感器值代入字典變量sensors
                sensors['ID'] = hex(payval(2,2))
                sensors['Illuminance'] = payval(25,2) / 1.2
                sensors['Battery Level'] = payval(30)
                sensors['RSSI'] = dev.rssi

                # 在畫面中顯示
                print('    ID            =',sensors['ID'])
                print('    Illuminance   =',round(sensors['Illuminance'],1),'lx')
                print('    Battery Level =',sensors['Battery Level'],'%')
                print('    RSSI          =',sensors['RSSI'],'dB')

                '''
                for key, value in sorted(sensors.items(), key=lambda x:x[0]):
                    print('    ',key,'=',value)
                '''

                illum = sensors['Illuminance']
                if illum < 300:
                    illum_msg = "Dark!"
                    os.system(“sudo hub-ctrl -b 1 -d 2 -P 2 -p 1”)
                else:
                    illum_msg = "Bright"
                    os.system(“sudo hub-ctrl -b 1 -d 2 -P 2 -p 0”)
                print(illum_msg)
                sleep(interval)

通過sudo python3 ble_illum.py運(yùn)行該程序。

poYBAGPzGyGAcElzAATR13lH_js780.png

我們測試一下,如右側(cè)照片所示,用手遮蓋SensorMedal,傳感器測得的亮度變暗,USB燈能夠獲取傳感器的值并且很聽話地自動開燈!

pYYBAGPzGySAOufjAAFsd4crlTc489.jpg

4. 總結(jié)

在這部分中,我們嘗試用BLE連接了羅姆SensorMedal和Raspberry Pi。我想大家已經(jīng)了解到,從遠(yuǎn)處獲取各種傳感器數(shù)據(jù)是非常容易的事。
通過6種傳感器,不僅可以檢測亮度,還可以獲取溫濕度、氣壓和加速度等數(shù)據(jù)。測量辦工桌或房間里的各種數(shù)據(jù),可能是件很有趣的事。
在下一部分,我想通過添加人體傳感器等器件,讓在家辦公環(huán)境更加舒適。
敬請期待!

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2577

    文章

    55436

    瀏覽量

    793673
  • Raspberry Pi
    +關(guān)注

    關(guān)注

    2

    文章

    622

    瀏覽量

    24088
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    固態(tài)斷路采用SiC JFET的四個(gè)理由

    性能。我們已介紹過浪涌電流、應(yīng)對不斷攀升的電力需求、為什么要使用固態(tài)斷路。本文為系列教程的第二部分,將介紹SSCB 采用 SiC JFET 的四個(gè)理由。
    的頭像 發(fā)表于 01-16 15:45 ?1.4w次閱讀
    固態(tài)斷路<b class='flag-5'>器</b>采用SiC JFET的四個(gè)理由

    距離位移傳感器:智能時(shí)代的“空間感知先鋒”

    。它不僅是工業(yè)自動化的“神經(jīng)末梢”,更是消費(fèi)電子、汽車電子、醫(yī)療健康等領(lǐng)域的“空間感知引擎”,精準(zhǔn)的測量能力為智能化升級提供核心支撐。 一、技術(shù)突破:從“感知距離”到“定義空間” 傳
    的頭像 發(fā)表于 12-30 08:43 ?257次閱讀
    距離位移<b class='flag-5'>傳感器</b>:智能時(shí)代的“<b class='flag-5'>空間</b>感知先鋒”

    汽車聲學(xué)測量趨勢洞察(

    在第一部分中,我們探討了向1/4"傳聲的轉(zhuǎn)變、電動汽車的低底噪型號以及專為惡劣測試條件而設(shè)計(jì)的堅(jiān)固耐用傳感器。在第二部分中,我們重點(diǎn)關(guān)注
    的頭像 發(fā)表于 11-04 09:02 ?286次閱讀
    汽車聲學(xué)測量趨勢洞察(<b class='flag-5'>二</b>)

    傳感器的“感官”與“大腦”:揭秘敏感元件與轉(zhuǎn)換電路的奇妙世界

    為機(jī)器能懂的電信號的呢?答案就在于傳感器內(nèi)部兩個(gè)核心部件的精妙配合:敏感元件和轉(zhuǎn)換電路。我們可以把它們形象地理解為人的“感官”和“大腦”。第一部分:敏感元件——傳
    的頭像 發(fā)表于 10-27 13:30 ?1335次閱讀
    <b class='flag-5'>傳感器</b>的“感官”與“大腦”:揭秘敏感元件與轉(zhuǎn)換電路的奇妙世界

    如何判斷電能質(zhì)量在線監(jiān)測裝置傳感器是否故障?

    (直接報(bào)警)” 和 “隱性故障(無報(bào)警但數(shù)據(jù)失真)” 兩類場景入手,避免誤判(如將電網(wǎng)波動歸因?yàn)?b class='flag-5'>傳感器故障)。以下是具體落地的判斷方法: 一、第一步:優(yōu)先查看裝置自身告警(快速定位顯性故障) 電能質(zhì)量監(jiān)測
    的頭像 發(fā)表于 09-26 16:35 ?1624次閱讀
    如何判斷電能質(zhì)量在線監(jiān)測<b class='flag-5'>裝置</b>的<b class='flag-5'>傳感器</b>是否故障?

    電能質(zhì)量在線監(jiān)測裝置常見的傳感器故障有哪些?

    電能質(zhì)量在線監(jiān)測裝置傳感器故障主要集中在電流傳感器(CT、羅氏線圈)和電壓傳感器(VT/PT)兩大類(者占
    的頭像 發(fā)表于 09-26 16:32 ?2438次閱讀

    雷卯針對香橙派Orange Pi 5 Pro開發(fā)板防雷防靜電方案

    第一部分 應(yīng)用場景 高端平板、邊緣計(jì)算、人工智能、云計(jì)算、AR/VR、智能安防、智能家居、Linux 桌面計(jì)算機(jī)、Linux 網(wǎng)絡(luò)服務(wù)、Android 平板、Android 游戲機(jī) 第二部分 功能
    的頭像 發(fā)表于 08-19 17:31 ?875次閱讀
    雷卯針對香橙派Orange <b class='flag-5'>Pi</b> 5 Pro開發(fā)板防雷防靜電方案

    森瑟科技壓力傳感器在汽車測試中的應(yīng)用

    車電子控制裝置的應(yīng)用越來越每廣泛,每個(gè)電子控制裝置都包括傳感器、電控單元、執(zhí)行機(jī)構(gòu)三部分。它是采用傳感器監(jiān)控汽車的總成的工作狀況,并將相關(guān)信
    的頭像 發(fā)表于 07-14 17:52 ?1277次閱讀
    森瑟科技壓力<b class='flag-5'>傳感器</b>在汽車測試中的應(yīng)用

    提高篇——C語言核心技術(shù)(中文版)

    嚴(yán)謹(jǐn)?shù)男g(shù)語表介紹C語言;第二部分描述標(biāo)準(zhǔn)鏈接庫;第三部分介紹GNU軟件包中常用的編譯和測試工具。 獲取完整文檔資料可下載附件哦!?。?!如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評論支持一下哦~
    發(fā)表于 06-13 16:39

    TI大學(xué)計(jì)劃-電源篇

    本手冊將分為以下幾部分介紹信號鏈和電源相關(guān)的知識及 TI 產(chǎn)品在大學(xué)生創(chuàng)新活動中的應(yīng)用: 第一部分:運(yùn)算放大器的原理和設(shè)計(jì); 第二部分:數(shù)據(jù)轉(zhuǎn)換的原理和設(shè)計(jì); 第三
    發(fā)表于 05-19 15:33

    SDP810傳感器信號補(bǔ)償專題之溫度補(bǔ)償(一)

    Sensirion的SDP傳感器基于微熱測量原理:傳感元件由加熱元件和兩個(gè)與之等距離的溫度傳感器組成。穿過這個(gè)裝置的氣體流首先流過第一個(gè)溫度傳感器
    的頭像 發(fā)表于 05-19 13:26 ?772次閱讀
    SDP810<b class='flag-5'>傳感器</b>信號補(bǔ)償專題之溫度補(bǔ)償(一)

    示波器測量傳感器的放大電路及供電

    傳感器放大電路的測量傳感器信號一般都比較小,示波器直接測量可能難以檢測,但傳感器的主板上面都有信號放大部分,找到這個(gè)放大器的輸出端,示波器
    的頭像 發(fā)表于 05-19 13:24 ?985次閱讀
    <b class='flag-5'>用</b>示波器測量<b class='flag-5'>傳感器</b>的放大電路及供電

    如何用 Raspberry Pi 500 搭建家庭錄音室?

    是時(shí)候安裝并配置家庭錄音室中高質(zhì)量音頻制作所需的軟件了。這是來自《樹莓派官方雜志》系列教程的第三部分,也是最后一部分。若想閱讀整個(gè)系列教程,請先回顧第一部分(關(guān)于錄音
    的頭像 發(fā)表于 05-18 08:33 ?1571次閱讀
    如何用 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 500 搭建家庭錄音室?

    實(shí)用電子電路設(shè)計(jì)(全6本)—— 數(shù)字系統(tǒng)設(shè)計(jì)

    由于資料內(nèi)存過大,分開上傳,有需要的朋友可以去主頁搜索下載哦~ 本文內(nèi)容主要分為兩部分: 第一部分是以數(shù)字技術(shù)的思維方法作為主體論述; 第二部分是從實(shí)踐角度出發(fā),對數(shù)字技術(shù)實(shí)際應(yīng)用方法進(jìn)行詳細(xì)介紹
    發(fā)表于 05-15 15:25

    如何在Raspberry Pi OS上安裝SDK?

    Raspberry Pi OS 上安裝 SDK
    發(fā)表于 04-30 06:45