:::

5-5 修改新程式,上傳Arduino

程式路徑與檔名為:

雲端→空污感測實務課程→Arduino程式→1050513→LED4_Buzzer_DHT22_ESP8266_Relay_air1_sample

需修改程式內容如下紅色框框:

    新增設備編號欄位!若學校有2位以上的老師參加本研習,自行協調上傳的編號(0-255),以利辨識。

    回校安裝務必再看一下  3-3 回校安裝步驟,以免出錯

    最後付上 for Sharp GP2Y1010 新程式:

#include <SoftwareSerial.h>
#include <DHT.h>
#define _rxpin      4    //接ESP8266 TX
#define _txpin      5    //接ESP8266 RX
#define  RST        6    //接ESP8266 RST
#define  DHTPIN     7    //接DHT22資料傳輸
#define  LED_G      8    //接綠燈
#define  LED_Y      9    //接黃燈
#define  LED_R      10   //接紅燈
#define  LED_B      11   //接藍(紫)燈
#define  Relay2     12   //Control Fan or Light
#define  Buzzer     13   //接蜂鳴器
#define DHTTYPE DHT22 // SENSOR TYPE - THE ADAFRUIT LIBRARY OFFERS SUPPORT FOR MORE MODELS
DHT dht(DHTPIN, DHTTYPE);
SoftwareSerial WiFiSerial( _rxpin, _txpin ); // ESP8266 RX, TX
//*-- IoT Information
//String SSID = "TN-Computer-bridge";          //無線網路名稱
//String PASS = "computer123";                 //無線網路密碼
String SSID = "修改自己的無線網路名稱";      //無線網路名稱
String PASS = "修改自己的無線網路密碼";      //無線網路密碼
String schoolcode = "修改自己的學校代碼";    //學校代碼
int no = 0;                                  //設備編號,可設定0~255,在監測網上可區別一校多個設備
String PMgps = "修改自己的學校經緯度座標";   //學校經緯度座標
long updateInterval = 1800000;               //傳送資料時間間隔,測試完請設定1800000(30分鐘)
//long updateInterval = 10000;                 //傳送資料時間間隔,測試用10000(10秒鐘) 時間太短亦會發生錯誤
String IP = "pm25.tn.edu.tw";                //PM2.5網站網址
//sharp start
int measurePin = 0; //連接空氣品質傳感器 to Arduino A0 pin
int ledPower = 2;   //Connect 3 led driver pins of dust sensor to Arduino D2
int samplingTime = 280;
int deltaTime = 40;
int sleepTime = 9680;
float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
//sharp end
void setup() {
Serial.begin(9600);      //MONITOR
dht.begin();            //DHT22
WiFiSerial.begin(9600); //ESP8266
sendtoWiFi("AT");
delay(1000);
if(WiFiSerial.find("OK"))
{
Serial.println("RECEIVED: OK after AT Command\nData ready to sent!");
connectWiFi();
}
pinMode(ledPower,OUTPUT); //sharp
pinMode(RST,OUTPUT);
pinMode(LED_G,OUTPUT);
pinMode(LED_Y,OUTPUT);
pinMode(LED_R,OUTPUT);
pinMode(LED_B,OUTPUT);
pinMode(Relay2,OUTPUT);
pinMode(Buzzer,OUTPUT);
digitalWrite(RST,HIGH);  //CHANGE TO LOW IF HIGH ACTIVE
digitalWrite(LED_G,LOW);
digitalWrite(LED_Y,LOW);
digitalWrite(LED_R,LOW);
digitalWrite(LED_B,LOW);
digitalWrite(Relay2,HIGH);
}
void loop() {
digitalWrite(ledPower,LOW); // power on the LED
delayMicroseconds(samplingTime);
voMeasured = analogRead(measurePin); // read the dust value
delayMicroseconds(deltaTime);
digitalWrite(ledPower,HIGH); // turn the LED off
delayMicroseconds(sleepTime);
// 0 - 5V mapped to 0 - 1023 integer values
// recover voltage
calcVoltage = voMeasured * (5.0 / 1024.0);
// linear eqaution taken from http://www.howmuchsnow.com/arduino/airquality/
// Chris Nafis (c) 2012
if (calcVoltage < 0.583) {
dustDensity = 0;
}
else{
dustDensity = 6 * calcVoltage / 35 - 0.1;
}
Serial.print("Raw Signal Value (0-1023): ");
Serial.print(voMeasured);
Serial.print(" - Voltage: ");
Serial.print(calcVoltage);
Serial.print(" - Dust Density: ");
Serial.print(dustDensity * 1000); // 這裡將數值呈現改成較常用的單位( ug/m3 )
Serial.println(" ug/m3 ");
float T=dustDensity * 1000 ;
updateSensor(T);
delay(updateInterval);   // 設定傳送時間間隔
}
void updateSensor( float T)
{
digitalWrite(LED_G,HIGH);
digitalWrite(LED_Y,HIGH);
digitalWrite(LED_R,HIGH);
digitalWrite(LED_B,HIGH);
delay(2000);
digitalWrite(LED_G,LOW);
digitalWrite(LED_Y,LOW);
digitalWrite(LED_R,LOW);
digitalWrite(LED_B,LOW);
delay(1000);
if(T>=0 && T<36) {
digitalWrite(LED_G,HIGH);
}
else if(T>=36 && T<54) {
digitalWrite(LED_Y,HIGH);
}
else if(T>=54 && T<71) {
digitalWrite(LED_R,HIGH);
}
else if(T>=71 && T<200) {
digitalWrite(LED_B,HIGH);
}
else if(T>200) { 
digitalWrite(LED_B,HIGH);
digitalWrite(Relay2,LOW);   
delay(1000);
tone(Buzzer,500);
delay(1000);
tone(Buzzer,1000);
delay(1000);
noTone(Buzzer);}
else {digitalWrite(Relay2,HIGH);
delay(1000) ;}
//   noTone(Buzzer);}
// 設定 ESP8266 作為 Client 端
String cmd = "AT+CIPSTART=\"TCP\",\"" + IP + "\",80";
sendtoWiFi(cmd);
delay(1000);
if( WiFiSerial.find("Error") )
{
Serial.print( "RECEIVED: Error\nExit1" );
return;
}
float h = dht.readHumidity();
float t = dht.readTemperature();
boolean sendOK = false;  
cmd = "GET /xoops/api.php?schoolcode=" + schoolcode + "&no=" + no + "&pm25=" + T + "&t=" + t + "&h=" + h + "&gps=" + PMgps + "\r\n";
sendtoWiFi("AT+CIPSEND=" + (String)cmd.length());
delay(5000);
if(WiFiSerial.find( ">" ) )
{
Serial.print(">");
WiFiSerial.print(cmd);          //送出pm2.5資料
if( WiFiSerial.find("OK") ){    //檢查WiFi模組是否正確傳出資料
sendOK = true;
}
Serial.print(cmd);
}
else
{
sendtoWiFi( "AT+CIPCLOSE" );
}
if(sendOK)
{
Serial.println( "RECEIVED: OK" );
}
else
{
Serial.println( "RECEIVED: Error\nExit2" );
// reset ESP8266
digitalWrite(RST,LOW);  //need chang to HIGH if  Relay use HIGH active
delay(1000);
digitalWrite(RST,HIGH);  //need chang to LOW if  Relay use HIGH active
}
}
void sendtoWiFi(String cmd)
{
Serial.print("SEND: ");
Serial.println(cmd);
WiFiSerial.println(cmd);
}
boolean connectWiFi()
{
WiFiSerial.println("AT+CWMODE=1");
Serial.println("Send AT+CWMODE=1");
delay(3000);
int count =0;
String cmd="AT+CWJAP=\"" + SSID + "\",\"" + PASS + "\"";
sendtoWiFi(cmd);
Serial.println("Waiting for 15 second to connect network .....");
delay(15000);
/*
if(WiFiSerial.find("OK"))
{
Serial.println("RECEIVED: OK");
return true;
}
else
{
Serial.println("RECEIVED: Unknown");
return false;
}
*/
cmd = "AT+ CIPMUX=0";
sendtoWiFi( cmd );
if( WiFiSerial.find( "Error") )
{
Serial.print( "RECEIVED: Error" );
return false;
}
}

 


