ESP8266ボードでIoTデバイス的なものを作る話の第3弾。プログラムや回路を取り上げる予定でしたが、回路を組むよりも先に「カンタンなプログラムを動かしてみよう」という話に路線変更。
取り上げるのは、この手の入門記事でおなじみの「Lチカ」。LEDを光らせてみます。「Lチカ」の「チカ」は「チカチカ」なんですかね、やっぱり。「LEDがチカチカ」。語源はともかく、LEDを光らせます。
ESP8266ボードの多くはビルトインのLEDが備わっていることが多いようです。ブレッドボード上にLEDや抵抗を配置せずとも、LEDを光らせることができるわけです。今回使用するD1 miniというボードもLEDが最初から付いているので、それを光らせることにしましょう。
まずは、ボードをPCに接続。すでにドライバーの導入は済んでいるはずなので、続いてArduino IDEを起動。メニューの「ツール」-「シリアルポート」でCOMポートが正しく選択されているか確認しておきましょう。
さらにメニュー「ファイル」-「スケッチ例」を開くと、「LOLIN (WeMos) D1 R2 & mini用のスケッチ例」の下に「ESP8266」というのがあり、その下の階層に「Blink」というスケッチがあるはず。それを開きます。ウィンドウが新たに開きます。
あとは、メニュー下の右向きの矢印(→)をクリックすると、プログラムのコンパイルが行われ、続いて自動的にボードへのプログラムの転送が行われます。
短いプログラムですが、コンパイルには数分かかります。対して転送は数十秒といったところでしょうか。
転送が終わると、ボードのLEDが点滅し出します。
なんとこれだけ!
工作らしいこともせず、「Lチカ」ができてしまいました。
ここまでの流れを動画にしてみたので、こちらを御覧ください。
D1 miniで手抜きLチカ
ここで改めてプログラムの中身を見てみましょう。
最小の10行はコメントです。「/*」と「*/」で囲んでクレジットやメモなどを記述します。
/* ESP8266 Blink by Simon Peter Blink the blue LED on the ESP-01 module This example code is in the public domain The blue LED on the ESP-01 module is connected to GPIO1 (which is also the TXD pin; so we cannot use Serial.print() at the same time) Note that this sketch uses LED_BUILTIN to find the pin with the internal LED */ void setup() { pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level // but actually the LED is on; this is because // it is active low on the ESP-01) delay(1000); // Wait for a second digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH delay(2000); // Wait for two seconds (to demonstrate the active low LED) }
その後のvoid setup()では、ボード上に用意されているLEDがつながっているピンを指定しています(D1 miniではLED_BUILTINという定数に、LEDのピンが指定されています。詳しくは割愛)。
続く void loop() という関数にプログラムの本体(といっていいのか不明)が書かれています。
さきほどのピンにLOWを出力(これでLEDが点灯)して、1000ミリ秒待ってHIGHを出力(LEDが消灯)、さらに2000ミリ秒待ってループの頭に戻る。そんな流れです。
1秒点灯してから消灯、2秒待ってまた点灯。
というわけで、この delay(xxx) のxxxの部分を変えれば、点灯・消灯の時間がそれぞれ変わるのがわかると思います。自分でいろいろ試してみましょう。
なんでLOWが点灯でHIGHが消灯なのか? 感覚的には逆じゃね? と思うかもしれませんが、このボードがそういうふうに作られているから、と、テキトーな感じで気にしないことにしましょう。自分で回路を組む際にはこれが逆になったりしますが、いまのところはスルーで。気になる方は「プルアップ」で検索してみてください。
コメント