電気と電子と電波の日記

自分のための備忘メモです

無線モジュール HC-12

中国から433MHz帯のワイヤレスシリアルモジュールHC-12という製品をebay個人輸入してみた。1台4ドル弱。2台購入してみた。

f:id:t1000zawa:20161002204404j:plain

この製品、このチップを使用したモジュールで

http://www.silabs.com/products/wireless/EZRadioPRO/Pages/Si446x.aspx

中国のこのメーカー製のモジュールで

汇承HC-12远距离433m无线串口模块SI4463替代蓝牙单片机1000M

スマートメーターやリモコンシステムに使われるものらしい。

モジュールの英文マニュアルはこれ

http://avrproject.ru/112/rf_hc12/2016-01-14_122335_HC-12_v2.3B.pdf

433MHzから473MHzの400KHzステップで任意の1chを設定しシリアルデータ通信が可能だが、最大20dBm(100mW)も出てしまう。

このまま日本国内で使用するには電波法違反となるので、出力設定を最低限にして、疑似空中線を接続して実験してみる。(アンテナ端子とアース間をを50Ω抵抗で接続)

モジュールには、MCUが搭載されていて、設定モードにすると9600bpsのシリアルで、ATコマンドを使った設定が可能となっている。最初は、PCとUSBシリアル変換モジュールで接続し、teratermで接続してみたがERRORという文字列が返ってくるだけ。なぜだか理由のわからないまま、次にモジュールをAruduinoに接続し、PCからシリアルで送った文字列を、モジュールに転送するスケッチを走らせて、AruduinoIDEのシリアルモニタからATコマンドを送信したところ、モジュールとうまく通信できた。

今度は対向で通信する実験をしてみたいが、モジュールのうたい文句の1000m(1km)の通信をするには、日本国内では無線局の免許を受ける必要がある。ぜひ保証認定を受けて430MHzのアマチュア無線局の無線設備として免許を受け、大手を振って使ってみたいものだが、そもそもスペック的に法令を満たすのか、調査が必要である。GFSKかG4FSKかOOK。占有周波数帯がダメだろうね。

www.ebay.com

無線設備規則の占有周波数帯域幅を眺めつつ、ふと空中線電力の許容偏差の規定が気になって、改めて無線設備規則第十四条を見てみる。我々アマチュア無線局は上限のみ+20%まで許容されていて下限はないが、その他の無線局は、上限も下限も局の種類ごとにきめ細かく規定されている。それぞれどんな根拠で決められているのか、ここまでバラバラに規定する必要があるのか、気になるところである。

 

 

 

 

電波時計モジュール

 以前aitendoで購入した電波時計モジュール JJY3850(40kHzタイプ)の動作チェックをおこなった。モジュールから出ているのは6pinで、基板に印字されているピン名は、H-P-(無印)-T-G-Vとなっているが、データシートが見当たらないのでオシロで見ながら探る。Vに+3V、GにGNDを接続。PをGNDに落とさないと、受信出力が出ないようだ。Tは受信出力(パルス)だが論理が逆。(無印)ピンが正論理の受信出力だった。

f:id:t1000zawa:20160921082437j:plain

 電波時計を送信するJJYは、毎時15分と45分にコールサインをモールス信号で送っている。今回、確かにJJYというモールス信号を出しているのが、オシロの画面で見えた(笑)下はその写真で、トツーツーツー、トツーツーツー、ツートツーツーというパルスがJJYである。 f:id:t1000zawa:20160921082512j:plain

 

(無印)ピンの出力をAruduinoでデコードしてみるとうまくデコードできた。が、せっかく用意したスケッチが、HDDクラッシュで消失したのが痛い。 

f:id:t1000zawa:20160921082519j:plain

f:id:t1000zawa:20160921082545j:plain

 

 

 

arduino

最近ESP8266で遊んでいるが、arduinoはこれまで持っていなかった。ESP8266の開発にはリファレンスが必要、という言い訳で、本家arduino unoを先月購入していた。箱もマニュアルも洗練されている。
f:id:t1000zawa:20160914095538j:image

でも本家は値段が高いので、互換機として名高いaitendo の、びんぼうでいいの も購入している。
びんぼうでいいの、はLCDつきの999円のキットを製作したものだが、pcとUSBで接続しても電源は入るがシリアルポート認識されない。びんぼうでいいの  のUSBシリアルチップは、怪しげな?中華製のCH340で、PCには怪しげな?ドライバをインストール済みである。しばし悩んだ結果、びんぼうでいいのは 16MHz水晶だけでなく、シリアルチップのために12MHz水晶が必要で、付け忘れていることに気づいた。そもそもキットに水晶が入っていなかったと思う。相手はaitendo なので、まあいいか、という気持ちで、手持ちの水晶付けて無事動作したのであった。
f:id:t1000zawa:20160914100153j:image