搜尋

錯誤訊息
未知: 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
通知: 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 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 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: next 在檔案中的第 /modules/tad_book3/page.php 列 59
通知: Undefined index: bootstrap 在檔案中的第 /modules/tadtools/preloads/core.php 列 68
已棄用
資料庫語法
0.000078 - SET SQL_BIG_SELECTS = 1
0.000653 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '1') ORDER BY conf_order ASC
0.000242 - SELECT sess_data, sess_ip FROM session WHERE sess_id = 'id15pd8fi0tg02k21gahpor72h'
0.000296 - SELECT * FROM modules WHERE dirname = 'tad_book3'
0.000546 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '1' AND (`gperm_groupid` = '3') AND `gperm_name` = 'module_read' AND `gperm_itemid` = '9')
0.000372 - SELECT * FROM config WHERE (`conf_modid` = '9') ORDER BY conf_order ASC
0.000338 - 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='27'
0.000209 - SELECT tbsn,title FROM tad_book3 ORDER BY sort
0.000359 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '5') ORDER BY conf_order ASC
0.000318 - SELECT COUNT(*) FROM banner
0.000176 - SELECT * FROM banner LIMIT 2, 1
0.004378 - UPDATE banner SET impmade = 1275160 WHERE bid = 3
0.000346 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '3') ORDER BY conf_order ASC
0.001153 - SELECT DISTINCT gperm_itemid FROM group_permission WHERE gperm_name = 'block_read' AND gperm_modid = 1 AND gperm_groupid IN (3)
0.001036 - 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.000646 - 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.003953 - update tad_book3_docs set `count` = `count`+1 where tbdsn='27'
0.000285 - select * from tad_book3_docs where tbdsn='27'
0.000170 - select * from tad_book3 where tbsn='3'
0.000227 - select mid from modules where dirname='tad_book3'
0.000457 - desc `tad_book3_data_center` `sort`
0.000190 - 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`='27' order by `sort` , `data_sort`
0.001498 - select tbdsn,title,content,category,page,paragraph,sort,enable,uid,from_tbdsn from tad_book3_docs where tbsn='3' and `enable`='1' order by category,page,paragraph,sort
0.001099 - select tbdsn,title,category,page,paragraph,sort from tad_book3_docs where tbsn='3' and (`content` != '' or `from_tbdsn` != 0) and enable='1' order by category,page,paragraph,sort
0.000251 - SELECT * FROM modules WHERE dirname = 'tadtools'
0.000308 - SELECT * FROM config WHERE (`conf_modid` = '4') ORDER BY conf_order ASC
0.000181 - select mid from modules where dirname='tad_book3'
0.000375 - desc `tad_book3_data_center` `sort`
0.000203 - 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`='27' order by `sort` , `data_sort`
0.000257 - select groupid,name from groups
0.000325 - select * from `tad_book3_files_center` where `col_name`='mp4' and `col_sn`='27' and `kind`='file' order by sort limit 0,1
0.000312 - select `tt_theme`,`tt_use_bootstrap`,`tt_bootstrap_color`,`tt_theme_kind` from `tadtools_setup` where `tt_theme`='school2015'
0.000461 - 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.000235 - SELECT * FROM modules WHERE dirname = 'tad_themes'
0.000287 - SELECT * FROM config WHERE (`conf_modid` = '3') ORDER BY conf_order ASC
0.000192 - select `tt_bootstrap_color` from tadtools_setup where `tt_theme`='school2015'
0.000366 - select * from tad_themes where `theme_name`='school2015'
0.000228 - select conf_value from config where conf_title ='_MD_AM_DEBUGMODE'
0.000330 - select * from tad_themes_blocks where `theme_id`='7'
0.000164 - select mid from modules where dirname='tad_themes'
0.000459 - desc `tad_themes_data_center` `sort`
0.000123 - 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.000183 - select conf_value from config where conf_name ='allow_register'
0.000255 - select `mid`, `name`, `dirname` from modules where isactive='1' and hasmain='1' and weight!=0 order by weight
0.000124 - SELECT * FROM modules WHERE dirname = 'tad_blocks'
0.000142 - select conf_value from config where conf_title ='_MD_AM_DEBUGMODE'
0.000207 - select count(*) from priv_msgs where `to_userid` ='0' and `read_msg`=0 group by `to_userid`
0.000362 - 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.000173 - 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.000162 - 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.000134 - 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.000116 - 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.000114 - 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.000155 - 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.002424 - 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.000226 - SELECT * FROM modules WHERE dirname = 'tad_login'
0.000321 - SELECT * FROM config WHERE (`conf_modid` = '14') ORDER BY conf_order ASC
總計: 57
區塊
搜尋: 沒有快取
總計: 1
額外資訊
包含檔案: 204 檔案
使用記憶體: 6984248 bytes
計時
XOOPS 使用 0.126 秒來載入。
XOOPS Boot 使用 0.027 秒來載入。
Module init 使用 0.008 秒來載入。
XOOPS output init 使用 0.036 秒來載入。
Module display 使用 0.027 秒來載入。
Page rendering 使用 0.026 秒來載入。