:::

1. 牛刀小試~點亮LED

器材準備

開工了

先將ESP-01接上USB燒錄器,記得切到燒錄模式,插上電腦

打開ARDUINO軟體,複製下列程式碼貼上

void setup() {
pinMode(2,OUTPUT);
}

void loop() {
digitalWrite(2,HIGH);
delay(1000);
digitalWrite(2,LOW);
delay(1000);
}

程式裡2的意思是使用GPIO2,因為不需與UNO連接,所以TX.RX這兩個IO也可以拿來使用,這樣板上一共有4個GPIO可用(0、1、2、3),如下圖:

程式寫好後,記得先檢查一下USB的序列埠有沒有選對,再按上傳

程式上傳成功後,開始接線,請注意ESP-01上面的VCC與CH_PD要接到電源板的3.3V,若接到5V可能會導致晶片燒燬!!

線路接好,再把電源板插上變壓器,就可以看到LED燈開始一閃一閃了

搭上網路

ESP-01本身是有連網能力的,接著我們用內建的範例來看看它強大的功能,

開啟Arduino軟體,從檔案>>範例>>ESP8266WiFi>>WiFiWebServer

程式內容如下,這裡我們只需要修改你所在環境的無線網路SSID與密碼(第12、13行),再上傳即可,有夠簡單吧~

/*
 *  This sketch demonstrates how to set up a simple HTTP-like server.
 *  The server will set a GPIO pin depending on the request
 *    http://server_ip/gpio/0 will set the GPIO2 low,
 *    http://server_ip/gpio/1 will set the GPIO2 high
 *  server_ip is the IP address of the ESP8266 module, will be 
 *  printed to Serial when the module is connected.
 */

#include <ESP8266WiFi.h>

const char* ssid = "MY_SSID";
const char* password = "MY_PASSWORD";

// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(10);

  // prepare GPIO2
  pinMode(2, OUTPUT);
  digitalWrite(2, 0);
  
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
}

void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  
  // Read the first line of the request
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
  
  // Match the request
  int val;
  if (req.indexOf("/gpio/0") != -1)
    val = 0;
  else if (req.indexOf("/gpio/1") != -1)
    val = 1;
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }

  // Set GPIO2 according to the request
  digitalWrite(2, val);
  
  client.flush();

  // Prepare the response
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += "</html>\n";

  // Send the response to the client
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");

  // The client will actually be disconnected 
  // when the function returns and 'client' object is detroyed
}

上傳完成後,接好線路(電路圖同上面blink範例的接法),接著找出你的ESP-01配發到的IP是多少(進無線AP管理介面查看)

以本例取得的IP是192.168.0.104

只要用在瀏覽器的網址列輸入 http://192.168.0.104/gpio/1 就可以點亮LED燈

輸入 http://192.168.0.104/gpio/0 關閉LED燈

把LED改成繼電器,那您就可以透過網路來開關家裡的電扇電燈等電器了


搜尋

