Archive for the ‘ESP8266’ Category
IoT 開発における Arduino ファミリーの優位性 – nodeMCU を使う理由
IoT 開発のために主として Arduino ファミリーと呼ぶことができるマイコンボードを使っている。ここで「Arduino ファミリー」と言っているのは、オフィシャルな Arduino 開発環境である Arduino IDE を使って開発でき、物理的な仕様もほぼ Arduino に準じているものを指している。
IoT開発のためのマイコンボードについて考える – その必要な特性は何か – Raspberry Pi と Arduino
現在、様々なマイコンボードが開発され生産、販売されており、それらは様々な用途に利用されているが、IoT 開発におけるマイコンボードに必要な特性は何だろう。
どこかに統計データがあるかもしれないが、現時点、2017年12月25日において、俺の日常的な感覚からすれば世界で最も利用されているマイコンボードは Raspberry Pi と Arduino だ。
Raspberry Pi の特徴は高性能であるということに尽きる。Raspberry Pi に最適化された OS Raspbianをインストールしてキーボードとモニタを繋げば普通の Linux PC として機能する。高機能であることの裏返しとして、OS をインストールしなければならない手間と価格が高いデメリットがある。たとえば Amazon で Raspberry Pi 3 Model B V1.2 国内正規代理店品の価格は 5,578 円だ。もうひとつ、Raspberry Pi の使いにくさとして A/D コンバータを持っていないことがある。アナログセンサを Raspberry Pi で使うには A/D コンバータを別途取り付けなければならない。ただし I2C などディジタル通信によるセンサも充実してきたので、これからはアナログ入力処理の必要は少なくなるかもしれない。ただマイコンボードや制御の学習のためにはアナログ入力処理ができたほうがいいだろう。
Arduino の特徴はオープンソースハードウエアであることだろう。回路設計が公開されており、だれでも電子部品を組み合わせて同じものを作ることができる。このために中国製を中心とする膨大なクローンが市場にあふれている。現在 Arduino を代表するモデル Arduino UNO R3 は Amazon で 999 円で手に入る。中国系のサイトでは 300 円だ。また互換品も多い。小型で Wi-Fi モジュールを搭載した WeMos D1 mini は俺のお気に入りだが、中国系サイトで 310 円から 350 円くらいだ。さらに Arduino UNO R3 は D/A コンバータを搭載しておりアナログ入力を処理できる。
データ処理はクラウドで行う時代になり、マイコンボードでは高度な処理を必要としない。したがって IoT でのマイコンボードの役割は、センサからデータを受け取りインターネットに送信することになるだろう。そのためにはセンサの値を読む I/O とともに、ネットワーク通信機能が必須になる。現時点では Wi-Fi が扱いやすいだろう。安定して動作すること、安価であることも重要だ。できるだけ多くのセンサを設置し、継続して大量のデータを収集することがビッグデータの時代には必要だ。壊れやすかったり単価が高ければ数多く設置することが難しい。そのためには高機能であることよりもシンプルな設計が望ましい。
もしマイコンボードにデータベースの機能を持たせたり、Web サービスなど高度な役割を持たせたいなら Raspberry Pi だろう。しかし単純にデータ収集を行うためなら Arduino だろう。ただ Arduino では通信処理において実装が難しいものもある。今一歩 Arduino が進化し、CPU や ストレージなどの機能が高くなれば IoT における主役として確固たる位置につけるはずだ。それを期待している。
2017年7月18日
松本 吉生(まつもとよしお)
Microsoft MVP Data Platform
1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。現在は兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行う。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在14回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞。
Windows XP で Arduino IDE 1.8.2 をインストールして ESP8266 Community ボードパッケージを適用し、nodeMCU Amica にスケッチを書きこもうとするとエラーがおこる – bits フォルダに cxxabi_tweaks.h ライブラリを配置すると解消する。
Windows XP Service Pack 2 のノートパソコンを使って Arduino の開発環境を整えようとしている。Arduino IDE はバージョン 1.8.2 を使い、インストールする。この状態で、オリジナルの Arduino UNO は開発することができ、また CH340 や CP210 の USB シリアル変換ドライバを適用すれば Arduino UNO のクローンも開発することができる。しかし、ボードマネージャを使って ESP8266 ボードパッケージをインストールしても、nodeMCU Amica や nodeMCU LoLin にスケッチを書きこもうとするとエラーが出て書き込めない。
このときのエラーは、以下のようなものになっている。
—————————————————————————————-
Arduino:1.8.2 (Windows XP), ボード:”NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)”
In file included from C:\Documents and Settings\user\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\abi.cpp:23:0:
c:\documents and settings\user\local settings\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\cxxabi.h:50:32: fatal error: bits/cxxabi_tweaks.h: No such file or directory
#include <bits/cxxabi_tweaks.h>
^
compilation terminated.
exit status 1
ボードNodeMCU 1.0 (ESP-12E Module)に対するコンパイル時にエラーが発生しました。
「ファイル」メニューの「環境設定」から
「より詳細な情報を表示する:コンパイル」を有効にすると
より詳しい情報が表示されます。
—————————————————————————————-
このエラーからは、必要なライブラリがないことでコンパイルエラーになっていることがわかる。実際にフォルダを開くと、確かに必要なライブラリがない。
そこで、この「bits」フォルダに「cxxabi_tweaks.h」ライブラリをコピーする。「cxxabi_tweaks.h」ライブラリは、GitHub などから入手する。
Arduino IDE を再起動し、Blink のスケッチを書きこむとうまくいった。
2017年6月14日
松本 吉生(まつもとよしお)
Microsoft MVP Data Platform
1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。現在は兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行う。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在14回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞。
ESP8266 Wi-Fi SoC を搭載した nodeMCU には大きさ、形が異なるいくつかのタイプがある。一見同じもののように見える 2つのタイプを比べてみる。
いわゆる nodeMCU と呼ばれるマイコンボードは、オンボードに ESP8266 の Wi-Fi モジュールを搭載しており、IoTデバイスとして安価で使いやすいものだ。IoT ではマイコンボードをネットワークにつなぐことに大きな意味があるのだが、他の多くの安価なマイコンボードではネットワーク関連のデバイスはオプションパーツ扱いになっていることが多い。パーツがオプションであるということは、自由度がある代わりに本体とパーツ、間のインタフェースと、トラブルシュートに要する項目が増える問題がある。その点、オンボードでネットワークモジュールを搭載しているマイコンボードでは、それらを考慮する必要がないので開発が楽だ。しかも nodeMCU は極めて安価である。
nodeMCU は日本の Amazon でも買うことができるが、大きさや形が異なるいくつかのタイプがある。このうち、よく似ていて一見すると同じもののように見える 2つのタイプを比べよう。
こうして横に並べて比べると違いがわかるが、ネットで注文するときなどは、よく見ないと違いがわからない。まず全体の大きさが違うのだが、これらを別々のページで見たときには、大きさではわかりにくいだろう。そこで比べるには、搭載している部品の配置に注目するといい。わかりやすいのは USB コネクタの近くにある、おそらく USB シリアルインタフェースチップだと思われる黒い IC チップだ。写真の右側、「LoLin」と呼ばれる nodeMCU では横長のチップが搭載されているが、左側の「Amica」と呼ばれる nodeMCU では正方形の小さめのチップが搭載されている。あと違いが目に付くのは、左の「Amica」のきれいに整列したチップ抵抗だと思われる部品、あるいはチップコンデンサと思われるオレンジ色の大きめの部品あたりだろう。
裏から見れば違いはよくわかる。写真の右側には、おそらく雲をイメージしてデザインしたシンボルマークと「NODEMCU Amica」の名前がある。右側は「LoLin」と書かれている。
さて、この 2タイプの nodeMCU だが、プロトタイピングにおいて大きさの違いが使い勝手に影響するところは、一般的な長潟のブレッドボードを使うときに、大きい方の「LoLin」ではピンの穴を全部覆ってしまい、信号を取り出せなくなるところだ。これに対して小さい方の「Amica」では、かろうじて 1ラインは信号を取り出せるように残っている。
もし「LoLin」を長潟のブレッドボードで使いたいなら、2枚ならべて使うことになるだろう。
2017年4月28日
松本 吉生(まつもとよしお)
Microsoft MVP Data Platform
1961年京都に生まれ、神戸で幼少期を過ごす。大学で応用化学を学んだのち、理科教諭として高等学校に勤務する。教育の情報化が進む中で校内ネットワークの構築運用に従事し、兵庫県立明石高等学校で文部科学省の「光ファイバー網による学校ネットワーク活用方法研究開発事業」に携わる。兵庫県立西宮香風高等学校では多部制単位制の複雑な教育システムを管理する学籍管理データベースシステムをSQL ServerとInfoPath、AccessなどのOfficeソフトウエアによるOBA開発で構築・運用する。現在は兵庫県立神戸工業高等学校でC#プログラミング、IoTなどのコンピュータ教育を行う。2004年からマイクロソフトMVP(Microsoft Most Valuable Professional)を受賞し、現在14回目の連続受賞。2016年にマイクロソフト認定教育者(Microsoft Innovative Educator Experts : MIEE)を受賞。