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

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

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

用Raspberry Pi和傳感器制作“可自動(dòng)營造舒適空間的裝置” 第四部分?劇終篇

從未擁有 ? 來源:羅姆 ? 作者:羅姆 ? 2023-02-24 10:17 ? 次閱讀

第1回:用Raspberry Pi傳感器制作“可自動(dòng)營造舒適空間的裝置” 第一部分
第2回:用Raspberry Pi和傳感器制作“可自動(dòng)營造舒適空間的裝置” 第二部分
第3回:用Raspberry Pi和傳感器制作“可自動(dòng)營造舒適空間的裝置” 第三部分

大家好,我是吉田!
創(chuàng)作一款讓家中更舒適、讓在家辦公更高效的設(shè)備,這個(gè)項(xiàng)目終于迎來了劇終篇。這次我們將會再增加一些功能,以完成這個(gè)項(xiàng)目。我們會添加一個(gè)根據(jù)天氣預(yù)報(bào)信息和天氣情況提示主人行動(dòng)的功能,最終創(chuàng)作完成這個(gè)可以營造舒適環(huán)境的設(shè)備,讓您即使在家辦公也可以舒適地工作!

poYBAGPzGoCAeKjhAAGBjG5VdoI782.jpg

本部分所需部件

Raspberry Pi 3 B+ 或 Raspberry Pi 4 Model B

poYBAGPzGoOAIRR3AADTzUPo-0I942.png

Raspberry Pi 3 B+

pYYBAGPzGoaACR--AAEJodxOxXg152.png

Raspberry Pi 4 Model B

Raspberry Pi用液晶顯示器 或 觸控顯示器

pYYBAGPzGomATcCzAAFYik0A-9Q075.jpg

Raspberry Pi用液晶顯示器

poYBAGPzGoyAQqMbAAC3lDGhtK0254.jpg

觸控顯示器

羅姆SensorMedal(SensorMedal-EVK-002)

poYBAGPzGpCAejK8AACqLix1ZZY124.jpg

熱釋電紅外線傳感器 (SB412A)

pYYBAGPzGpOAGUeFAAEoTKKM1CM773.jpg

小型揚(yáng)聲器

poYBAGPzGpWAA--8AAAuOaWhRBY294.jpg

手機(jī)電池

pYYBAGPzGpiAWSk2AAA4faohBjA382.jpg

USB設(shè)備

poYBAGPzGpyAD08DAAE81HV2ez4907.jpg

本部分的流程

根據(jù)傳感器的值控制硬件

關(guān)聯(lián)天氣信息和互聯(lián)網(wǎng)信息

完成這款可以營造舒適環(huán)境的裝置

總結(jié)

1. 根據(jù)傳感器的值控制硬件

在第二部分中,我們使用SensorMedal測量了溫度和濕度;在第三部分中,我們添加了人體傳感器。最初,我們也是打算利用傳感器的值來實(shí)現(xiàn)下面這些功能的,所以讓我們來把它們變?yōu)楝F(xiàn)實(shí)吧。

編號 檢測功能 檢測后希望具備的功能
1 檢測房間的溫度 根據(jù)室溫控制風(fēng)扇等
2 檢測房間的舒適度(例如濕度) 如果濕度高,將空調(diào)設(shè)置為除濕模式
5 檢測坐在椅子上的時(shí)間 檢測到坐的時(shí)間太久(久坐不動(dòng)),督促主人站起來活動(dòng)活動(dòng)

首先是檢測完溫度后,如果室溫高于一定水平,需要自動(dòng)打開風(fēng)扇保持涼爽。在Raspberry Pi上插入U(xiǎn)SB迷你風(fēng)扇。

poYBAGPzGqSAPCR-AAFx5Ws82WY981.jpg

要想讓風(fēng)扇根據(jù)室溫情況打開或關(guān)閉,需要使用第二部分中用過的hub-ctrl命令來控制Raspberry Pi的USB功能。例如,當(dāng)室溫超過26℃時(shí),給USB通電讓風(fēng)扇轉(zhuǎn)起來。

另外,當(dāng)使用人體傳感器測得您在工作臺周圍停留超過某一時(shí)長(久坐)時(shí),讓Raspberry Pi發(fā)出聲音來提醒您可能會很有趣。下面,我們將迷你揚(yáng)聲器插入Raspberry Pi。

poYBAGPzGqqAUOTvAAJ7DhEpbZ4838.jpg

