両方とも前のリビジョン
前のリビジョン
次のリビジョン
|
前のリビジョン
|
public:理数研究ラボ2018補助教材 [2018/08/23 20:07] suda [ESP8266を利用したネットワークプログラミング] |
public:理数研究ラボ2018補助教材 [2018/08/23 23:41] (現在) suda [ESP8266を利用したネットワークプログラミング] |
| |
----- | ----- |
| <html><details><summary>音を鳴らすプログラム</summary></html> |
**音を鳴らすプログラム** | |
<code cpp speaker.ino> | <code cpp speaker.ino> |
int speaker = 9; // スピーカーをつないだピンは9番 | int speaker = 9; // スピーカーをつないだピンは9番 |
} | } |
</code> | </code> |
| <html></details></html> |
----- | ----- |
| |
| |
void loop() { | void loop() { |
led.setPixelColor(0, led.Color(50,0,0)); // 1つめのLED(0番)を赤色に設定. | led.setPixelColor(0, led.Color(50,0,0)); // 1つめのLED(0番)を赤色に設定.各色の最大値は255 |
led.show(); // 設定を反映させる | led.show(); // 設定を反映させる |
delay(duration); | delay(duration); |
| |
| |
**ふわっと光らせるしくみ** | <html><details><summary>ふわっと光らせるしくみ</summary></html> |
<code cpp fade2.ino> | <code cpp fade2.ino> |
#include <Adafruit_NeoPixel.h> | #include <Adafruit_NeoPixel.h> |
} | } |
</code> | </code> |
| <html></details></html> |
| |
**for文**は,繰り返し処理の書き方です.''( )''の中で変化する値の初期値,繰り返しを続ける条件,値の変化のしかたの3つを設定し,条件が満たされている間''{ }''の中を実行します. | **for文**は,繰り返し処理の書き方です.''( )''の中で変化する値の初期値,繰り返しを続ける条件,値の変化のしかたの3つを設定し,条件が満たされている間''{ }''の中を実行します. |
----- | ----- |
| |
**Fujichan用の色と時間を指定してLEDをふわっと光らせるプログラム** | <html><details><summary>Fujichan用の色と時間を指定してLEDをふわっと光らせるプログラム</summary></html> |
| |
Fujichanのプログラムでは,色と時間を指定してLEDをふわっと光らせるプログラムを用意しています.''Adafruit_NeoPixel''としていたところが,''myNeoPixel''になっているのは,読み込んだ別ファイルで機能を追加しているからです. | Fujichanのプログラムでは,色と時間を指定してLEDをふわっと光らせるプログラムを用意しています.''Adafruit_NeoPixel''としていたところが,''myNeoPixel''になっているのは,読み込んだ別ファイルで機能を追加しているからです. |
} | } |
</code> | </code> |
| <html></details></html> |
| |
----- | ----- |
| |
{{ :public:sketch_simplefujichandev.zip |}} | {{ :public:sketch_simplefujichandev.zip |}} |
| |
| <html><details><summary>sketch_simplefujichandev.ino</summary></html> |
<code cpp> | <code cpp> |
#include "myNeoPixel.h" // Fujichan用のLED制御プログラム | #include "myNeoPixel.h" // Fujichan用のLED制御プログラム |
} | } |
</code> | </code> |
| <html></details></html> |
| |
if文をいくつかの条件に分岐させるときは,**else文**を使います.最初のif文の後に,''else if( )''のようにif文と組み合わせて書くことで,別の条件が決められます.一つのif文で「〜かつ〜」や「〜または〜」のような複数の条件を判定したい場合は,''( )''の中の条件を''&&''(かつ)や''||''(または)で区切ります. | if文をいくつかの条件に分岐させるときは,**else文**を使います.最初のif文の後に,''else if( )''のようにif文と組み合わせて書くことで,別の条件が決められます.一つのif文で「〜かつ〜」や「〜または〜」のような複数の条件を判定したい場合は,''( )''の中の条件を''&&''(かつ)や''||''(または)で区切ります. |
| |
----- | ----- |
| |
| <wrap lo>ESP8266は,Wi-Fi通信を用いた様々な使い方があります.Arduinoにも,メニューバーの[ファイル]から開ける[スケッチ例]に,サンプルプログラムが非常に多く用意されています.Fujichanのような使い方の,基本的なプログラムは[ESP8266WiFi]の中の[WiFiClient]というサンプルを参照してください.</wrap> |
| |
**Wi-Fiに接続するには** | **Wi-Fiに接続するには** |
| |
このプログラムでは,指定したSSIDとパスワードを使ってWi-Fiへ接続する''connect()''という関数と,指定したURLを使ってWebサーバからデータを更新する''update()''という関数を用意しています.''update()''では,**HTTP**というウェブでの情報のやり取りに広く使われている通信の処理を,プログラム上で記述しています. | このプログラムでは,指定したSSIDとパスワードを使ってWi-Fiへ接続する''connect()''という関数と,指定したURLを使ってWebサーバからデータを更新する''update()''という関数を用意しています.''update()''では,**HTTP**というウェブでの情報のやり取りに広く使われている通信の処理を,プログラム上で記述しています. |
| |
<html><details><summary>fujichanClient.h</summary></html> | <html><details><summary>fujichanClient.h</summary></html> |
<code cpp> | <code cpp> |
{{ :public:esp8266_upload.png?nolink&600 |}} | {{ :public:esp8266_upload.png?nolink&600 |}} |
| |
シリアルモニターを開いて,インターネットから取得した,気温,噴火警戒レベル,降水量の情報が表示されればOKです.この情報を,先ほど作ったデータに応じた音や光の変化の処理に反映させましょう. | シリアルモニターを開いて,インターネットから取得した,気温,噴火警戒レベル,降水量の情報が表示されればOKです.この情報を,先ほど作ったデータに応じた音や光の変化の処理に反映させましょう.(スピーカーのピン番号が9から16に変わっています.直接ピン番号を指定する場合は注意) |
| |
----- | ----- |
**プログラムを一つにまとめる** | **プログラムを一つにまとめる** |
| |
ダウンロードしたプログラム(sketch_final)の大部分は,先ほどシリアルモニターでデータを送ったプログラム(sketch_simpleFujichanDev)と同じです.<wrap hi>先ほど作ったデータに応じた音や光の変化の処理を,プログラムの同じ場所に移動させておきましょう.</wrap> | ダウンロードしたプログラム(sketch_final)の大部分は,先ほどシリアルモニターでデータを送ったプログラム(sketch_simpleFujichanDev)と同じです.<wrap hi>先ほど作ったデータに応じた音や光の変化の処理を,プログラムの同じ場所に移動させましょう.</wrap> |
| |
''setup()''の最後で,fujichanClient.hに用意されている,Wi-Fiに接続する''connect()''関数を実行しています.接続中はLEDが白色に点滅します.接続に成功すると,Webサーバからデータを取得する''update()''関数を実行して,気温,噴火警戒レベル,降水量のデータを更新しています.''update2()''は,インターネットから取得したデータをLEDやスピーカーへ反映するプログラムです.<wrap hi>下の方に''update2()''関数の本体があるので,この中にも,先ほど作ったデータに応じた音や光の変化の処理を書きます.</wrap> | ''setup()''の最後で,fujichanClient.hに用意されている,Wi-Fiに接続する''connect()''関数を実行しています.接続中はLEDが白色に点滅します.接続に成功すると,Webサーバからデータを取得する''update()''関数を実行して,気温,噴火警戒レベル,降水量のデータを更新しています.''update2()''は,インターネットから取得したデータをLEDやスピーカーへ反映するプログラムです.<wrap hi>下の方に''update2()''関数の本体があるので,この中にも,先ほど作ったデータに応じた音や光の変化の処理を書きます.</wrap> |