下期第5堂-IOT開發板


何謂IOT

https://zh.wikipedia.org/wiki/%E7%89%A9%E8%81%94%E7%BD%91


先裝軟體,再插電路板

打開Arduino IDE


Arduino IDE 使用 ESP8266
打開ARDUINO IDE,檔案 => 偏好設定 => 額外的開發板管理員

網址:http://arduino.esp8266.com/stable/package_esp8266com_index.json



這是哪一種USB接頭?


第1個ESP8266程式

LED Blink

控制LED亮的時間,久一點,改成亮5秒停1秒。

發現奇怪的地方了嗎?


硬體工程常常這樣,永遠訓練自己成為變形蟲,就沒有困難可以難倒你。

軟體工程有時候也會有整體平台的Bug,不用想太多,先把成果做出來就是王道。

資訊界永遠都在跟時間賽跑,做得出來才是重點。


ESP8266MOD ESP-12 主板介紹


Wifi AP 介紹

https://zh.wikipedia.org/wiki/%E7%84%A1%E7%B7%9A%E6%8E%A5%E5%85%A5%E9%BB%9E

重點:
名稱 SSID
密碼 PSK


連上wifi AP,讓主板當作”伺服器端”


小思考1

輸入SSID和密碼之後,如下圖,可以在序列埠監控視窗看到DHCP給你的IP位址,

但…應該沒這麼順利,5分鐘時間,想想哪邊出了問題?


小思考2

觀察程式碼,藍色LED應該會亮,但…有亮嗎?

5分鐘思考


練習一下,改個歡迎詞吧


新增空白程式,開始遠端操控電器囉

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

#ifndef STASSID
#define STASSID "AP SSID"  //無線分享器的名稱
#define STAPSK  "xxxxx"    //密碼
#endif

const char* ssid = STASSID;
const char* password = STAPSK;

ESP8266WebServer server(80);

void handleRoot() {  //訪客進入主網頁時顯示的內容
  server.send(200, "text/plain", "Hello From ESP8266 !");
}

void handleNotFound() {  //找不到網頁時顯示的內容
  server.send(404, "text/plain", "File Not Found");
}

void setup(void) {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  pinMode(2,OUTPUT); //設定GPIO2為OUTPUT
  digitalWrite(2,LOW);  //熄滅LED

  // 等待WiFi連線
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());  //在監控視窗顯示取得的IP

  if (MDNS.begin("esp8266")) {
    Serial.println("MDNS responder started");
  }

  server.on("/", handleRoot);  //綁定主網頁會觸發的副程式

  server.on("/on", []() {      //網頁 /on 會執行的程式
    server.send(200, "text/plain", "LED ON");
    digitalWrite(2,HIGH);  //點亮LED
  });

  server.on("/off", []() {      //網頁 /off 會執行的程式
    server.send(200, "text/plain", "LED OFF");
    digitalWrite(2,LOW);  //熄滅LED
  });

  server.onNotFound(handleNotFound);  //綁定找不到網頁時會觸發的副程式

  server.begin();
  Serial.println("HTTP server started");
}

void loop(void) {
  server.handleClient();
  MDNS.update();
}

從網址就可以操控LED了,但覺得哪邊怪怪的嗎?

改良程式吧


您可能也會喜歡…

發佈留言