獲取名為“AquesTalkPi”的可以朗讀的語音合成軟件,在Programs下解壓。

$ cd ~/Programs
$ wget http://www.a-quest.com/download/package/aquestalkpi-20130827.tgz
$ sudo tar zxvf aquestalkpi-20130827.tgz
$ cd aquestalkpi

然后,我們嘗試讓它播放“該休息了”之類的聲音。

$ ./AquesTalkPi "休憩しましょう!" | aplay

要實(shí)現(xiàn)這些功能,需要在第三部分中使用過的ble_lcd.py程序中,添加下面的第2行、第29?36行(溫濕度控制)和第4?6行、第12?17行、第38?43行(人體傳感器控制)的內(nèi)容。

[ble_lcd.py]

…
import os

human_count = 0
human_check = 30
aquest_path = "/home/pi/Programs/aquestalkpi/"

scanner = btle.Scanner()
while True:
…

    human = GPIO.input(human_pin)
    if human == 1:
      human_count+=1
    else:
      human_count=0
    print('HCount:'+str(human_count))

    ...

    # 針對接收到的數(shù)據(jù),對每一個(gè)BLE設(shè)備進(jìn)行處理
    for dev in devices:
    ...
                '''
                for key, value in sorted(sensors.items(), key=lambda x:x[0]):
                    print('    ',key,'=',value)
                '''

                temp  = sensors['Temperature']
                humid = sensors['Humidity']
                if temp > 26 or humid > 60:
                    temp_msg = "Hot!"
                    os.system("sudo hub-ctrl -b 1 -d 2 -P 2 -p 1")
                else:
                    temp_msg = "Not bad"
                    os.system("sudo hub-ctrl -b 1 -d 2 -P 2 -p 0")

                human_msg = str(human_count)
                if human_count > human_check:
                    human_msg += ' Take Rest!'
                    os.system(aquest_path+'AquesTalkPi "休憩しましょう!" | aplay')
                else:
                    human_msg += ' Work Hard!'

pYYBAGPzGq-AJrGJAAHKKA09SgU952.jpg

2. 關(guān)聯(lián)天氣信息和互聯(lián)網(wǎng)信息

最后,我們可以從網(wǎng)上獲取天氣預(yù)報(bào)等信息,這樣會很方便。如果要下雨,最好讓它大聲朗讀并提醒主人采取必要的行動(dòng)。

編號 檢測功能 檢測后希望具備的功能
6 確認(rèn)天氣 如果天氣預(yù)報(bào)有雨,提醒主人將曬在外面的衣物收回來

首先,我們需要使用名為“OpenWeatherMap”的服務(wù)來獲取天氣預(yù)報(bào)。如下圖所示,該網(wǎng)站是英文的,但是從上面可以輕松獲取日本國內(nèi)天氣,所以我們將使用這里提供的API。
https://openweathermap.org/api

poYBAGPzGrGALU-BAADqJqs8w28646.png

從該頁面的右上方創(chuàng)建一個(gè)帳戶并登錄。
然后進(jìn)入稱為“API Keys”的頁面,確認(rèn)Key(秘鑰)并復(fù)制此密鑰。

poYBAGPzGrSAWFyeAABIPKvcRGI190.png

接下來,我們需要?jiǎng)?chuàng)建一個(gè)可以獲取天氣預(yù)報(bào)的程序。首先,要安裝以下庫文件。

$ sudo pip3 install pytz requests

創(chuàng)建一個(gè)名為“forecast.py”的示例程序。將剛剛復(fù)制的密鑰輸入API_KEY部分。另外,需要在ZIP部分輸入您的郵政編碼,并添加國家代碼“JP”。下面,我們讓剛剛的Aquestalk軟件也能夠播報(bào)天氣吧。

[forecast.py]

#! /usr/bin/python3
# -*- coding: utf-8 -*-
import json
import datetime
import os
import requests
import sys

from pytz import timezone

API_KEY = "XXX"
ZIP = "123-4567,JP"
API_URL = "http://api.openweathermap.org/data/2.5/forecast?zip={0}&units=metric&lang=ja&APPID={1}"

