Rasberry pi 用のユニバーサル基板があったので温度センサーを付ける

Read More

ブレッドボードでケーブル出しっぱなしだったので整理がてらユニバーサル基板に温度センサーを貼り付けてみました。老眼ぽくなり始めていて半田がツライ。部品があんまり家になかったので無理やり繋げた感がありますがとりあえず動いたので良かった。

ユニバーサル基板は、以前秋月電子に行った時に2枚買ってきていた物を使いました。

無理矢理感がありますが。

本当はリモコン様にRFモジュールを付けたいところ。後は普通に使うようにOLEDモジュールを付けておこうかな

Homebridge経由でbmd280センサーを利用して温度・湿度を取得する

Read More

便利な世の中でなんでもモジュールがありますね。
利用しているのは Raspberry pi zero に BME280 を接続して温度を取得してみました。HomeKit(HomeBridge)経由で接続することで iPhoneの「HOME」アプリから簡単に見れるのがいいですね。

$ npm install -g homebridge-bme280

    "accessories": [
        {
            "accessory": "BME280",
            "name": "Sensor",
            "name_temperature": "Temperature",
            "name_humidity": "Humidity",
            "options": {
              "i2cBusNo": 1,
              "i2cAddress": "0x76"
            }
        }
    ]

実際に使ってみると表示の部分は TemperatureFileHumidityFile プラグインと同じ感じですね。このプラグインを使うと特にCronで定期的に取得しなくても良いのは楽です。

homebridgeにhomebridge-camera-rpiを追加したけどうまくいかない

Read More

Rapsberry pi の homebridgeにhomebridge-camera-rpiを追加してみました。

使い方は上記のREADMEの通りで特にしていけば大丈夫でした。

既存のセンサー類と共存が出来ない(Cameraを有効にすると排他)

  • はじめてHomeBridgeを触ったのでこれが仕様なのかわかりませんでしたがカメラを追加するとそもそも定義していたセンサー類が一切見えないです。
  • 正確には「カメラ」として追加すると「カメラ」だけが追加されます。
  • 「バーコード」から追加するとカメラ以外のものだけが追加されます。
  • なので排他で動いている模様です。したがって同時には利用できないのではないかなと推測してます。
  • そのためなのかスタンドアローンモードが用意されています。

  • 使った感じは便利そうでした。クリックすると「Live」で動画も見ることができました。

その他

Raspberry Pi Zero のGPIOを利用した音声出力

Read More

Zeroでも音声出力をしてみたいと思いましたがAudio端子ないので調べてみました。
Raspberry Pi Zero には音声出力をするにはHDMI経由で鳴らす方法と、今回紹介するGPIO端子を利用する方法の2種類があります。

Pi Zero には、他の Pi にある PWM0(pin #40) と PWM1(pin #45) がありませんが今回使用する方法で代替えを行い利用することが出来ます。

  • PWM0 — GPIO #18(ALT5)
  • PWM1 — GPIO #13(ALT0)

Adafruit のサイトに詳しい方法が記載されていますのでその方法を実施してみます。

手順ではgpioを最新にしていますが手元のRaspberry Pi では既にZeroがサポートされているバージョンが導入されています。今回のバージョンは 2.32 でした。

[email protected]:~/Documents/PG $ gpio -v
gpio version: 2.32
Copyright (c) 2012-2015 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
Type: Pi Zero, Revision: 02, Memory: 512MB, Maker: Sony
* Device tree is enabled.
* This Raspberry Pi supports user-level GPIO access.
-> See the man-page for more details
-> ie. export WIRINGPI_GPIOMEM=1

GPIOの設定を確認してみます。(gpio readall) それぞれ該当のModeが[IN]になっているのでこの値を変更します。変更するための設定プログラムをコンパイルして利用します。

1 pi pizero1 Documents PG ssh

先ほどのAdafruitのサイトにソースコードが掲載されていますのでその内容を gpio_alt.c として保管した後に以下のコマンドを実行してコンパイルします。

gcc -o gpio_alt gpio_alt.c
sudo chown root:root gpio_alt
sudo chmod u+s gpio_alt
sudo mv gpio_alt /usr/local/bin/

実際に以下のコマンドを実行してModeを変更します。

gpio_alt -p 13 -f 0
gpio_alt -p 18 -f 5

その結果が以下のようになります。それぞれ[ALT0]と[ALT5]になります。

I1 pi pizero1 Documents PG ssh

次にPiのAudioをHDMIからPCMに変更します。 sudo raspi-config を実行します。
「Advanced Opstions」→ 「Audio」→ 「Force 3.5mm (Headphone)」を選択して保管して終了します。

以下のように配線してみます。

INewImage 2

サンプルの再生は aplay /usr/share/sounds/alsa/Front_Center.wav で行う事ができます。音声のボリュームはAlsaツールを利用します。4dBが最大となります。

$ amixer
Simple mixer control 'PCM',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback -10239 - 400
Mono: Playback 400 [100%] [4.00dB] [on]

実際にAMPなしで再生してみると、、、、、ほんの僅か音声が聞こえてきました。

あまりにも小さいのアンプを間に挟んでみることにします。
こちらのアンプはQiitaのこの記事で紹介されていました秋月で売っているD級アンプモジュールを接続してみています。

接続は特に何も考慮せずにピンで止めていますが多分これが原因で盛大にノイズが乗っています。「ザザザー」

IMG 5612

音は多少大きくなりました。キチンと半田付けしてスピーカー側に取り付けて上げる事でそれなりに使える様になるような気がします。

あまり利用している例もなかったので一般的な使い方ではないのかもしれませんがGPIOだけで色々出来るのは便利かなと思っています。次は小型化して使いやすくしておきたいですね。

温度センサーBME280の値をLCD(AQM0802A)に表示

Read More

温度センサーBME280の値をLCD(AQM0802A)に表示してみた。

IMG 5479

やっている内容はシンプルで1秒毎にセンサーから値を取得し、LCDに描画させました。

結構普通に描画されています。
描画スペースが 8×2しか無いので何に使うのか悩みますがとりあえずボタンでこの機能をON/OFF出来るようにはしておきたいと思います。