100円ショップのダイソーで買った名刺サイズのケースがユニバーサル基板にぴったり。
基板はネジなどで固定せずにコードフックのアームを90度くらいに開いて、そこに乗せるようにしました。こちらのコードフックも100円ショップで購入です。サイズはいろいろあるけど、この写真のは16個入りの極小タイプ。
スポンジのクッションが付いているので大丈夫だとは思いますが、コードフックのベースになっている部分は金属なのでショートしないようになにか巻いておいたほうが安全かもしれません。
月: 2016年6月
PICとWROOM-02でNTP機能付き時計を作ってみる
(最初にことわっておきますが、PICからWROOMへATコマンドを送って時刻を取得します。Arduinoでやるやり方ではないです。)
PICマイコンとESP-WROOM-02で電波時計ならぬ、インターネットへ接続しNTPサーバから時刻を取得し自動で時刻修正する時計を作っていきたいと思います。早い話、電波時計のインターネット版だと思ってください。
夏休みの自由研究なんかにうってつけなんじゃないでしょうか?
概要:
・PICはPIC18F25K22-I/SPを使用
・ESP-WROOM-02は公式のNONOSファーム v1.5.4を使用
・プログラムを作って書込むのはPICだけ
・PICとWROOMの通信はUSARTでATコマンドを使用
・7セグをダイナミック点灯。7セグは秋月の[OSL40391-LG]を使用
・時計用のクロックは32.768kHz水晶発振子を使用
・1日に1回時刻を自動修正
・開発環境はMPLAB X v3.30, xc8 v1.3.7を使用
回路は以下の通り。
LED用の抵抗値は使用するLEDに合わせて適宜変えてください。
MPLAB X用プロジェクトファイル
ダウンロード:PIC18F25k22_WifiClock160622a.zip
このプログラムの改変は自由に行ってもらっても良いですが、再配布や直リンクは禁止とします。また、営利目的のための使用も禁止します。
このサイトへのリンクは歓迎です。
使い方:
①まずは、プログラムをご自分のWifi環境に書き換えてください。
変更する箇所はmain.cの冒頭のここの部分。
書換えたらビルドしてPICに書込んでください。
②初回起動時はSW1またはSW2を押したまま電源を投入するとWifiアクセスポイントへ接続をここみます。LEDが点灯したらSWを離してください。
2回目以降の起動はSWを押しながらでなくても最後に接続したアクセスポイントをWROOMは覚えているので自動で接続します。
(Wifiアクセスポイントの設定は2つ登録でき、SW1を押しながらのときとSW2を押しながらのときで切り替えることが可能)
③LEDが点滅になると時刻を調整している最中です(約1分)。
④約1分後、LEDが消灯すれば調整は成功。LEDが点灯だと失敗です。
通常時のスイッチ操作について
SW1を押すと押している間、時刻表示から秒表示に切り替わります。
時刻表示中にSW2を押すと時刻を1分進めます。長く押すとどんどん進めます。
秒表示中にSW2を押すと現在の時刻のまま秒だけ0秒にします。
WROOM-02を最新ファームV1.5.4に更新してみる
前回の記事の通り、WROOM-02に書かれているファームウェアが古かったので新しいものを書き込んでみたいと思います。今回ここで行うのはATコマンドを使えるファームです。
では、最新版をダウンロードします。
(ファームは日々更新されています。さらに新しいバージョンが出ていたら適宜読み替えて行ってください)
●ファームウェアのデータ本体のダウンロード先は
http://www.espressif.com/en/support/download/sdks-demos
2016/06/12現在最新のESP8266 NONOS SDK V1.5.4をダウンロードしました。
ちなみにATコマンド対応のファームはNONOSというやつです。
最新版のリリースなどいろいろとフォーラム内でアナウンスされているので、詳しく知りたい人はそちらで確認してください。→ESPRESSIFのフォーラム
●書込みツール「ESP8266 Flash Download Tools v2.4」のダウンロードはココ
http://www.espressif.com/en/support/download/other-tools
追記:リンク先のサイトが更新されました。「ESP8266 Flash Download Tools v3.3.4」がリリースされたようですが、まだ試していません。
●資料のpdf「ESP8266 AT Instruction Set」もダウンロードしておきましょう
http://www.espressif.com/en/support/download/documents
↑下線の補足にあるようにダウンロードしたファームウェアバージョンに対応したpdf資料
●回路の修正「IO0をグランドに」
ファームウェアを書き換えるにはIO0をグランド側につなげてあげる必要があります。
パソコン側の接続方法の詳細は前にやったここを参考にしてください。
WROOM-02と通信してみる
前回までで配線はできたので、今回は実際にソフトを使って通信してみます。一番オーソドックスなソフトでやっていきたいと思います。また、当サイトで解説しているのはWindowsでのやり方です。MacやLinuxはわからないのでスミマセン。
まず、通信用ソフトとして「TeraTerm」というフリーソフトをインストールします。
窓の杜 http://forest.watch.impress.co.jp/library/software/utf8teraterm/
ここに書いてあるバージョンと違っても、そのときの最新版をダウンロードしてインストールすれば問題ないと思います。今回はv4.91をダウンロードしました。
インストールしてTeraTermを起動します。このときWROOMに3.3Vの電源はまだつなげないでおきます。
シリアルのラジオボタンを選択して、接続するポートを選択します。人によってここの表示は違います。我が家の環境では、COM1がデスクトップPCの裏側についているシリアルポート。COM3がサンワサプライのUSBシリアル変換器。COM4がFT232RLのUSBシリアル変換モジュールでした。
上部のメニューから設定→端末 を選んで送信コードをCR+LFにしOKを押します。
さらに、設定→シリアルポートでボーレートを115200にしてOKを押します。
WROOMに3.3Vの電源をつなげてみます。文字化けした文字が流れ最後にreadyと表示されたら接続は成功です。readyが表示されないときはボーレートが違ってたり、違うCOMポートだったりするので設定を見直してください。
AT+GMR⏎
と入力してみます。するとWROOMに書かれているファームウェアのバージョンが表示されます。
今回の例では
AT version:0.40.0.0
SDK version:1.3.0
で、2015年の8月のバージョンだということがわかりました。
今となっては古いので次回はファームウェアの更新をしてみたいと思います。
WROOM-02とパソコンをつなげてみる
最近はやっているという噂の技適OKな格安WIFIモジュール「ESP-WROOM-02(以下WROOM)」を秋月で買ってみたのでちょこちょことこれについて書いてみたいと思います。
で、今回やってみたかったのはインターネットに接続して自動で時刻修正する7セグ時計です。
電子工作初心者なので成功するかどうかも未知数ですがお付き合いください。
パソコンとWROOMを接続してテストするには次の回路のように接続します。
ざっくり「パソコン側○○へ」と書いてますが、USARTのシリアル通信ができればどんなんでもOKです。あと電源は3.3V 2.0AのACアダプタを使いました。WROOMにGNDピンが3つあるけど、内部でつながっているのでどれか1つで良いのでグランドにつなげてください。
パソコン側はいろんな方法があると思うけど、今回2つの方法で試してみました。どちらも秋月とかで簡単に手に入るので持ってない人は一緒に買うと良いかもです。
①FT232RLを使った仮想USBシリアル通信
②ADM3202ANを使ったRS-232Cレベル変換でシリアル通信
では①の方法で必要なのは
FT232RL USBシリアル変換モジュール
http://akizukidenshi.com/catalog/g/gK-01977/
たぶんこの方法が一番一般的だと思います。接続の回路図はさっきの回路図に追加して書くと次のような感じ。
パソコン側はUSBなのでどのパソコンでもOKですし、抵抗とかコンデンサとか使わなくても簡単に接続できるのでおススメです。950円出す価値はあります。ちなみにFT232RLの3V3OUTからUSBのバスパワーを3.3Vに変換した電源がでているから、わざわざACアダプタを使わなくても良いのでは?と思いますが、容量不足でファーム書込み中とかに落ちたりしたら厄介なのでおとなしく最初からACアダプタを使いました。グランドマークは全部同じ電位するためにケーブルやジャンパ線で結線してください。
②の方法で必要なのは
ADM3202AN
http://akizukidenshi.com/catalog/g/gI-03030/
ちょっと古いやり方ですがこちらも問題なくできました。
こちらも複数あるグランドマークは全部結線してください。
パソコン側はRS-232Cなのでちょっと古めのデスクトップPCを使っている人か、こんなような↓USBシリアル変換器をもっている人用になります。
私はサンワサプライのこれを持っていたので使いました。
あと、RS-232Cの延長ケーブル使う場合はクロスとかストレートとかあるので注意してください。
それでは実際にパソコンを使って通信する方法は次の記事で。