作者:DKYjzx | 更新時間:2019-05-21 | 瀏覽量:619
#include <MsTimer2.h>
#include <SPI.h>
#include <Ethernet.h>
#include <MsTimer2.h>
volatile int body;
EthernetClient client; //聲明點擊變量
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //初始化以太網
void setup(){
body = 0;
//初始化聲明的變量
Serial.begin(9600); //設置波特率
if (Ethernet.begin(mac)) { //如果連接到以太網
Serial.println(Ethernet.localIP());//打印出本地的ip
}
delay(5000); //延時5秒
while (!client.connect("www.eqytg.org",8181)) { //若是未連接到服務器,網址和端口
Serial.println("未連接到服務器");
}
if (client.connected()) {
Serial.println("已連接服務器");
}
delay(5000);
if (client.available()) { //如果客戶端有數據可讀
while (client.available()) { //持續讀取數據,直到讀取完
Serial.print((char)client.read());
}
}
client.print("{\"M\":\"checkin\",\"ID\":\"10263\",\"K\":\"f4103106c\"}\n"); //連接到自己API,ID
delay(5000);
if (client.available()) {
while (client.available()) {
Serial.print((char)client.read());
}
}
MsTimer2::set(10000, msTimer2_func); //定時函數
MsTimer2::start(); //定時啟動
pinMode(7, INPUT); //七號引腳定義為輸入
}
void msTimer2_func() { //定時器函數
Serial.println("發送數據");
//寫入字符數據+換行到串口
Serial.println(String("人體紅外") + String(body));
//在串口監視器中,分別打印出1個數值
client.print("{\"M\":\"update\",\"ID\":\"10263\",\"V\":{\"10184\":\""); //發送數據到自己智能設備的ID中,溫度ID
client.print("\",\"10184\":\"");
client.print(body);
client.print("\"}}\n");
}
void loop(){
body = digitalRead(7); //獲取傳感器的值
delay(5000);
}