Arduino勉強会/0R-ESP8266を単体で使う
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[Arduino勉強会]]
#contents
2015/11/03からのアクセス回数 &counter;
注意!
ESP8266を単体で使うと、初期に書き込まれているプログラムを...
WiFiを使う場合には、ESP8266のWiFi用APIを使用することにな...
** ESP8266の使い方 [#ba35df91]
ESP-WROOM-02に搭載されているESP8266は、単体としてもArduin...
使えることが以下のサイトに紹介されていました。
- [[技適済み格安高性能Wi-FiモジュールESP8266をArduinoIDE...
これに習って開発環境を整えてみます。
*** ArduinoIDEを整備 [#z6faf463]
esp8266をArduinoIDEで開発できるようにコミュニティが活動さ...
- https://github.com/esp8266/Arduino
esp8266の開発には1.6.4のArduino IDEを使いました。
- https://www.arduino.cc/en/Main/OldSoftwareReleases#prev...
開発環境には少し古い1.6.4-673-g8cd3697(2015/05/22版)の...
Arduino IDEを起動し、Arduino Preferrencesを起動し、
Additional Boards Manager URLs: に以下のURLをコピーしてく...
#pre{{
http://arduino.esp8266.com/versions/1.6.4-673-g8cd3697/pa...
}}
ツール→Boards Managerを選択し、スクロールするとesp8266が...
これをクリックし、Installボタンを押します。
&ref(th_install.png);
これで、ボードメニューの下に「Generic ESP8266 Module」が...
*** ブレッドボードでLチカを試す [#u88d68c2]
ESP8266のピン配置をCerevo TechBlogさんのブログから再度引...
&ref(http://tech-blog.cerevo.com/wp-content/uploads/2015/...
JP1は、GNDとIO0をショートさせてUART DownLoad Modeにします。
((従ってATコマンドは使えなくなります。初期状態に戻すには...
シリアルモジュールと USBシリアルモジュール
((FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)...
との接続は、以下の通りです。RSTとシリアルのDTRの間に0.1μF...
ArduinoIDEの書き込み時にリセットが掛かるようにします。
| ESP-WROOM-02 | USBシリアル |h
| 12 TXD | RXD |
| 11 RXD | TXD |
| 15 RST 0.1μF経由 | DTR |
&ref(brd_setting.png);
*** ESP8266のピン配置 [#q627ce60]
ねむいさんのブログからESP-WROOM-02のピンの仕様を引用しま...
&ref(ESP-WROOM-02_pin.png);
ESP8266用のArduinoについては、以下のマニュアルを参照でき...
- https://github.com/esp8266/Arduino/blob/master/doc/ref...
ユーザが利用可能なピンは以下の通りです。
| ESP-WROOM-02 | Name | I/O | ArduinoIDE |h
| 4 | IO12 | INPUT, OUTPUT, INPUT_PULLUP, PWM, SDA | 12 |
| 5 | IO13 | INPUT, OUTPUT, INPUT_PULLUP, PWM | 13 |
| 10 | IO4 | INPUT, OUTPUT, INPUT_PULLUP, PWM | 4 |
| 14 | IO5 | INPUT, OUTPUT, INPUT_PULLUP, PWM, SCL | 5 |
| 16 | TOUT | AnalogIn (0 - 1.0V) | A0 |
| 17 | IO16 | INPUT, OUTPUT, INPUT_PULLDOWN_16,PWM | 16 |
*** 最新のバージョン1.6.5ではコンパイルできない [#n8554f00]
最新のバージョンではMac OSX10.7.5でコンパイルすると以下の...
Arduino IDE1.6.4とesp8266の開発環境も1.6.4を使用します。
&ref(compile_error.png);
#pre{{
/Users/ユーザ名/Library/Arduino15/packages/esp8266/tools/...
コンパイル時にエラーが発生しました。
}}
*** 定番LチカでI/Oをチェック [#v5d31bb5]
LEDと抵抗470Ωを直結してGNDに接続し、ESP-WROOM-02の5番ピン...
これで、サンプルプログラムBlinkをアップロードすれば、Lチ...
上手く行ったら、以下のピンでも試してみてください。
- 4: Arduinoの12
- 5: Arduinoの13(最初に確認済み)
- 10: Arduinoの4
- 14: Arduinoの5
- 17: Arduinoの16
*** 温度を測る [#pa54aeb8]
ESP-WROOM-02でのアナログリードについて、以下のサイトを参...
- http://qiita.com/azusa9/items/26e74e4e0d5773ce9c41
注意:最初にリセットの配線をしていると、以下のSerialが正...
一度、LED点滅のテストが修了したら、リセットに使った配線は...
USBシリアルのリセットを外したので、スケッチを書き込む時に...
USBシリアルを外してから行ってください。
以下のスケッチでアナログ入力の値をみてみましょう。
#pre{{
#include <ESP8266WiFi.h>
extern "C" {
#include "user_interface.h"
}
void setup() {
Serial.begin(9600);
Serial.println("start");
}
void loop() {
delay(1000);
int val = system_adc_read(); //analogRead(A0);
Serial.println(val);
}
}}
analogRead(A0)を使うと外れた値(918)が返ってきました。
これを上記サイトのsystem_adc_read()に替えると、実測値に近...
テスターの値が245.8mVで259/1023x1.0V=0.253Vと近い値が返さ...
&ref(LM35_test.png);
*** タクトスイッチを追加 [#bba1da7f]
次に、タクトスイッチを追加して、ボタンを押したときだけ温...
修正します。
ブレッドボードに以下の様にタクトスイッチを追加します。
抵抗値は10KΩ、ESP-WROOM-02の10ピン(IO4)に接続します。
&ref(sw_brd.png);
タクトスイッチを押すと、シリアルモニタにLM35の読み取り値...
&ref(sw_monitor.png);
** IFTTTに温度を送る [#te8c72f3]
準備が整ったで、LM35で読み取った温度をIFTTTに送ってみます。
スケッチは、以下の通りです。
#pre{{
#include <ESP8266WiFi.h>
extern "C" {
#include "user_interface.h"
}
#define ST_SSID "SSID名"
#define ST_PASSWD "SSIDのパスワード"
#define SERVER_NAME "maker.ifttt.com"
#define SERVER_PORT 80
#define EVENT "RecordLM35"
#define SECRET_KEY "ここにSECRET_KEYを入れてください"
int sw_pin = 4;
int led_pin = 13;
int lm35_value;
char buf[128];
WiFiClient client;
void setup() {
Serial.begin(9600);
Serial.println("start");
// ピンの初期設定
pinMode(sw_pin, INPUT);
pinMode(led_pin, OUTPUT);
digitalWrite(led_pin, LOW);
// WiFiの設定
// WiFiクライアントモードに設定
WiFi.mode(WIFI_STA);
// WiFiへの接続
WiFi.begin(ST_SSID, ST_PASSWD);
// 接続が完了するまで、LEDを点滅
while (WiFi.status() != WL_CONNECTED) {
digitalWrite(led_pin, HIGH);
delay(500);
digitalWrite(led_pin, LOW);
delay(500);
}
// 接続が完了したら、LEDを点灯
digitalWrite(led_pin, HIGH);
}
void loop() {
if (digitalRead(sw_pin) == LOW) {
Serial.println("SW pressed");
// チャタリング防止
Serial.println(500);
lm35_value = system_adc_read(); //analogRead(A0);
int temp10 = (int)((lm35_value*1.0)/1023.0*1000); //...
sprintf(buf, "temp=%d.%df", temp10/10, temp10%10);
Serial.println(buf);
//
if (client.connect(SERVER_NAME, SERVER_PORT)) {
Serial.println("connected");
// makerのIFTTTにイベントを送る
sprintf(buf, "GET /trigger/%s/with/key/%s?value1=%d...
client.println(buf);
client.println("Host: maker.ifttt.com");
client.println("Accept: */*");
client.println();
Serial.println("Request has sent!");
}
}
}
}}
ルータへの接続確認のために、LEDも付けました。
単独で動かすときには、JP1の2と3ピンにジャンパーをセットし...
((プログラムを書き込むには、JP1の1と2ピンにジャンパーをセ...
&ref(ESP8266_LM35_SW_LED.png);
iPhoneには、IFTのイベントが発行されたとの通知が無事届きま...
&ref(IFT_Notifiaction.png);
** コメント [#sc419088]
#vote(おもしろかった[13],そうでもない[1],わかりずらい[5])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- LM35で温度を計測し、IFTTTサーバにアップする部分までを追...
#comment_kcaptcha
終了行:
[[Arduino勉強会]]
#contents
2015/11/03からのアクセス回数 &counter;
注意!
ESP8266を単体で使うと、初期に書き込まれているプログラムを...
WiFiを使う場合には、ESP8266のWiFi用APIを使用することにな...
** ESP8266の使い方 [#ba35df91]
ESP-WROOM-02に搭載されているESP8266は、単体としてもArduin...
使えることが以下のサイトに紹介されていました。
- [[技適済み格安高性能Wi-FiモジュールESP8266をArduinoIDE...
これに習って開発環境を整えてみます。
*** ArduinoIDEを整備 [#z6faf463]
esp8266をArduinoIDEで開発できるようにコミュニティが活動さ...
- https://github.com/esp8266/Arduino
esp8266の開発には1.6.4のArduino IDEを使いました。
- https://www.arduino.cc/en/Main/OldSoftwareReleases#prev...
開発環境には少し古い1.6.4-673-g8cd3697(2015/05/22版)の...
Arduino IDEを起動し、Arduino Preferrencesを起動し、
Additional Boards Manager URLs: に以下のURLをコピーしてく...
#pre{{
http://arduino.esp8266.com/versions/1.6.4-673-g8cd3697/pa...
}}
ツール→Boards Managerを選択し、スクロールするとesp8266が...
これをクリックし、Installボタンを押します。
&ref(th_install.png);
これで、ボードメニューの下に「Generic ESP8266 Module」が...
*** ブレッドボードでLチカを試す [#u88d68c2]
ESP8266のピン配置をCerevo TechBlogさんのブログから再度引...
&ref(http://tech-blog.cerevo.com/wp-content/uploads/2015/...
JP1は、GNDとIO0をショートさせてUART DownLoad Modeにします。
((従ってATコマンドは使えなくなります。初期状態に戻すには...
シリアルモジュールと USBシリアルモジュール
((FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)...
との接続は、以下の通りです。RSTとシリアルのDTRの間に0.1μF...
ArduinoIDEの書き込み時にリセットが掛かるようにします。
| ESP-WROOM-02 | USBシリアル |h
| 12 TXD | RXD |
| 11 RXD | TXD |
| 15 RST 0.1μF経由 | DTR |
&ref(brd_setting.png);
*** ESP8266のピン配置 [#q627ce60]
ねむいさんのブログからESP-WROOM-02のピンの仕様を引用しま...
&ref(ESP-WROOM-02_pin.png);
ESP8266用のArduinoについては、以下のマニュアルを参照でき...
- https://github.com/esp8266/Arduino/blob/master/doc/ref...
ユーザが利用可能なピンは以下の通りです。
| ESP-WROOM-02 | Name | I/O | ArduinoIDE |h
| 4 | IO12 | INPUT, OUTPUT, INPUT_PULLUP, PWM, SDA | 12 |
| 5 | IO13 | INPUT, OUTPUT, INPUT_PULLUP, PWM | 13 |
| 10 | IO4 | INPUT, OUTPUT, INPUT_PULLUP, PWM | 4 |
| 14 | IO5 | INPUT, OUTPUT, INPUT_PULLUP, PWM, SCL | 5 |
| 16 | TOUT | AnalogIn (0 - 1.0V) | A0 |
| 17 | IO16 | INPUT, OUTPUT, INPUT_PULLDOWN_16,PWM | 16 |
*** 最新のバージョン1.6.5ではコンパイルできない [#n8554f00]
最新のバージョンではMac OSX10.7.5でコンパイルすると以下の...
Arduino IDE1.6.4とesp8266の開発環境も1.6.4を使用します。
&ref(compile_error.png);
#pre{{
/Users/ユーザ名/Library/Arduino15/packages/esp8266/tools/...
コンパイル時にエラーが発生しました。
}}
*** 定番LチカでI/Oをチェック [#v5d31bb5]
LEDと抵抗470Ωを直結してGNDに接続し、ESP-WROOM-02の5番ピン...
これで、サンプルプログラムBlinkをアップロードすれば、Lチ...
上手く行ったら、以下のピンでも試してみてください。
- 4: Arduinoの12
- 5: Arduinoの13(最初に確認済み)
- 10: Arduinoの4
- 14: Arduinoの5
- 17: Arduinoの16
*** 温度を測る [#pa54aeb8]
ESP-WROOM-02でのアナログリードについて、以下のサイトを参...
- http://qiita.com/azusa9/items/26e74e4e0d5773ce9c41
注意:最初にリセットの配線をしていると、以下のSerialが正...
一度、LED点滅のテストが修了したら、リセットに使った配線は...
USBシリアルのリセットを外したので、スケッチを書き込む時に...
USBシリアルを外してから行ってください。
以下のスケッチでアナログ入力の値をみてみましょう。
#pre{{
#include <ESP8266WiFi.h>
extern "C" {
#include "user_interface.h"
}
void setup() {
Serial.begin(9600);
Serial.println("start");
}
void loop() {
delay(1000);
int val = system_adc_read(); //analogRead(A0);
Serial.println(val);
}
}}
analogRead(A0)を使うと外れた値(918)が返ってきました。
これを上記サイトのsystem_adc_read()に替えると、実測値に近...
テスターの値が245.8mVで259/1023x1.0V=0.253Vと近い値が返さ...
&ref(LM35_test.png);
*** タクトスイッチを追加 [#bba1da7f]
次に、タクトスイッチを追加して、ボタンを押したときだけ温...
修正します。
ブレッドボードに以下の様にタクトスイッチを追加します。
抵抗値は10KΩ、ESP-WROOM-02の10ピン(IO4)に接続します。
&ref(sw_brd.png);
タクトスイッチを押すと、シリアルモニタにLM35の読み取り値...
&ref(sw_monitor.png);
** IFTTTに温度を送る [#te8c72f3]
準備が整ったで、LM35で読み取った温度をIFTTTに送ってみます。
スケッチは、以下の通りです。
#pre{{
#include <ESP8266WiFi.h>
extern "C" {
#include "user_interface.h"
}
#define ST_SSID "SSID名"
#define ST_PASSWD "SSIDのパスワード"
#define SERVER_NAME "maker.ifttt.com"
#define SERVER_PORT 80
#define EVENT "RecordLM35"
#define SECRET_KEY "ここにSECRET_KEYを入れてください"
int sw_pin = 4;
int led_pin = 13;
int lm35_value;
char buf[128];
WiFiClient client;
void setup() {
Serial.begin(9600);
Serial.println("start");
// ピンの初期設定
pinMode(sw_pin, INPUT);
pinMode(led_pin, OUTPUT);
digitalWrite(led_pin, LOW);
// WiFiの設定
// WiFiクライアントモードに設定
WiFi.mode(WIFI_STA);
// WiFiへの接続
WiFi.begin(ST_SSID, ST_PASSWD);
// 接続が完了するまで、LEDを点滅
while (WiFi.status() != WL_CONNECTED) {
digitalWrite(led_pin, HIGH);
delay(500);
digitalWrite(led_pin, LOW);
delay(500);
}
// 接続が完了したら、LEDを点灯
digitalWrite(led_pin, HIGH);
}
void loop() {
if (digitalRead(sw_pin) == LOW) {
Serial.println("SW pressed");
// チャタリング防止
Serial.println(500);
lm35_value = system_adc_read(); //analogRead(A0);
int temp10 = (int)((lm35_value*1.0)/1023.0*1000); //...
sprintf(buf, "temp=%d.%df", temp10/10, temp10%10);
Serial.println(buf);
//
if (client.connect(SERVER_NAME, SERVER_PORT)) {
Serial.println("connected");
// makerのIFTTTにイベントを送る
sprintf(buf, "GET /trigger/%s/with/key/%s?value1=%d...
client.println(buf);
client.println("Host: maker.ifttt.com");
client.println("Accept: */*");
client.println();
Serial.println("Request has sent!");
}
}
}
}}
ルータへの接続確認のために、LEDも付けました。
単独で動かすときには、JP1の2と3ピンにジャンパーをセットし...
((プログラムを書き込むには、JP1の1と2ピンにジャンパーをセ...
&ref(ESP8266_LM35_SW_LED.png);
iPhoneには、IFTのイベントが発行されたとの通知が無事届きま...
&ref(IFT_Notifiaction.png);
** コメント [#sc419088]
#vote(おもしろかった[13],そうでもない[1],わかりずらい[5])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- LM35で温度を計測し、IFTTTサーバにアップする部分までを追...
#comment_kcaptcha
ページ名:
SmartDoc