ESP8266搭載ボードのWifi Witty / Gizwits ESP-12F

Aliexpressの「FYD Open Source Hardware」というセラーから買う際にいろいろみていいたら「ESP8266 serial WIFI Witty cloud Development Board ESP-12F module」(送料込み$4.48)というものを発見。

いろいろ調べていくと「Shenzhen CAIZHIXING Electronic Co., Ltd」の「ESP8266 serial WIFI Witty cloud Development Board ESP-12F module MINI nodemcu」だと$3.20で販売している。

Gizwits」という会社のプロダクトらしい。

(おまけ:esp8266コミュニティに「esp8266-module-family(ESP8266採用モジュール一覧)」発見)

で、作例を探してみると「Wifi Witty ESP-12F Board」を発見。

Arduino IDEでの設定も書かれている

ボードタイプ: NodeMCU v1.0 (ESP-12E Module)
CPU Frequency: 80 MHz
Flash Size: 4M (3M SPIFFS)
Upload Speed: 11520

下記のサンプルコードを書き込んでみる

const int LDR = A0;
const int BUTTON = 4;
const int RED = 15;
const int GREEN = 12;
const int BLUE = 13;
 
void setup() 
{
    Serial.begin(11520);
 
    pinMode(LDR, INPUT);
    pinMode(BUTTON, INPUT);
    pinMode(RED, OUTPUT);
    pinMode(GREEN, OUTPUT);
    pinMode(BLUE, OUTPUT);
}
 
void loop()
{
    Serial.print("LDR: ");
    Serial.println(analogRead(LDR));
    Serial.print("BUTTON: ");
    Serial.println(digitalRead(BUTTON));
 
    analogWrite(RED, random(0,1023));
    analogWrite(GREEN, random(0,1023));
    analogWrite(BLUE, random(0,1023));
 
    delay(500);
}

問題無く動作した。

USB2.0-Serialのドライバ(esp8266の安ボードで使っていたシリアル)はCH341

esp8266搭載の安いボードを買って、Windows7パソコンにつなげるとドライバが標準認識せず「USB2.0-Serial」となる。

VID 1A86, PID 7523 (VID_1A86&PID_7523) のドライバは何であるのかを調べると、江苏沁恒股份有限公司(WCH)CH340らしい。

ドライバは下記のメーカページからダウンロードできる。
CH341SER.EXE(実行形式のドライバインストーラ)
CH341SER.ZIP(ZIP形式のドライバ)

どちらもバージョンは3.4(2015/10/30 or 2015/11/02)なので、好みに応じてどうぞ

インストールするとドライバのバージョンは 3.4.2014.8 (2014/08/08) でした。


2019/06/27追記

現在は、2019/01/30付けのバージョン3.5が配布されています。


2021/12/01追記

コメントでMicrosoft Updateカタログで「VID_1A86&PID_7523」を検索するとドライバが入手できるようになっている、との情報をいただきました。

というわけで、ネットワークをつないだ状態で該当デバイスをさして、Microsoft Updateをかければドライバがインストールされそうですね。


2023/08/17追記

Microsoft Updateで検索すると「wch.cn – Ports – 1.7.2023.2」と「wch.cn – Ports – 3.8.2023.2」のメジャーバージョンが異なる2種類が出てるようになっていた。

「wch.cn – Ports – 3.8.2023.2」は CH330, CH340, CH341 用のドライバ

USB-SERIAL CH340,USB-SERIAL CH341A,USB-SERIAL CH340K,USB-SERIAL CH330

「wch.cn – Ports – 1.7.2023.2」は CH342以降やCH9101以降などの新しめのやつのドライバ

USB-Enhanced-SERIAL-A CH342,USB-Enhanced-SERIAL-B CH342,USB-Enhanced-SERIAL CH343,USB-Enhanced-SERIAL-A CH344,USB-Enhanced-SERIAL-B CH344,USB-Enhanced-SERIAL-C CH344,USB-Enhanced-SERIAL-D CH344,USB-Enhanced-SERIAL CH9101,USB-Enhanced-SERIAL CH9102,USB-Enhanced-SERIAL-A CH9103,USB-Enhanced-SERIAL-B CH9103,USB-Enhanced-SERIAL-A CH9104,USB-Enhanced-SERIAL-B CH9104,USB-Enhanced-SERIAL-C CH9104,USB-Enhanced-SERIAL-D CH9104,USB-BLE-SERIAL CH9143,USB-HiSpeed-SERIAL-A CH347,USB-HiSpeed-SERIAL-B CH347

WeMos社のESP8266プロダクトD1 mini V2とD1 mini Pro

最近、WiFi接続のちょっとしたデバイスをESP8266で作る、という風潮があります(偏見)

ただ、この「ESP8266」という定義が2つある、というのがちょっとわかりにくい点だと思っています。

まず、本来の「ESP8266」というのはチップ(SoC)としての名称です。
これは「Espressif社(乐鑫信息科技)」が作っています。

