概要
前回フル版で AT コマンドが送信できるまでやってみました
今回はフル版を Arduino 化して Arduino スケッチが動作するようにしてみたいと思います
環境
- Arduino IDE 1.6.9
- ESP-WROOM-02ピッチ変換済みモジュール《フル版》
- FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)
- ジャンパケーブル
Arduino IDE で ESP8266 を扱えるようにする方法はこちらを参考に事前にセットアップしておいてください
配線
ほぼ前回と同じですが違う点が 2 点あります
Arduino のスケッチを書き込むために「UART Download Mode」にする必要があります
これにするには
- IO0 ピンを GND に接続
- RST ピンを GND に接続 -> 抜く
ということを行う必要があります
これをすることで ESP-WROOM-02 のモードが変わります
スケッチ
Wifi に接続して MQTT に Publish できるか確認するスケッチです
ここは各自で確認しやすいスケッチにしてください
単純に GPIO (IO14) とかを制御して LED を点滅させるだけでも OK です
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = "ssid";
const char* password = "ssid password";
const char* mqtt_server = "your.mqtt.broker";
const int mqtt_port = 1883;
const char* mqtt_pub_topic = "pub_topic";
const char* mqtt_username = "broker username";
const char* mqtt_password = "broker password";
WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];
int value = 0;
void setup_wifi() {
delay(10);
WiFi.begin(ssid, password);
}
void reconnect() {
while (!client.connected()) {
if (client.connect("ESP8266Client", mqtt_username, mqtt_password)) {
client.publish(mqtt_pub_topic, "hello world");
} else {
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server, mqtt_port);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
long now = millis();
if (now - lastMsg > 10000) {
lastMsg = now;
++value;
snprintf (msg, 75, "hello world #%ld", value);
Serial.print("Publish message: ");
Serial.println(msg);
client.publish(mqtt_pub_topic, msg);
}
}
Arduino IDE から書き込めるか確認してみましょう
ちゃんとモードが変わっている場合は問題なく書き込めると思います
モードが変わっていないと以下のようなエラーが発生すると思います
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
最後に
ESP-WROOM-02 のフル版を Arduino 化してみました
面倒なのはスケッチを一度書き込むと実行するためにモードが「Flash Boot Mode」に戻ってしまいます
なので再度スケッチを書き込む場合は RST ピンをまた GND に接続させて抜く必要があります
この辺は開発ボードを使っているとわかるのですが、スイッチ等を実装しておくと押すだけでモードを切り替えられるようになるので楽です
まだフル版でガッツリ開発していないので何とも言えないのですが、フル版はいろいろ面倒です
もし、今回の配線を崩してしまった場合、またフル版で開発したいと思ったら同じ配線をブレッドボード上にしなければなりません
開発ボードの場合、スケッチを書き込むだけであればそんなことは必要ありません
このままブレッドボード上に配線しっぱなししてもいいのですが、それもちょっと、、、
大量に使う場合とか、スケッチをもう書き換える必要がない場合などはフル版の方が安くて小型なので、良いと思います
ゴリゴリスケッチを書き換えたり配線を変える場合は、やはりフル版よりかは開発ボードのほうが断然簡単なのでオススメです
0 件のコメント:
コメントを投稿