※実際に行われる場合は自己責任で、業務で使用される際には特によろしくお願いします。
純正アプリはフリーウェアですがライセンス的にもありなのかどうかわかりません。
いつからか、Blackmagic Design ATEMスイッチャー用ソフトウェアコントロールパネルが64bit PCでしか動作しなくなりましたね。
しかしどうやらこのアプリケーション、インストーラが64bit専用なだけでアプリケーションは32bitアプリなのです。
これは64bit PCにインストールしたあとこのフォルダごと32bit PCのProgram Filesにコピーすれば動くんじゃないかと思ったのですが、そうはいきませんでした。(インストールする途中にレジストリの登録も行っているようです。)
そこで、手動でレジストリの登録を行う必要があります。
以下その方法を書いておきます。
C:\Program Files\Blackmagic Design\Blackmagic ATEM Switchersにコピーした場合の例です。
C:\Windows\System32\cmd.exeを右クリック、管理者として実行
cd C:\Program Files\Blackmagic Design\Blackmagic ATEM Switchers と入力してEnterキー
regsvr32 BMDSwitcherAPI.dll と入力してEnterキー、
レジストリ登録成功のダイアログボックスを閉じる
C:\Program Files\Blackmagic Design\Blackmagic ATEM Switchers¥ATEM Software Control.exeを開く
必要に応じてスタートメニューやデスクトップにリンクを貼れば起動しやすくなります。
インストールは少々面倒ですが一応切り替えは問題なくできています。
再度申し上げますが、こんなこともできるのか程度に見ていただければ幸いです。
実際に行われる場合は自己責任にてよろしくお願いします。
(この情報はFacebook ユーザーグループ ATEM Tech Labで先に紹介させていただいたものです。https://www.facebook.com/groups/ATEMTecLab/?fref=nf)
2017年3月5日日曜日
Blackmagic Design ATEM Television Studio用ハーフラックコントロールパネルの製作
最近、新型のATEM Television Studio HDが発売されましたね。
前記事ではATEM用のタリーランプを制作しましたが、
今回は新型を見てコントロールパネルがラックケースについていれば
同じような操作感で操作ができそうだと考えて
今度は簡易コントロールパネルを制作しました。
以前から自照スイッチをユニバーサル基板にプルダウン抵抗、電流制限抵抗とともに実装し、配線した基板を作って寝かせていたのですが、
それに目隠しパネルとマイコンを取り付けました。
実装したスイッチは1~6ch、メディアプレイヤー1のPVW、PGM、およびオートテイクとカットのボタンに割り当てるようにプログラムを作りました。
PVW、PGM列それぞれの自照スイッチは現在選択中のタリーが点灯します。
ATEMタリーのときと同じ古いATEMライブラリを使っているからか、
メディアプレイヤー1のタリーを取得することができなかったため、入力1~6以外が選択されているとき点灯という場当たり的対応をしました。
ここでTipsですが、後日記事にしたいと思いますがソフトウェアコントロールパネルを純正のサンプルプログラムから改造して作ってみたりもしています。
そこでわかったことなのですが、メディアプレイヤー1、2、およびカラーバー・カラージェネレーターにも入力1~6と同じように入力IDがあります。
一覧にしますと、
入力1: 1
入力2: 2
入力3: 3
入力4: 4
入力5: 5
入力6: 6
Bars: 1000
Color1 :2001
Media Player 1: 3010
Media Player 2: 3020
どういうことかというと、たとえばPGMをメディアプレイヤー1に切り替えたいときは、
入力1なら
AtemSwitcher.changeProgramInput(1);
となるところを
AtemSwitcher.changeProgramInput(3010);
としてあげればいいわけですね。
ピンヘッダを付けたユニバーサル基板に、100均のLANケーブルをバラしたものをはんだ付けして安上がりに結線しています。
こんな感じで動きます。我ながらいい感じです。
前記事ではATEM用のタリーランプを制作しましたが、
今回は新型を見てコントロールパネルがラックケースについていれば
同じような操作感で操作ができそうだと考えて
今度は簡易コントロールパネルを制作しました。
以前から自照スイッチをユニバーサル基板にプルダウン抵抗、電流制限抵抗とともに実装し、配線した基板を作って寝かせていたのですが、
それに目隠しパネルとマイコンを取り付けました。
残念な工作\(^o^)/ pic.twitter.com/KKepwkKUAc— じてんしゃP (@jitenshap) 2017年2月14日
実装したスイッチは1~6ch、メディアプレイヤー1のPVW、PGM、およびオートテイクとカットのボタンに割り当てるようにプログラムを作りました。
PVW、PGM列それぞれの自照スイッチは現在選択中のタリーが点灯します。
ATEMタリーのときと同じ古いATEMライブラリを使っているからか、
メディアプレイヤー1のタリーを取得することができなかったため、入力1~6以外が選択されているとき点灯という場当たり的対応をしました。
ここでTipsですが、後日記事にしたいと思いますがソフトウェアコントロールパネルを純正のサンプルプログラムから改造して作ってみたりもしています。
そこでわかったことなのですが、メディアプレイヤー1、2、およびカラーバー・カラージェネレーターにも入力1~6と同じように入力IDがあります。
一覧にしますと、
入力1: 1
入力2: 2
入力3: 3
入力4: 4
入力5: 5
入力6: 6
Bars: 1000
Color1 :2001
Media Player 1: 3010
Media Player 2: 3020
どういうことかというと、たとえばPGMをメディアプレイヤー1に切り替えたいときは、
入力1なら
AtemSwitcher.changeProgramInput(1);
となるところを
AtemSwitcher.changeProgramInput(3010);
としてあげればいいわけですね。
そんな感じでサクッとサンプルスケッチを改造して作れました。
キーマトリクスとか組むのかったるいし、スイッチはすでに実装してしまっていたためIOエキスパンダなどを使うこともできなかったので、
マイコンボードにArduino MEGA互換機を用いてArduino MEGAの暴力的なIOピン数を使って愚直にすべてパラレル結線でマイコンボードとスイッチ基板を結びました。
下記画像は途中までしか結線していませんが、完成品はこのユニバーサル基板の端々までコードがついています。
下記画像は途中までしか結線していませんが、完成品はこのユニバーサル基板の端々までコードがついています。
中華イーサネットシールドに貼ったヒートシンク、結構熱くなるし貼っておいて正解かも pic.twitter.com/iv0Ccxe1dj— じてんしゃP (@jitenshap) 2017年2月12日
気持ち悪いものできた— じてんしゃP (@jitenshap) 2016年9月17日
Arduino MEGAのGPIOの数使って10進のまま突っ込む pic.twitter.com/rng2aP05PD
ピンヘッダを付けたユニバーサル基板に、100均のLANケーブルをバラしたものをはんだ付けして安上がりに結線しています。
ピンヘッダで取り付けているため、メンテナンス時はそれごと引っこ抜けばマイコンボードとスイッチ基板を切り離すことができます。
こんな感じで動きます。我ながらいい感じです。
NyancoTechオリジナル
— じてんしゃP (@jitenshap) 2017年2月17日
ハーフラックATEMコントロールパネルできました pic.twitter.com/fip7GwYv3m
使ってみたところ、やはりパソコンなしでとりあえず切り替えて絵出しをチェックできるのは便利ですね。だからATEM Television Studio HDを買いましょう(え
2016年9月24日土曜日
Blackmagic Design ATEM Television Studio用ワイヤレスタリーランプの製作
Blackmagic Designという会社が数年前に鳴り物入りという感じで出してきた、
フルHD 1920*1080 59.94iの切り替えができる、ATEMというシリーズの低価格スイッチャー
ATEM Televisin Studioの中古を買いました。一生のうちに何度使うんですかね。
馬鹿ですね。
このスイッチャーは本体に切り替えボタンなどがなく、IP接続したパソコンや、
別売りのコントロールパネルで操作をします。
IP接続なのをいいことに、Arduinoを使って、、
コントロールパネルを自作したりするための自作キットや、
完成品のコントロールパネルなどを販売しているSKAARHOJという会社があります。
SKAARHOJ
http://skaarhoj.com/
aboutを見ると、デンマークの会社のようで、デンマーク語なんですかね?
この会社は自作キットのために、Arduinoライブラリを出してくれています。
買わなくてもダウンロードできるので、それを借りていろいろ自分でも工作ができるんです。
これがATEMを買った理由です。使うアテはなくても工作のネタになるんです。
さて、IPでスイッチャーとハードウェアをつなぐといろいろできるわけです。
ライブラリでは、Arduino Ethernet Shieldを使ってArduinoとATEMを接続し、
簡易コントロールパネルを作るサンプルスケッチが入っています。
試してみましたが、簡単にATEMをArduinoでコントロールできました!
インクルードされている、Ethernet.hをEthernet2.hと書き換えるだけでOKでした。
ライブラリを書き換えれば他のものでも動くということがわかったので、
IP接続ができる安いマイコンである、ESP-WROOM-02で使うことはできないかと試しました。
ライブラリ内の、EthenetUDPを、WiFiUDPに書き換えて、
#include <avr/pgmspace.h>をコメントアウト、
サンプルスケッチの#include <Ethernet.h>を消去、
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <WiFiUDP.h>>
を追加、
byte mac[]={}、
IPAddress ip();
をコメントアウト(DHCP接続するため)、Serial.begin()でシリアル通信速度を115200に設定、
WiFi.begin(ssid, password);でSSIDとパスワードを入力、Wi-Fiに接続、
なぜかそのままだとコネクションできないことが多いので、
AtemSwitcher.connect();があるところに、 AtemSwitcher.connect();を10個くらいコピペ
以上でサンプルのATEMbasicContro.inolをESP-WROOM-02で使うことができました。
このIOの数ではそのままではコントロールパネルを製作するのは辛いので、
タリーランプとして使ってみることにしました。
ATEMbasicContro.inoの、スイッチ部分を削除、タリー部分は、
digitalWrite(greenledpin, !AtemSwitcher.getPreviewTally(n))
digitalWrite(redledpin, !AtemSwitcher.getProgramTally(n))
で、getPreviewでn chグリーンタリー、getProgramTallyでn chの
レッドタリーを点灯させられました。
実際に動かすとこんな感じです。
最後に、ESP-WROOM-02をブレークアウトボードに付けずに、
UEW線で直配線してケースに入れました。
電源のコードだけ出ていますが、3.3VのACアダプタや、
レギュレーターを使いUSBやDVバッテリーなどで駆動させることができます。


※このままだとアレなのであとでユニバーサル基板に乗せました。
ケースには1/4”→3/8ネジ変換アダプターを底にグルーガンで固定し、
カメラネジで固定できるようにしたので、
コールドシュー→カメラネジ変換雲台でオンカメラできるようになりました。
フルHD 1920*1080 59.94iの切り替えができる、ATEMというシリーズの低価格スイッチャー
ATEM Televisin Studioの中古を買いました。一生のうちに何度使うんですかね。
馬鹿ですね。
このスイッチャーは本体に切り替えボタンなどがなく、IP接続したパソコンや、
別売りのコントロールパネルで操作をします。
IP接続なのをいいことに、Arduinoを使って、、
コントロールパネルを自作したりするための自作キットや、
完成品のコントロールパネルなどを販売しているSKAARHOJという会社があります。
SKAARHOJ
http://skaarhoj.com/
aboutを見ると、デンマークの会社のようで、デンマーク語なんですかね?
この会社は自作キットのために、Arduinoライブラリを出してくれています。
買わなくてもダウンロードできるので、それを借りていろいろ自分でも工作ができるんです。
これがATEMを買った理由です。使うアテはなくても工作のネタになるんです。
さて、IPでスイッチャーとハードウェアをつなぐといろいろできるわけです。
ライブラリでは、Arduino Ethernet Shieldを使ってArduinoとATEMを接続し、
簡易コントロールパネルを作るサンプルスケッチが入っています。
試してみましたが、簡単にATEMをArduinoでコントロールできました!
Arduino Ethernet Shield 2を使っているので、ライブラリを少々書き換える必要がありましたが、ATEM Television studioをArduinoで操作できたよー\(^o^)/ pic.twitter.com/CCmEsBwFOn— じてんしゃP (@jitenshap) 2016年2月28日
インクルードされている、Ethernet.hをEthernet2.hと書き換えるだけでOKでした。
ライブラリを書き換えれば他のものでも動くということがわかったので、
IP接続ができる安いマイコンである、ESP-WROOM-02で使うことはできないかと試しました。
ライブラリ内の、EthenetUDPを、WiFiUDPに書き換えて、
#include <avr/pgmspace.h>をコメントアウト、
サンプルスケッチの#include <Ethernet.h>を消去、
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <WiFiUDP.h>>
を追加、
byte mac[]={}、
IPAddress ip();
をコメントアウト(DHCP接続するため)、Serial.begin()でシリアル通信速度を115200に設定、
WiFi.begin(ssid, password);でSSIDとパスワードを入力、Wi-Fiに接続、
なぜかそのままだとコネクションできないことが多いので、
AtemSwitcher.connect();があるところに、 AtemSwitcher.connect();を10個くらいコピペ
あとはIOピンを適当に決めるなんかパケットロスが多いのかタイムアウトで接続できないことが多かったけど、— じてんしゃP (@jitenshap) 2016年8月9日
AtemSwitcher.connect();
AtemSwitcher.connect();
AtemSwitcher.connect()
って10個くらい並べて書いたら絶対繋がるようになったw
以上でサンプルのATEMbasicContro.inolをESP-WROOM-02で使うことができました。
このIOの数ではそのままではコントロールパネルを製作するのは辛いので、
タリーランプとして使ってみることにしました。
ATEMbasicContro.inoの、スイッチ部分を削除、タリー部分は、
digitalWrite(greenledpin, !AtemSwitcher.getPreviewTally(n))
digitalWrite(redledpin, !AtemSwitcher.getProgramTally(n))
で、getPreviewでn chグリーンタリー、getProgramTallyでn chの
レッドタリーを点灯させられました。
実際に動かすとこんな感じです。
Blackmagic Design ATEM TelevisionStudioのWi-FiワイヤレスタリーをESP-WROOM-02で作ってみた。 pic.twitter.com/P9NBDlHebd— じてんしゃP (@jitenshap) 2016年8月6日
最後に、ESP-WROOM-02をブレークアウトボードに付けずに、
UEW線で直配線してケースに入れました。
電源のコードだけ出ていますが、3.3VのACアダプタや、
レギュレーターを使いUSBやDVバッテリーなどで駆動させることができます。


※このままだとアレなのであとでユニバーサル基板に乗せました。
ケースには1/4”→3/8ネジ変換アダプターを底にグルーガンで固定し、
カメラネジで固定できるようにしたので、
コールドシュー→カメラネジ変換雲台でオンカメラできるようになりました。
ソーラーパネルで自立電源駆動するWi-Fi温度計の製作
今年は北陸も冬から比較的好天が続きましたね。
しかし、先日の台風で久々に天気が悪くなり、一気に気温が下がってすっかり秋模様です。
密閉度が高く、年間を通じて暖かい(暑い)自分のマンションでは、外に出てみたらもっと暑かっ
た!あるいは、寒かった!ということがままあります。
そこで、スマートフォンの機能で、
現在地付近の気象台の気温や天気が表示される機能を使ったりするのですが、
ときどき全然違う場所の天気が表示されたりと不便です。

自宅の外の気温が分かれば一番正確な情報がつかめ、
遠隔地から帰宅するさいにも自宅周辺の気温を知れるように、
自宅の外に気温を測定するデバイスを設置してみることにしました。
しかし、自宅マンションは、屋外に電源を取れるコンセントなどがありません。
隙間ケーブルで窓からPoE給電(できるのか?)や、電池駆動などさまざま考えましたが、
ここは以前からやってみたかった太陽光発電を使ってみることにしました。
PoE給電なら、イーサネットで測定したデータを送ることができますが、
太陽光発電の場合は屋内へデータを送り入れることができません。
そこで、隙間ケーブルを通してしまえば太陽光発電の意味がないので、
データも無線で屋内へ送ることにしました。
無線でデータを送るとなると、Zigbeeを使った通信モジュールである、
XBee、TWE-LITEなどをまず思い浮かべます。
しかし、これらは屋内に受信機を要します。せっかく送信側がソーラー発電なのに、
屋内では受信機が商用電源で常時駆動しているのはどうだろう…と思い、
Wi-Fiルータならすでに常時稼働しているということで、Wi-Fiでデータを送ることにしました。
Wi-Fiでデータを送るのに手っ取り早い方法として、
5,600円で購入できる工事設計認証済みのWi-Fi内蔵のマイコンがすでに出ています。
Espressif Systems 社製、ESP-WROOM-02というものです。
以前であればこのようなマイコンは自分のような素人の手には負えないのですが、
実はこのマイコン、海外ですでにESP8266というシリーズとして、
すでにDIYに広く使われているものベースであるため、
Arduino IDEで開発するためのパッケージが登場しています。
DIYに一般的な2.54mmピッチユニバーサル基板やブレッドボードで使うための
ブレークアウトボードにESP-WROOM-02が実装されている状態で売っているものもあり、
誰でも使える状態のものが手にはいります。
Wi-Fiモジュール ESP-WROOM-02 DIP化キット:
無線、高周波関連商品 秋月電子通商 電子部品 ネット通販
http://akizukidenshi.com/catalog/g/gK-09758/
Arduino IDEで開発できて、DIPになっていれば自分でも使える!
ということで自分も昨年夏ごろからちびちびいじっています。
さて、これが決まれば部品発注です。
マイコンの消費電力は低いので、6Vのシールドバッテリーを軸に、ソーラー発電のシステムを組みました。
3Wのソーラーパネルに、6Vバッテリー用のソーラー充電コントローラー、
6Vのシールドバッテリーだけでシステムは完結します。
筐体は防水性の高い、未来工業のウオルボックスというものを使用しました。
住宅の屋側配線によく使われているもので、工具レスで開閉できます。
仮設電気工事のブレーカーボックスとして見かける機会も多いです。

マイコンはDC3.3V駆動なので、
LDOレギュレーターを入れて充電コントローラーの負荷側に接続して3.3Vをつくりました。
肝心の温度計ですが、I2Cの温度計を以前からよくいじっていたので馬鹿のひとつ覚えで同じものを使いました。Analog Devices社製 ADT7410というもので、これをDIPにするブレークアウトボードが秋月電子通商から出ているのでこれを使っています。
ADT7410使用 高精度・高分解能 I2C・16Bit 温度センサモジュール:
センサ一般 秋月電子通商 電子部品 ネット通販
http://akizukidenshi.com/catalog/g/gM-06675/
ESP-WROOM-02では、ArduinoスケッチでWire.Begin(SDA,SCL)のように初期化してあげると
SDA,SCLが指定したピンに設定されて、I2C通信が使用できました。
センサはブレークアウトボードとピンヘッダを取り付けたユニバーサル基板を丸く切断し、
VE管用コネクタに押し込んで固定しました。


これでウオルボックスに熱がこもっても、
外に近い位置にセンサがあるため外の気温が測定できるのではとの淡い期待を込めています。
また、ウオルボックスにセンサ用の穴を直接開けるのに比べ、防水性が高まっています。
設置場所のベランダへの固定は、工事用の垂直突っ張り棒を使いました。
少し短かったので、コンクリートブロックで嵩上げをしています。
ソーラーパネルは自作のアングルで、ウオルボックスはパイプ用金具でこれに取り付けています。


あとはセンサで気温を測定し、自室のWi-Fiルータに無線LAN接続し、データをIPで送ればいいだけです。
しかし、サーバーやAPIを作る技術がありません。そこで、
IFTTT Maker Channelというものを使用しています。
https://ifttt.com/maker
IFTTTはさまざまなWebサービス同士の橋渡しをして、連携させてくれるWebサービスです。
https://ifttt.com/
Maker Channelは、名前のとおり自作のアプリやハードウェアで、
別のWebサービスに対して司令を行えるための機能のようです。
簡単な方法として、Maker Channelの使用を開始すると、ユニークなAPIキーが発行され、
それと任意の設定した文字列を含むURLへアクセスするとトリガーを放つというものがあります。
技術的にはURLに対してHTTPリクエストのGETリクエストを送信するということのようで、
ブラウザでURLを開く以外にもCUIやマイコンでGETリクエストを送ればそれができるようです。
さて、Maker Channelの放ったトリガーをなんのトリガーにするかと眺めていたら、
Google Docsのスプレッドシートにも対応していることがわかりました。
https://maker.ifttt.com/trigger/{event}/with/key
/APIキ-?{"value1":"aaa","value2":"bbb","value3":"ccc"}
というURLへGETリクエストを送信すると、
上のURLの場合aaa,bbb,cccという文字が
それぞれスプレッドシートに行を追加して書き込むことができます。
aaaの部分に測定した気温を入れて送信すれば気温をスプレッドシートに書き込めます。
これで、サーバーを立てずにクラウドで測定値を確認できます!
そのため、外出先からでも測定値が確認できます。
スプレッドシートではエクセルライクなUIで表計算ができます。
グラフも作成できるため、気温推移のグラフも作れます。

早速グラフを作ってみましたが、なんだか変な感じです。
データが増えれば増えるほどグラフが小さくなっていってしまいます。
データを古いものから消して、新しいものが表示されるようにならないものか…
といろいろ調べていたら、スプレッドシートには、
Google Apps Scriptというものが使えることを知りました。
Apps Scriptは、Googleのさまざまサービスで任意の処理を実行できるスクリプト機能で、
組んだスクリプトを一定時間間隔で実行することも可能です。
気温のデータは10分間隔でスプレッドシートに書き込まれてくるので、24時間分データが貯まったら、一番上の行を消して、測定データを1行ずつ上の行へ繰り上げていけば過去24時間のデータがグラフ化されるはずです。
任意のセルに数値が入っているとき…◯◯するのってどうやるんだろう?
選択範囲のセルを移動するのはどうするんだろう?
と調べつつスクリプトを組んだらうまくいきました。
(なぜか時々スクリプトの実行が失敗するので、そのときは手動で修正しています…。)
スプレッドシートで数値やグラフを確認するのはいまひとつスマートじゃないということで、
もうちょっと見栄えするページを作ってみることにしました。
Googleのサービス、Google サイトは、簡易ポータルサイトを作るのが容易で、
スプレッドシートのグラフやスプレッドシート自体の埋め込みもできます。
ちょちょいっとスプレッドシートのグラフをGoogleサイトに貼り付けたら
簡単に気温確認ページが作れました。
ソーラーWi-Fi百葉箱の測定値
https://sites.google.com/site/solarhyakuyobako/

あとは管理者として遠隔地からも充放電状況が知りたいので、
電流電圧センサを取り付け、そのデータも送信するようにし、
本体内部にも安い電圧系を取り付け、タクトSWを押すとバッテリ電圧を表示できるようにしました。
気温などの気象データの公開には、検定済みの装置を使い、
規定の設置要件、申請が必要であることなどが求められているようです。
そのため、この装置はあくまでもマイコンと小型のソーラー発電システムの実験目的で、
センサの出力数値をマイコンが送信したものを表示しているに過ぎないということを明記しています。
実際、マンションのベランダにあるという設置要件からして、正確性には乏しいはずです。
数値の変化を見て楽しむこと、
また前後の数値を比較して季節の移ろいや前日比の気温差などを参考にする
程度の使い方をするようにしています。
しかし、先日の台風で久々に天気が悪くなり、一気に気温が下がってすっかり秋模様です。
密閉度が高く、年間を通じて暖かい(暑い)自分のマンションでは、外に出てみたらもっと暑かっ
た!あるいは、寒かった!ということがままあります。
そこで、スマートフォンの機能で、
現在地付近の気象台の気温や天気が表示される機能を使ったりするのですが、
ときどき全然違う場所の天気が表示されたりと不便です。

自宅の外の気温が分かれば一番正確な情報がつかめ、
遠隔地から帰宅するさいにも自宅周辺の気温を知れるように、
自宅の外に気温を測定するデバイスを設置してみることにしました。
しかし、自宅マンションは、屋外に電源を取れるコンセントなどがありません。
隙間ケーブルで窓からPoE給電(できるのか?)や、電池駆動などさまざま考えましたが、
ここは以前からやってみたかった太陽光発電を使ってみることにしました。
PoE給電なら、イーサネットで測定したデータを送ることができますが、
太陽光発電の場合は屋内へデータを送り入れることができません。
そこで、隙間ケーブルを通してしまえば太陽光発電の意味がないので、
データも無線で屋内へ送ることにしました。
無線でデータを送るとなると、Zigbeeを使った通信モジュールである、
XBee、TWE-LITEなどをまず思い浮かべます。
![]() |
| TOCOS TWE-LITE DIP |
しかし、これらは屋内に受信機を要します。せっかく送信側がソーラー発電なのに、
屋内では受信機が商用電源で常時駆動しているのはどうだろう…と思い、
Wi-Fiルータならすでに常時稼働しているということで、Wi-Fiでデータを送ることにしました。
Wi-Fiでデータを送るのに手っ取り早い方法として、
5,600円で購入できる工事設計認証済みのWi-Fi内蔵のマイコンがすでに出ています。
Espressif Systems 社製、ESP-WROOM-02というものです。
![]() |
| ESP-WROOM-02 |
実はこのマイコン、海外ですでにESP8266というシリーズとして、
すでにDIYに広く使われているものベースであるため、
Arduino IDEで開発するためのパッケージが登場しています。
DIYに一般的な2.54mmピッチユニバーサル基板やブレッドボードで使うための
ブレークアウトボードにESP-WROOM-02が実装されている状態で売っているものもあり、
誰でも使える状態のものが手にはいります。
Wi-Fiモジュール ESP-WROOM-02 DIP化キット:
無線、高周波関連商品 秋月電子通商 電子部品 ネット通販
http://akizukidenshi.com/catalog/g/gK-09758/
Arduino IDEで開発できて、DIPになっていれば自分でも使える!
ということで自分も昨年夏ごろからちびちびいじっています。
さて、これが決まれば部品発注です。
マイコンの消費電力は低いので、6Vのシールドバッテリーを軸に、ソーラー発電のシステムを組みました。
3Wのソーラーパネルに、6Vバッテリー用のソーラー充電コントローラー、
6Vのシールドバッテリーだけでシステムは完結します。
筐体は防水性の高い、未来工業のウオルボックスというものを使用しました。
住宅の屋側配線によく使われているもので、工具レスで開閉できます。
仮設電気工事のブレーカーボックスとして見かける機会も多いです。

マイコンはDC3.3V駆動なので、
LDOレギュレーターを入れて充電コントローラーの負荷側に接続して3.3Vをつくりました。
肝心の温度計ですが、I2Cの温度計を以前からよくいじっていたので馬鹿のひとつ覚えで同じものを使いました。Analog Devices社製 ADT7410というもので、これをDIPにするブレークアウトボードが秋月電子通商から出ているのでこれを使っています。
ADT7410使用 高精度・高分解能 I2C・16Bit 温度センサモジュール:
センサ一般 秋月電子通商 電子部品 ネット通販
http://akizukidenshi.com/catalog/g/gM-06675/
ESP-WROOM-02では、ArduinoスケッチでWire.Begin(SDA,SCL)のように初期化してあげると
SDA,SCLが指定したピンに設定されて、I2C通信が使用できました。
センサはブレークアウトボードとピンヘッダを取り付けたユニバーサル基板を丸く切断し、
VE管用コネクタに押し込んで固定しました。


これでウオルボックスに熱がこもっても、
外に近い位置にセンサがあるため外の気温が測定できるのではとの淡い期待を込めています。
また、ウオルボックスにセンサ用の穴を直接開けるのに比べ、防水性が高まっています。
設置場所のベランダへの固定は、工事用の垂直突っ張り棒を使いました。
少し短かったので、コンクリートブロックで嵩上げをしています。
ソーラーパネルは自作のアングルで、ウオルボックスはパイプ用金具でこれに取り付けています。


あとはセンサで気温を測定し、自室のWi-Fiルータに無線LAN接続し、データをIPで送ればいいだけです。
しかし、サーバーやAPIを作る技術がありません。そこで、
IFTTT Maker Channelというものを使用しています。
https://ifttt.com/maker
IFTTTはさまざまなWebサービス同士の橋渡しをして、連携させてくれるWebサービスです。
https://ifttt.com/
Maker Channelは、名前のとおり自作のアプリやハードウェアで、
別のWebサービスに対して司令を行えるための機能のようです。
簡単な方法として、Maker Channelの使用を開始すると、ユニークなAPIキーが発行され、
それと任意の設定した文字列を含むURLへアクセスするとトリガーを放つというものがあります。
技術的にはURLに対してHTTPリクエストのGETリクエストを送信するということのようで、
ブラウザでURLを開く以外にもCUIやマイコンでGETリクエストを送ればそれができるようです。
さて、Maker Channelの放ったトリガーをなんのトリガーにするかと眺めていたら、
Google Docsのスプレッドシートにも対応していることがわかりました。
https://maker.ifttt.com/trigger/{event}/with/key
/APIキ-?{"value1":"aaa","value2":"bbb","value3":"ccc"}
というURLへGETリクエストを送信すると、
上のURLの場合aaa,bbb,cccという文字が
それぞれスプレッドシートに行を追加して書き込むことができます。
aaaの部分に測定した気温を入れて送信すれば気温をスプレッドシートに書き込めます。
これで、サーバーを立てずにクラウドで測定値を確認できます!
そのため、外出先からでも測定値が確認できます。
グラフも作成できるため、気温推移のグラフも作れます。

早速グラフを作ってみましたが、なんだか変な感じです。
データが増えれば増えるほどグラフが小さくなっていってしまいます。
データを古いものから消して、新しいものが表示されるようにならないものか…
といろいろ調べていたら、スプレッドシートには、
Google Apps Scriptというものが使えることを知りました。
Apps Scriptは、Googleのさまざまサービスで任意の処理を実行できるスクリプト機能で、
組んだスクリプトを一定時間間隔で実行することも可能です。
気温のデータは10分間隔でスプレッドシートに書き込まれてくるので、24時間分データが貯まったら、一番上の行を消して、測定データを1行ずつ上の行へ繰り上げていけば過去24時間のデータがグラフ化されるはずです。
任意のセルに数値が入っているとき…◯◯するのってどうやるんだろう?
選択範囲のセルを移動するのはどうするんだろう?
と調べつつスクリプトを組んだらうまくいきました。
(なぜか時々スクリプトの実行が失敗するので、そのときは手動で修正しています…。)
スプレッドシートで数値やグラフを確認するのはいまひとつスマートじゃないということで、
もうちょっと見栄えするページを作ってみることにしました。
Googleのサービス、Google サイトは、簡易ポータルサイトを作るのが容易で、
スプレッドシートのグラフやスプレッドシート自体の埋め込みもできます。
ちょちょいっとスプレッドシートのグラフをGoogleサイトに貼り付けたら
簡単に気温確認ページが作れました。
ソーラーWi-Fi百葉箱の測定値
https://sites.google.com/site/solarhyakuyobako/

あとは管理者として遠隔地からも充放電状況が知りたいので、
電流電圧センサを取り付け、そのデータも送信するようにし、
本体内部にも安い電圧系を取り付け、タクトSWを押すとバッテリ電圧を表示できるようにしました。
めっちゃ安い電圧計付けた☺ pic.twitter.com/BMM97RLdV2— じてんしゃP (@jitenshap) 2016年3月17日
気温などの気象データの公開には、検定済みの装置を使い、
規定の設置要件、申請が必要であることなどが求められているようです。
そのため、この装置はあくまでもマイコンと小型のソーラー発電システムの実験目的で、
センサの出力数値をマイコンが送信したものを表示しているに過ぎないということを明記しています。
実際、マンションのベランダにあるという設置要件からして、正確性には乏しいはずです。
数値の変化を見て楽しむこと、
また前後の数値を比較して季節の移ろいや前日比の気温差などを参考にする
程度の使い方をするようにしています。
2015年3月1日日曜日
自転車縦置きスタンド Cyclelocker CS-600レビュー
小学生の時に買ったGTのMTBが、フレームサイズがXSのため、
高校ではもうとっくに乗れなくなっていまして、これまでママチャリ1台で走っていました。
大学に入りバイトでなんとか中古の
現在はボロいワンルームマンションに住んでいるのですが、駐輪場がいっぱいで、
すでに通学用のママチャリを置いているため、MTBを追加で置くのは迷惑になってしまいます。
そのため、屋内保管を強いられています。
が、7畳ワンルームにホイールベースの長いMTBを置くのは邪魔!!
ということで、少しでも専有面積を減らそうと、自転車を縦置きするスタンドを導入しました。
こんな箱で届きました。
意外と小さくでびっくり。
| CS-600の箱 |
組み立ては簡単。
脚部とベース部と支柱を結ぶため、4本*2のボルトを6角レンチで締めるだけです。
| ここをボルトで固定 |
| 完成! |
支柱は2つに分割されているのですが、こちらはボルト留め不要。
プラスチックのレバーで固定します。高さ調整をここで行えるんですね。
| 支柱接続部 |
| レバーでロック/リリース |
高さ調整は自転車を立てかけて行います。クランクを後転させて
突起にちょうど当たる位置で固定します。
| ベストポジション? |
フリーホイールのラチェットにより、正回転方向にはタイヤが回転できないと回らないため、
倒れずに自立します。すごいですね!
ホイールで支えているわけではないため、ホイールを痛めずにすみます。
| MTBを立てたところ |
| フロントホイールはハンドルが曲がらないように挟まっているだけ。 |
|
サドルの高さや動画撮影用カメラマウントの関係で、縦置きしても縦の長さが結構高く、
結構場所を取ってしまっていますが、それでも横置きよりは専有面積が減りました。
広い玄関が付いているお家などでは、玄関に置くこともできそうです。
剛性感が少し足りず若干グラつきますが、それなりにちゃんと自立できているのでよしとします。
スペースを広く使いたい方にはお勧めいたします!
登録:
投稿 (Atom)