def getWeatherForecast():
    url = API_URL.format(ZIP, API_KEY)
    response = requests.get(url)
    forecastData = json.loads(response.text)

    if not ('list' in forecastData):
            print('error')
            return

    for item in forecastData['list']:
        forecastDatetime = timezone(
            'Asia/Tokyo').localize(datetime.datetime.fromtimestamp(item['dt']))
        weatherDescription = item['weather'][0]['description']
        temperature = item['main']['temp']
        rainfall = 0
        if 'rain' in item and '3h' in item['rain']:
            rainfall = item['rain']['3h']
        break

    print('Date:{0} Weather:{1} Temp:{2} C Rain:{3}mm'.format(
        forecastDatetime, weatherDescription, temperature, rainfall))
return forecastDatetime, weatherDescription, temperature, rainfall

forecastDatetime, weatherDescription, temperature, rainfall = getWeatherForecast()

os.system(“/home/pi/aquestalkpi/AquesTalkPi “ + weatherDescription + “ | aplay”)

如下所示,運(yùn)行該程序時(shí),將會返回指定地區(qū)的天氣預(yù)報(bào)。于是,Raspberry Pi就會向您播報(bào)今天的天氣預(yù)報(bào)了,比如“多云”。

$ python3 forecast.py 
Date:2020-06-05 00:00:00+09:00 Weather:多云 Temp:23.29 C Rain:0mm

3. 完成這款可以營造舒適環(huán)境的裝置

下面,我們將液晶顯示器、揚(yáng)聲器、人體傳感器和USB設(shè)備都連接到Raspberry Pi,以完成該設(shè)備。

SensorMedal可以放置在BLE范圍內(nèi)的任何位置,因此可以將其放置在您桌子周圍或窗戶附近。當(dāng)然,您也可以將它放在電腦附近或掛在墻上。

poYBAGPzGriANKj0AAGOEgk62EU871.jpg

下面是該設(shè)備的最終程序,可以讓設(shè)備根據(jù)SensorMedal、人體傳感器和天氣預(yù)報(bào)等信息執(zhí)行任務(wù)。程序僅供參考。

[ble_lcd.py]

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

import dothat
import dothat.backlight as backlight
import dothat.lcd as lcd

interval = 10 # 動(dòng)作間隔

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

import os
import RPi.GPIO as GPIO
human_pin = 13
GPIO.setmode(GPIO.BCM)
GPIO.setup(human_pin, GPIO.IN)
human_count = 0
human_check = 3

import json
import requests
import sys
from pytz import timezone

API_KEY = "xxx" #WeatherMap API Key
ZIP = "123-4567,JP" #Your address
API_URL = "http://api.openweathermap.org/data/2.5/forecast?zip={0}&units=metric&lang=ja&APPID={1}"
aquest_path = "/home/pi/Programs/aquestalkpi/" #AquesTalkPi path

