LoginSignup
13
16

More than 5 years have passed since last update.

ESP8266とNodeMCUをLuaでWi-Fi設定とLチカする

Posted at

NodeMCUのファームウェアをアップロードしたESP8266をホストマシンとUSB-TTLシリアル接続します。シリアル通信はCoolTermから操作します。ArduinoをESP8266への3.3Vの電源供給用です。NodeMCUを使うとESP8266単体でLuaを使ったハードウェア制御ができるようになります。

Wi-Fiの設定

最初にアクセスポイントの設定をします。NodMCUをファームウェアにしたESP8266は既存の無線LANの子機として動作させます。wifi.sta.configにはアクセスポイントのSSIDとパスワードを指定します。DHCPからIPアドレスが取得できました。

> wifi.setmode(wifi.STATION)
> wifi.sta.config("{SSID}","{Password}")
> = wifi.sta.status()
5 GOT IP
> = wifi.sta.getip()
192.168.1.16    255.255.255.0   192.168.1.1
> 

HTTPクライアント

次にNodeMCUをHTTPクライアントとして使ってみます。Node.jsのようにイベント駆動なコールバックを定義して受信したpayloadを出力します。この例ではNodeMCUのホームページのHTMLを取得します。

> conn = net.createConnection(net.TCP, false) 
> conn:on("receive", function(conn, payload) print(payload) end)
> conn:connect(80,"121.41.33.127")
> conn:send("GET / HTTP/1.1\r\nHost: www.nod`mcu.com\r\n"
>> .."Connection: keep-alive\r\nAccept: */*\r\n\r\n")

Lチカ

配線図のようにLEDをESP8266のGPIO0につなぎます。USB-TTLシリアル変換モジュールのVCCが5Vなので、Arduino Unoを3.3V電源供給用に使います。

ESP8366-led.png

ESP8266のGPIOピンアサインを見るとGPIO0はPin 3になります。CoolTermから以下のように実行します。Arduinoと似た感じでHIGHでLEDが点灯し、LOWで消灯します。

> pin = 3
> gpio.mode(pin,gpio.OUTPUT)
> gpio.write(pin,gpio.HIGH)
> gpio.write(pin,gpio.LOW)

nodemcu-led.png

13
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
16