錯誤訊息
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 40
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 40
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 73
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 505
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 505
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
警告: str_repeat(): Second argument has to be greater than or equal to 0 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined index: bootstrap 在檔案中的第 /modules/tadtools/preloads/core.php 列 68
已棄用
資料庫語法
0.000056 - SET SQL_BIG_SELECTS = 1
0.000655 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '1') ORDER BY conf_order ASC
0.000193 - SELECT sess_data, sess_ip FROM session WHERE sess_id = '50vqamd21sh6vvut2ddaqs4l29'
0.000218 - SELECT * FROM modules WHERE dirname = 'tad_book3'
0.000455 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '1' AND (`gperm_groupid` = '3') AND `gperm_name` = 'module_read' AND `gperm_itemid` = '9')
0.000249 - SELECT * FROM config WHERE (`conf_modid` = '9') ORDER BY conf_order ASC
0.000389 - select a.tbsn,a.title,b.author,a.category,a.page,a.paragraph,a.sort from tad_book3_docs as a left join tad_book3 as b on a.tbsn=b.tbsn where a.tbdsn='39'
0.000205 - SELECT tbsn,title FROM tad_book3 ORDER BY sort
0.000287 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '5') ORDER BY conf_order ASC
0.000232 - SELECT COUNT(*) FROM banner
0.000111 - SELECT * FROM banner LIMIT 0, 1
0.003829 - UPDATE banner SET impmade = 1280239 WHERE bid = 1
0.000256 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '3') ORDER BY conf_order ASC
0.000996 - SELECT DISTINCT gperm_itemid FROM group_permission WHERE gperm_name = 'block_read' AND gperm_modid = 1 AND gperm_groupid IN (3)
0.000857 - SELECT b.* FROM newblocks b, block_module_link m WHERE m.block_id=b.bid AND b.isactive=1 AND b.visible=1 AND m.module_id IN (0,9) AND b.bid IN (1,2,3,4,5,6,7,8,9,10,11,18,15,16,20,19,58,60,61,73,72,74,71,76,75,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,111,109,110,112,113,114,115,116,117,118,119,120,121,122,123) ORDER BY b.weight, m.block_id
0.000612 - SELECT f.*, s.tpl_source FROM tplfile f LEFT JOIN tplsource s ON s.tpl_id=f.tpl_id WHERE (`tpl_tplset` = 'default' AND `tpl_file` = 'system_block_search.tpl') ORDER BY tpl_refid
0.003466 - update tad_book3_docs set `count` = `count`+1 where tbdsn='39'
0.000214 - select * from tad_book3_docs where tbdsn='39'
0.000164 - select * from tad_book3 where tbsn='11'
0.000214 - select mid from modules where dirname='tad_book3'
0.000512 - desc `tad_book3_data_center` `sort`
0.000206 - select `col_sn`,`data_name`,`data_sort`, `data_value` from `tad_book3_data_center` where `mid`= '9' and `col_name`='read_tbdsn_date' and `col_sn`='39' order by `sort` , `data_sort`
0.001629 - select tbdsn,title,content,category,page,paragraph,sort,enable,uid,from_tbdsn from tad_book3_docs where tbsn='11' and `enable`='1' order by category,page,paragraph,sort
0.000895 - select tbdsn,title,category,page,paragraph,sort from tad_book3_docs where tbsn='11' and (`content` != '' or `from_tbdsn` != 0) and enable='1' order by category,page,paragraph,sort
0.000217 - SELECT * FROM modules WHERE dirname = 'tadtools'
0.000229 - SELECT * FROM config WHERE (`conf_modid` = '4') ORDER BY conf_order ASC
0.000173 - select mid from modules where dirname='tad_book3'
0.000310 - desc `tad_book3_data_center` `sort`
0.000229 - select `col_sn`,`data_name`,`data_sort`, `data_value` from `tad_book3_data_center` where `mid`= '9' and `col_name`='video_tbdsn_date' and `col_sn`='39' order by `sort` , `data_sort`
0.000245 - select groupid,name from groups
0.000348 - select * from `tad_book3_files_center` where `col_name`='mp4' and `col_sn`='39' and `kind`='file' order by sort limit 0,1
0.000323 - select `tt_theme`,`tt_use_bootstrap`,`tt_bootstrap_color`,`tt_theme_kind` from `tadtools_setup` where `tt_theme`='school2015'
0.000441 - SELECT f.*, s.tpl_source FROM tplfile f LEFT JOIN tplsource s ON s.tpl_id=f.tpl_id WHERE (`tpl_tplset` = 'default' AND `tpl_file` = 'tadbook3_index.tpl') ORDER BY tpl_refid
0.000176 - SELECT * FROM modules WHERE dirname = 'tad_themes'
0.000194 - SELECT * FROM config WHERE (`conf_modid` = '3') ORDER BY conf_order ASC
0.000143 - select `tt_bootstrap_color` from tadtools_setup where `tt_theme`='school2015'
0.000317 - select * from tad_themes where `theme_name`='school2015'
0.000226 - select conf_value from config where conf_title ='_MD_AM_DEBUGMODE'
0.000276 - select * from tad_themes_blocks where `theme_id`='7'
0.000195 - select mid from modules where dirname='tad_themes'
0.000370 - desc `tad_themes_data_center` `sort`
0.000120 - select `col_sn`,`data_name`,`data_sort`, `data_value` from `tad_themes_data_center` where `mid`= '3' and `col_name`='theme_id' and `col_sn`='7' order by `sort` , `data_sort`
0.000157 - select conf_value from config where conf_name ='allow_register'
0.000312 - select `mid`, `name`, `dirname` from modules where isactive='1' and hasmain='1' and weight!=0 order by weight
0.000167 - SELECT * FROM modules WHERE dirname = 'tad_blocks'
0.000213 - select conf_value from config where conf_title ='_MD_AM_DEBUGMODE'
0.000209 - select count(*) from priv_msgs where `to_userid` ='0' and `read_msg`=0 group by `to_userid`
0.000318 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='0' and status='1' order by position
0.000138 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='11' and status='1' order by position
0.000114 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='14' and status='1' order by position
0.000108 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='15' and status='1' order by position
0.000105 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='17' and status='1' order by position
0.000103 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='16' and status='1' order by position
0.000102 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='18' and status='1' order by position
0.000316 - select a.* from tad_themes_files_center as a left join tad_themes as b on a.col_sn=b.theme_id where a.`col_name`='slide' and b.`theme_name`='school2015'
0.000180 - SELECT * FROM modules WHERE dirname = 'tad_login'
0.000312 - SELECT * FROM config WHERE (`conf_modid` = '14') ORDER BY conf_order ASC
總計: 57
區塊
搜尋: 沒有快取
總計: 1
額外資訊
包含檔案: 204 檔案
使用記憶體: 6966640 bytes
計時
XOOPS 使用 0.109 秒來載入。
XOOPS Boot 使用 0.023 秒來載入。
Module init 使用 0.006 秒來載入。
XOOPS output init 使用 0.031 秒來載入。
Module display 使用 0.026 秒來載入。
Page rendering 使用 0.021 秒來載入。