これを使いやす基板に組み込んでモジュールとして販売しているものが一般的な「ESP8266」と呼ばれているものです。本来であれば「ESP8266モジュール」と呼ぶべきでしょうか?

この「ESP8266モジュール」には、オリジナルの「Espressif社(乐鑫信息科技)」が作成している「ESP-WROOM-02」が有名です。
このほかに、後発の「Ai-thinker社(安信可科技)」が作成しているものがあります。
どちらも上に乗っているチップ(SoC)は、Espressif社が製造したESP8266もしくはESP8266EXが使われています。

日本で販売しており、また、技適も取得されているのはEspressif社の「ESP-WROOM-02」です。
Kickstarter案件だとコスト面から、安いAi-thiker社のものを使っていることが多いようです。
技適はモジュール全体として取得されるものであるため、Ai-thinker社のものは技適外となります。

で・・・いろいろ見ていたら、さらに「WeMos Electronic」というところからもESP8266モジュールが出ているようです。

・「WEMOS D1 mini Pro」
 Flash 16MB
 WiFiアンテナは外付けのものを取り付ける必要あり
 シールド(電波遮蔽)が省略されているので薄い
 (電波遮蔽をしなくても使える、というわけではなく別途ケースで遮蔽して、ケースの外側にWiFiアンテナ取り付けろ、という意図)
 we-002a

・「WEMOS D1 mini V2」
 Flash 4MB
 WiFiアンテナは基板上にあり
 シールド(電波遮蔽)部分があるので、ちょっと厚い
 we-001

価格は・・・$5$4

↓な感じで普通の基板に取り付けやすい状態なのが利点ではあるものの・・・まぁ、技適がないというあたりが問題で・・・
HTB1KY8NLpXXXXXvaXXXq6xXFXXXd

ハードウェア版マウスふるふる(Arduino Leonardo互換のCJMCU beetleの工作例)

CJMCU Beetleという小型のUSB接続のマイコンボードに標準で書かれているプログラムは、USBキーボード/マウスとして認識し、マウスをランダムで動かすという機能となっているらしいので入手してみた。

ネタ元: Okiraku Programing「USB直結のスクリーンセーバーブロッカー

購入はAliexpressの「Beetle ard Leonardo USB ATMEGA32U4 mini development board」から行った。
送料込みで$7.78で、8/22発注、8/25発送、9/1到着、という感じで届きました。


とりあえずWindows10パソコンに接続してみる。

標準でfirmware書き換え用のUSBシリアルポートを認識するというのも驚いた。(Windows7ではドライバ認識はしなかった)

USBキーボードとマウスが認識されてはいるんだが、期待通りにマウスが小刻みに動いている場合と、全然動かない場合が・・・というか、動かないことの方が多い・・・

また、赤いLEDランプが点灯期間が長めの点滅でちょっとうざい。

もうちょっとなんとかならないかとカスタマイズを実施。

準備1:Arduino IDEをインストール

Arduino IDEをインストールする。

準備2:ボード「Arduino Leonardo」を選択

Arduino IDEでボートとして「Arduino Leonardo」を選択する。

準備3:CJMCU beetleをUSBポートにさす

CJMCU beetleをUSBポートにさして認識されるのを待つ(ドライバにより認識が変わる)

準備4:シリアルポートを選択

Arduino IDEで使用するシリアルポートを適切なものに設定する。具体的には「Arduino Leonardo (COM?)」と認識された番号のものを選択する。

準備5:IDE上のボード認識を確認

Arduio IDEの「Get Board Info」で「BN:Arduino Leonardo」と表示されることを確認

プログラミング実施

コードとして以下を入力する。

#include <Mouse.h>
#define LEDPIN 13

void setup() {
  pinMode(LEDPIN, OUTPUT);
  Mouse.begin();
}

int x=4;

void loop() {
  // put your main code here, to run repeatedly:
  Mouse.move(x, 0, 0);
  digitalWrite(LEDPIN, HIGH);   // turn the LED on
  delay(500);
  digitalWrite(LEDPIN, LOW);   // turn the LED off
  x = -x;
  delay(4500);
}

ボードへの書き込みを実施

スケッチ-マイコンボードに書き込むで書き込みを実施する。

なお、今回のこのコードは5秒間隔でマウスを動かし、動かす際にLEDを短時間点灯させる、というものになっています。

LEDの点灯をさせたくなければ「digitalWrite」の行を削除すればokです。

USBコネクタサイズに収まるESP8285搭載ボード

cnx-softwareで興味深い小型のESP8285ボードが紹介されていた。

USB Fun – Tiny USB WiFi and Hub Boards and micro USB Hub
esp8285-1

作成例として下記が紹介されている。

このボードをUSBキーボード/マウスとしてラズパイに認識させて、
Webブラウザ経由で操作を行うことができる、というもの
esp8285-2

ソフトウェアとしてはESP8266でも実装できるらしい
というか、先日公開された、ESP8266でUSBを喋らすことに成功した人が作ったものだった・・・

ESP8266 USB Software Driver