ノードMCU

ノードエムキュー
NodeMCU 開発キット 1.0
開発者ESP8266 オープンソースコミュニティ
タイプシングルボードマイクロコントローラ
導入価格5ドル
CPUESP8266 [ 1 ] (LX106 [ 2 ] )
メモリ128kバイト
ストレージ4MBytes [ 3 ]
USB
Webサイトwww.nodemcu.com
NodeMCU DEVKIT 1.0、下部

NodeMCUは低コストのオープンソースIoTプラットフォームです。[ 4 ] [ 5 ]当初は、Espressif SystemsESP8266 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を超えるモジュールが搭載されました。

ESP8266 Arduino コア

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には対応していません。

参照

参考文献

  1. ^ゾハイブ・ハッサン、アビジート、アプールヴァ・シャルマ。 「インターネット・オブ・ライフ(IOL)」。 (2015年)。 ISBN 978-93-5156-328-0
  2. ^ Brian Benchoff (2014年10月25日). 「ESP8266 Wi-Fiチップ用SDK」 . Hackaday . 2015年4月2日閲覧
  3. ^ Vowstar. 「NodeMCU Devkit」 . Github . NodeMCUチーム. 2015年4月2日閲覧
  4. ^ Zeroday. 「Wi-Fi-SOC ESP8266用Luaベースファームウェア」 . Github . 2015年4月2日閲覧
  5. ^ハリ・ウィグナ。「NodeMCU LUA ファームウェア」ハッカデイ2015 年4 月 2 日に取得
  6. ^ a b Systems, Espressif. 「Espressif Systems」 . Espressif-WikiDevi . 2017年12月1日時点のオリジナルよりアーカイブ2017年6月3日閲覧。
  7. ^ Brian Benchoff (2015年1月2日). 「ESP LUAインタープリター用開発ボード」 Hackaday . 2015年4月2日閲覧
  8. ^ a b「IBM Developer」
  9. ^ Mpx. 「Lua CJSONはLua用の高速JSONエンコード/解析モジュールです」 . Github . 2015年4月2日閲覧
  10. ^ Pellepl. 「組み込みデバイス向けウェアレベル対応SPIフラッシュファイルシステム」 . GitHub . 2015年4月2日閲覧
  11. ^ 「NodeMCU - IoTに最適なボード」circuito.ioブログ2018年11月21日。 2021年5月27日閲覧
  12. ^ Espressif system (2013年12月30日). 「IoT Wi-Fi 802.11b/g/n統合SoCの量産実装」 . 中国上海讯. 2015年4月2日時点のオリジナルよりアーカイブ。 2015年4月2日閲覧
  13. ^ Hong. 「NodeMCUファームウェアの最初のコミット」 . Github . 2015年4月2日閲覧
  14. ^ Huang R. 「NodeMCU devkitの初期設計」 . Github . 2015年4月2日閲覧
  15. ^ Tuan PM. 「ESP8266用MQTTクライアントライブラリ」 . Github . 2015年4月2日閲覧
  16. ^ Olikraus、Daniel Sittig、「8ビット組み込みシステム向けユニバーサルグラフィックライブラリ」。Googleコード。 2015年4月2日閲覧
  17. ^ Devsaurus. 「U8glib for esp8266」 . Github . 2015年4月2日閲覧
  18. ^ 「Arduino用ESP8266コア」GitHub2019年1月10日閲覧
  19. ^ 「gpio - NodeMCUドキュメント」 . nodemcu.readthedocs.io . 2018年11月11日閲覧