雷センサー製作中2(ESP-WROOM-02 AS3935)

AS3935の雷センサーモジュールを、WiFiモジュールESP-WROOM02(ESP8266)との組み合わせで動かすプロジェクトについての備忘。

 AS3935使用 雷センサーモジュール

Wi−Fiモジュール ESP−WROOM−02

 まず、AS3935の動作を確認するために、秋月のサイトにAruduinoを使ったサンプルhttp://akizukidenshi.com/download/ds/akizuki/AE_AS3935DEMO_a.zip試してみた。Aruduino UNOとI2C液晶を使いテストハードを作成。AruduinoIDE1.6.5を使ってサンプルスケッチを手順通りにコンパイルし、まったく問題なく動作確認できた。

 次に同じサンプルスケッチを、IDEのボードの選択をESP8266にした環境でコンパイルしてみたが、当然そのままではうまくいかないので、以下の項目を変更した。

・ヘッダファイルESP8266WiFi.hをincludeする。

・EPS8266はハードタイマーが使えないようなので、FreqCounterが動かないようだ。そこでFreqCounter.hを外す。関連の関数CALIB_LCD() とFREQ_COUNT()を呼び出さないようにする。

・AS3935からのIRQ受信ピンをpin12に設定する。

・液晶を3.3V設定に変更する。

・loopのwhile(1)ループにdelayを入れる。入れないとwdtエラーが出て再起動を繰り返してしまった。

問題は、受信周波数の設定。この雷センサーの仕組みは500KHzをバーアンテナで受信して空電ノイズを解析するというものだが、同調回路のコンデンサーはソフトで設定するようになっている。センサーのチップに指定のコマンドを送ると、IRQpinに同調周波数を分周したパルスが出力されるようになっている。

秋月のサンプルスケッチは、そのコマンドを送った後、Aruduino自身の周波数カウンタでセンサーからのパルスを測定し、センサーのコンデンサの容量を1ステップずつ変更して、もっとも500KHzに近くなるコンデンサの値を設定する、という仕組みが付いている。

ESP8266はハードウェアタイマーが無いようで周波数を簡単にカウントする方法がなさそうなので、同調周波数を分周したパルスを出力するコマンドを出してコンデンサの値を1ステップずつ変更するループを作り、センサー出力にオシロスコープを接続して周波数測定するという方法で最適なコンデンサの設定値を求めることにした。1/16分周の場合、500KHzに同調しているときのクロック31.25KHzである。設定は固定になるが電源電圧や温度によって受信周波数がどう変わるか実験してみたいところだが、今回はこれで良しとする。

 次はWiFi機能を活かすために、以下の機能をスケッチに追加。この辺はトランジスタ技術9月号の特集を参考にした。

・自宅のルーターWiFi接続する設定をする。DHCP使用。

・NTPcliantを使えるようにし、液晶に時刻表示するようにした。

・雷の距離、強度のデータは、udpで送信かつIOT用シンプルグラフ化サイトAmbientに送るようにした。

ここまでやって、さて動作確認となるが、発雷のシミュレーションが難しい。本物の雷なんて、そうしょっちゅう来るものでもない。

f:id:t1000zawa:20160907085013j:plain

そこで今回は、少々乱暴だがDC12Vの安定化電源の出力をショートさせて、火花を発生させてみた。

f:id:t1000zawa:20160908201521j:plain

安定化電源の保護回路には酷だが何度かバチバチやってみる。

f:id:t1000zawa:20160908201534j:plain

空電のノイズのイメージはラジオの受信や無線の経験から、バチバチバチではなく、ガリっ、しばらくしてガリ、という感じである(笑)

AMラジオも使って、それっぽいノイズの再現を試す。

イメージが合ったのか、めでたくLIGHTNING DETECTが出た。検出したデータは自宅ネットワーク内にudpでブロードキャストされたことと、Ambientにもアップロードできたことを確認した。

f:id:t1000zawa:20160908201503j:plain

ここまで来たら、次の目標が見えてきた。

・せっかくワイヤレスなのだからノイズレベルの低い屋外か窓際で常時稼働させたいので太陽電池による充電機能のついた電池駆動とする。

・雷なんて毎日検出するものではなく、それだけで常時稼働はもったいない気がするので、何か別のセンサーを同居させる。

続く