NodeMCU 開発キット 1.0 | |
| 開発者 | ESP8266 オープンソースコミュニティ |
|---|---|
| タイプ | シングルボードマイクロコントローラ |
| 導入価格 | 5ドル |
| CPU | ESP8266 [ 1 ] (LX106 [ 2 ] ) |
| メモリ | 128kバイト |
| ストレージ | 4MBytes [ 3 ] |
| 力 | USB |
| Webサイト | www.nodemcu.com |
NodeMCUは低コストのオープンソースIoTプラットフォームです。[ 4 ] [ 5 ]当初は、Espressif SystemsのESP8266 Wi-Fi SoCで動作するファームウェアと、ESP-12モジュールをベースにしたハードウェアが含まれていました。[ 6 ] [ 7 ]その後、ESP32 32ビットMCUのサポートが追加されました。
NodeMCUはオープンソースのファームウェアであり、オープンソースのプロトタイピングボード設計が利用可能です。「NodeMCU」という名称は、「ノード」と「MCU」(マイクロコントローラユニット)を組み合わせたものです。[ 8 ]厳密に言えば、「NodeMCU」という用語は、関連する開発キットではなく、ファームウェアを指します。
ファームウェアとプロトタイピングボードの設計はオープンソースです。[ 8 ]
ファームウェアはLuaスクリプト言語を使用しています。ファームウェアはeLuaプロジェクトをベースにしており、ESP8266用のEspressif Non-OS SDK上に構築されています。lua-cjson [ 9 ]や組み込みコントローラ用フラッシュファイルシステムであるSPIFFS [ 10 ]など、多くのオープンソースプロジェクトを使用しています。リソースの制約により、ユーザーはプロジェクトに適したモジュールを選択し、ニーズに合わせてファームウェアを構築する必要があります。32ビットESP32のサポートも実装されています。
プロトタイピングに一般的に使用されるハードウェアは、USBコントローラと、MCUおよびアンテナを搭載した小型の表面実装基板を統合したデュアル・インライン・パッケージ(DIP)として機能する回路基板です。DIP形式を採用することで、ブレッドボード上でのプロトタイピングが容易になります。この設計は当初、IoTアプリケーションで広く使用されているTensilica Xtensa LX106コアを統合したWi-Fi SoCであるESP8266のESP-12モジュールをベースにしていました(関連プロジェクトを参照)。
NodeMCUにはバージョン0.9と1.0の2つのバージョンがあり、バージョン0.9にはESP-12が含まれ、バージョン1.0にはESP-12Eが含まれます。ここで、Eは「Enhanced」の略です。[ 11 ]
NodeMCUはESP8266が発売された直後に作成されました。2013年12月30日、Espressif Systems [ 6 ]がESP8266の生産を開始しました。[ 12 ] NodeMCUは、Hongがnodemcu-firmwareの最初のファイルをGitHubにコミットした2014年10月13日に始まりました。[ 13 ] 2か月後、開発者のHuang RがESP8266ボードのガーバーファイルであるdevkit v0.9をコミットし、プロジェクトはオープンハードウェアプラットフォームを含むように拡大しました。 [ 14 ]その月の後半に、Tuan PMがContikiからMQTTクライアントライブラリをESP8266 SoCプラットフォームに移植し、[ 15 ] NodeMCUプロジェクトにコミットし、NodeMCUはLuaを使用してMQTTブローカーにアクセスすることでMQTT IoTプロトコルをサポートできるようになりました。 2015年1月30日には、Devsaurusがu8glib [ 16 ]をNodeMCUプロジェクトに移植し[ 17 ]、NodeMCUがLCD、スクリーン、OLED、さらにはVGAディスプレイを簡単に駆動できるようになったという重要なアップデートが行われました。
2015年夏、オリジナルの開発者はファームウェアプロジェクトを放棄し、独立した貢献者グループが引き継ぎました。2016年夏までに、NodeMCUには40を超えるモジュールが搭載されました。
Arduino.ccは、Arduino Dueで使用されているARM/SAM MCUのような非AVRプロセッサをベースにした新しいMCUボードの開発を開始した際、 Arduino IDEを比較的容易に変更し、Arduino C/C++をこれらの新しいプロセッサ用にコンパイルできるように、代替ツールチェーンをサポートするようにする必要がありました。彼らは、ボードマネージャとSAMコアを導入することでこれを実現しました。「コア」とは、ボードマネージャとArduino IDEが対象MCUの機械語向けにArduino C/C++ソースファイルをコンパイルするために必要なソフトウェアコンポーネントの集合です。ESP8266愛好家の中には、ESP8266 WiFi SoC用のArduinoコアを開発し、一般に「Arduino IDE用ESP8266コア」と呼ばれています。[ 18 ]これは、NodeMCUを含む様々なESP8266ベースのモジュールや開発ボード向けの主要なソフトウェア開発プラットフォームとなっています。
NodeMCUはGPIO(汎用入出力)へのアクセスを提供し、ピンマッピングテーブルはAPIドキュメントの一部です。[ 19 ]
| I/Oインデックス | ESP8266ピン |
|---|---|
| 0 [*] | GPIO16 |
| 1 | GPIO5 |
| 2 | GPIO4 |
| 3 | GPIO0 |
| 4 | GPIO2 |
| 5 | GPIO14 |
| 6 | GPIO12 |
| 7 | GPIO13 |
| 8 | GPIO15 |
| 9 | GPIO3 |
| 10 | GPIO1 |
| 11 | GPIO9 |
| 12 | GPIO10 |
[*] D0 (GPIO16) はGPIOの読み書きにのみ使用できます。オープンドレイン/割り込み/PWM/I²C/1-Wireには対応していません。