def getWeatherForecast():
    url = API_URL.format(ZIP, API_KEY)
    response = requests.get(url)
    forecastData = json.loads(response.text)
    if not ('list' in forecastData):
            print('error')
            return                        
    #print(forecastData)
    for item in forecastData['list']:
        forecastDatetime = timezone('Asia/Tokyo').localize(datetime.fromtimestamp(item['dt']))
        weatherDescription = item['weather'][0]['description']
        temperature = item['main']['temp']
        rainfall = 0
        if 'rain' in item and '3h' in item['rain']:
            rainfall = item['rain']['3h']
        break
    print('Date:{0} Weather:{1} Temp:{2} C Rain:{3}mm'.format(forecastDatetime, weatherDescription, temperature, rainfall))
    return forecastDatetime, weatherDescription, temperature, rainfall

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:
    now = datetime.now()
    d = '{0:0>4d}/{1:0>2d}/{2:0>2d}({3})'.format(now.year, now.month, now.day, now.strftime('%a'))
    t = '{0:0>2d}:{1:0>2d}:{2:0>2d}'.format(now.hour, now.minute, now.second)
    forecastDatetime, weatherDescription, temperature, rainfall = getWeatherForecast()

    lcd.clear()
    lcd.set_cursor_position(0, 0)
    lcd.write('{}'.format(d))
    lcd.set_cursor_position(2, 1)
    lcd.write('{}'.format(t))
    lcd.set_cursor_position(0, 2)
    lcd.write('W:{0}C {1}mm'.format(round(temperature,0), rainfall))
    if rainfall > 0:
          print(weatherDescription, rainfall)
          os.system(aquest_path+'AquesTalkPi '+weatherDescription+' | aplay')
          
    human = GPIO.input(human_pin)
    if human == 1:
      human_count+=1
    else:
      human_count=0
    print('HCount:'+str(human_count))

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

    # 受信データについてBLEデバイス毎の処理
    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':
                # センサ値を辭書型変數(shù)sensorsへ代入
                sensors['ID'] = hex(payval(2,2))
                sensors['Temperature'] = -45 + 175 * payval(4,2) / 65536
                sensors['Humidity'] = 100 * payval(6,2) / 65536
                sensors['Pressure'] = payval(22,3) / 2048
                sensors['Illuminance'] = payval(25,2) / 1.2
                sensors['Battery Level'] = payval(30)
                sensors['RSSI'] = dev.rssi

                # 畫面へ表示
                print('    ID            =',sensors['ID'])
                print('    Temperature   =',round(sensors['Temperature'],2),'℃')
                print('    Humidity      =',round(sensors['Humidity'],2),'%')
                print('    Pressure      =',round(sensors['Pressure'],3),'hPa')
                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)
                '''

                temp  = sensors['Temperature']
                humid = sensors['Humidity']
                lcd.clear()
                dothat.backlight.set_graph(0.5) # 50%
                backlight.rgb(0, 0, 0)
                if temp > 28 or humid > 80:
                    temp_msg = "Hot!"
                    backlight.rgb(255, 0, 0) #Red
                else:
                    temp_msg = "Not bad"
          
                illum = sensors['Illuminance']
                if illum < 200:
                    illum_msg = "Dark!"
                    os.system("sudo hub-ctrl -b 1 -d 2 -P 2 -p 1")
                    backlight.rgb(255, 255, 255)
                else:
                    illum_msg = "Bright"
                    os.system("sudo hub-ctrl -b 1 -d 2 -P 2 -p 0")
                    backlight.rgb(0, 0, 255) #Blue

                human_msg = str(human_count)
                dothat.backlight.off()
                for led in range(human_count):
                    backlight.graph_set_led_state(led, 0.2)
                if human_count > human_check:
                    human_msg += ' Take Rest!'
                    backlight.rgb(0, 255, 0) #Green
                    os.system(aquest_path+'AquesTalkPi "休憩しましょう!" | aplay')
                else:
                    human_msg += ' Work Hard!'
                    backlight.rgb(0, 255, 255) #Lightblue

                lcd.clear()
                lcd.set_cursor_position(0, 0)
                lcd.write('T:{0:1.0f}C {1:1.0f}% {2}'.format(temp,humid,temp_msg))
                lcd.set_cursor_position(0, 1)
                lcd.write('I:{0:1.0f} Lx {1}'.format(illum,illum_msg))
                lcd.set_cursor_position(0, 2)
                lcd.write('H:{}'.format(human_msg))
                sleep(interval)

最后,我們讓這個(gè)程序能夠自動(dòng)啟動(dòng)吧。首先,創(chuàng)建一個(gè)shell程序來運(yùn)行Python程序。需要進(jìn)行服務(wù)設(shè)置,以使啟動(dòng)該shell程序時(shí)能夠執(zhí)行Python程序。

[blelcd.sh]

#!/bin/sh
sudo /usr/bin/python3 /home/pi/Programs/ble_lcd.py

[blelcd.service]

Description=ROHM MEDAL BLE to LCD

[Service]
ExecStart=/bin/bash /home/pi/Programs/blelcd.sh
WorkingDirectory=/home/pi/Programs
User=pi

[Install]
WantedBy=multi-user.target

現(xiàn)在,當(dāng)您重新啟動(dòng)它時(shí),Raspberry Pi將會顯示傳感器的值,指示燈開始閃爍。

pYYBAGPzGruAeW9NAAGGpFSgyT8096.jpg

4. 總結(jié)

在這個(gè)連載系列中,我們針對在家辦公時(shí)間增加的情況,創(chuàng)作了一個(gè)可以檢測辦公環(huán)境并改善環(huán)境的設(shè)備。

在第一部分中,我們思考并列舉了希望實(shí)現(xiàn)的目標(biāo),也了解了用羅姆的SensorMedal可以測得多種值。

在第二部分中,我們創(chuàng)建了實(shí)際通過Raspberry Pi和BLE連接SensorMedal用的程序。

在第三部分中,我們使用人體傳感器,實(shí)現(xiàn)了檢測是否有人(是否久坐不動(dòng))的功能。此外,還用液晶顯示器成功顯示了溫濕度和亮度等信息。

在第四部分,也就是本文中,我們增加了天氣預(yù)報(bào)等功能,完成了這個(gè)用起來非常方便的設(shè)備。當(dāng)您打開Raspberry Pi的電源時(shí),它會自動(dòng)啟動(dòng)并執(zhí)行自動(dòng)檢測和提醒等任務(wù)。

事實(shí)上,它現(xiàn)在每天都在我家工作,它會告訴我周圍的亮度,并提醒我別忘了收回曬在外面的衣服!

鼓勵(lì)大家也嘗試制作方便您居家生活和在家辦公的設(shè)備!

相關(guān)連載一覽

第1部分:用Raspberry Pi和傳感器制作“可自動(dòng)營造舒適空間的裝置” 第一部分
第2部分:用Raspberry Pi和傳感器制作“可自動(dòng)營造舒適空間的裝置” 第二部分
第3部分:用Raspberry Pi和傳感器制作“可自動(dòng)營造舒適空間的裝置” 第三部分
第4部分:用Raspberry Pi和傳感器制作“可自動(dòng)營造舒適空間的裝置” 第四部分?劇終篇(本章)

審核編輯黃宇

聲明:本文內(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)注

    2541

    文章

    49961

    瀏覽量

    747522
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

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

    關(guān)注

    1

    文章

    554

    瀏覽量

    22128
收藏 人收藏

    評論

    相關(guān)推薦

    獨(dú)特的51單片機(jī)教程第四部分—牛人經(jīng)驗(yàn),論壇獨(dú)家奉獻(xiàn)

    本帖最后由 eehome 于 2013-1-5 10:01 編輯 獨(dú)特的51單片機(jī)教程第四部分:基本IO操作和 定時(shí)/計(jì)數(shù) 前面的之三寫得很辛苦。我當(dāng)時(shí)說,這一篇對于你直接點(diǎn)亮 LED
    發(fā)表于 11-21 09:28

    【藍(lán)牙4.1】+ 分享一本好書《Psoc 體系結(jié)構(gòu)與編程》四部分完全版

    =292215&highlight=PSOC%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84第二部分:第三部分第四部分
    發(fā)表于 06-11 00:21

    Raspberry Pi機(jī)器人制作實(shí)例 PYTHON、LINUX和傳感器搭建智能小車

    Raspberry Pi機(jī)器人制作實(shí)例 PYTHON、LINUX和傳感器搭建智能小車
    發(fā)表于 04-03 11:51

    火力發(fā)電廠水汽分析方法 第四部分:氯化物的測定 (電極法)D

    火力發(fā)電廠水汽分析方法 第四部分:氯化物的測定 (電極法)DL/T 502.4—2006 Analytical methods of steam and water
    發(fā)表于 06-08 13:08 ?15次下載

    國內(nèi)衛(wèi)星通信地球站發(fā)射接收和地面通信設(shè)備技術(shù)要求 第四部分

    國內(nèi)衛(wèi)星通信地球站發(fā)射接收和地面通信設(shè)備技術(shù)要求 第四部分中速數(shù)據(jù)傳輸設(shè)備 本標(biāo)準(zhǔn)規(guī)定的各項(xiàng)規(guī)則涉及國內(nèi)衛(wèi)星通信地球站內(nèi)中速數(shù)據(jù)傳輸?shù)母鞣N設(shè)備本標(biāo)準(zhǔn)的制定
    發(fā)表于 10-05 10:33 ?49次下載

    2012年P(guān)SoC數(shù)?;旌显O(shè)計(jì)培訓(xùn)_第四部分

    2012年P(guān)SoC數(shù)模混合設(shè)計(jì)培訓(xùn)_第四部分
    發(fā)表于 10-27 09:27 ?4次下載
    2012年P(guān)SoC數(shù)?;旌显O(shè)計(jì)培訓(xùn)_<b class='flag-5'>第四部分</b>

    Raspberry Pi和SensorMedal制作IoT跳繩設(shè)備 第四部分:在設(shè)備上安裝顯示以增加動(dòng)力

    第一部分跳繩測試儀解決運(yùn)動(dòng)不足問題!第二部分SensorMedal檢測跳躍次數(shù)并在顯示上顯示第三
    的頭像 發(fā)表于 03-23 15:18 ?698次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和SensorMedal<b class='flag-5'>制作</b>IoT跳繩設(shè)備 <b class='flag-5'>第四部分</b>:在設(shè)備上安裝顯示<b class='flag-5'>器</b>以增加動(dòng)力

    一款Raspberry Pi傳感器制作的可穿戴式小型健康管理設(shè)備!第四部分?劇終篇

    第1部分Raspberry Pi Zero和羅姆SensorMedal制作健康管理設(shè)備!第2部分
    的頭像 發(fā)表于 02-24 10:06 ?2064次閱讀
    一款<b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>的可穿戴式小型健康管理設(shè)備!<b class='flag-5'>第四部分</b>?<b class='flag-5'>劇終篇</b>

    Raspberry Pi傳感器制作自動(dòng)營造舒適空間裝置” 第三部分

    大家好,我是吉田!我們這次要?jiǎng)?chuàng)作一款讓家中更舒適、讓在家辦公更高效的設(shè)備,本文是第三部分。在第二部分中,我們BLE連接了羅姆SensorMedal并測量了各種數(shù)據(jù)。
    的頭像 發(fā)表于 02-24 10:43 ?520次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>“<b class='flag-5'>可</b><b class='flag-5'>自動(dòng)</b><b class='flag-5'>營造</b><b class='flag-5'>舒適</b><b class='flag-5'>空間</b>的<b class='flag-5'>裝置</b>” 第三<b class='flag-5'>部分</b>

    Raspberry Pi傳感器制作自動(dòng)營造舒適空間裝置” 第二部分

    大家好,我是吉田!我們這次要?jiǎng)?chuàng)作一款讓家中更舒適、讓在家辦公更高效的設(shè)備,本文是第二部分。第一部分介紹了制作綱要和所需部件。這次我們將實(shí)際連接Bluetooth
    的頭像 發(fā)表于 03-01 11:15 ?468次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>傳感器</b><b class='flag-5'>制作</b>“<b class='flag-5'>可</b><b class='flag-5'>自動(dòng)</b><b class='flag-5'>營造</b><b class='flag-5'>舒適</b><b class='flag-5'>空間</b>的<b class='flag-5'>裝置</b>” 第二<b class='flag-5'>部分</b>

    使用Crystal Signal Pi第3部分:使用Raspberry Pi創(chuàng)建警示燈解決方案—?jiǎng)?chuàng)建工具

    在Crystal Signal Pi系列第3部分,我們終于要制作工具了!今天,我們將嘗試使用Crystal Signal Pi和溫度傳感器
    的頭像 發(fā)表于 02-24 17:17 ?684次閱讀
    使用Crystal Signal <b class='flag-5'>Pi</b>第3<b class='flag-5'>部分</b>:使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>創(chuàng)建警示燈解決方案—?jiǎng)?chuàng)建工具

    使用Raspberry Pi 3自制智能相框和日歷—第二部分

    本教程的第二部分將帶您完成構(gòu)建智能相框和日歷的框架、連接PIR運(yùn)動(dòng)傳感器和控制相框幻燈片顯示向日歷顯示的過渡這些步驟。該項(xiàng)目將繼續(xù)使用本教程的使用Raspberry Pi 3自制智能相
    的頭像 發(fā)表于 02-24 17:51 ?1139次閱讀
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 3自制智能相框和日歷—第二<b class='flag-5'>部分</b>

    基于Raspberry Pi的DIY無人機(jī)第3部分–FPV設(shè)置指南

    本文是我們Raspberry Pi軸飛行系列的最后一部分。有關(guān)本教程的其他部分,請參考《DI
    的頭像 發(fā)表于 02-24 17:46 ?4679次閱讀
    基于<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>的DIY無人機(jī)第3<b class='flag-5'>部分</b>–FPV設(shè)置指南

    硬件即代碼第四部分:嵌入式RAM

    電子發(fā)燒友網(wǎng)站提供《硬件即代碼第四部分:嵌入式RAM.zip》資料免費(fèi)下載
    發(fā)表于 06-14 15:10 ?0次下載
    硬件即代碼<b class='flag-5'>第四部分</b>:嵌入式RAM

    【北京迅為】iTOP-i.MX6開發(fā)板使用手冊第四部分固件編譯第十四章非設(shè)備樹Android4.4系統(tǒng)編譯

    【北京迅為】iTOP-i.MX6開發(fā)板使用手冊第四部分固件編譯第十四章非設(shè)備樹Android4.4系統(tǒng)編譯
    的頭像 發(fā)表于 09-12 15:43 ?149次閱讀
    【北京迅為】iTOP-i.MX6開發(fā)板使用手冊<b class='flag-5'>第四部分</b>固件編譯第十四章非設(shè)備樹Android4.4系統(tǒng)編譯