1. 程式人生 > >NodeMCU刷Arduino韌體讀取紅外測溫資料並上傳到OneNet

NodeMCU刷Arduino韌體讀取紅外測溫資料並上傳到OneNet

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>

#define WIFINAME "F5dAST"
#define WIFIPW   "2015652066"
const char* host = "183.230.40.33";
const char* devidGet = "23785199";
const char* apiKey = "Cwpofvw5UWw=Y2j=H656576uunXsRCI= ";


void setup() {

  pinMode(BUILTIN_LED, OUTPUT);
  Serial.begin(115200);
  Serial.println("");
  WiFi.begin(WIFINAME, WIFIPW);//link to router
  Serial.print("Connecting..");
  while (WiFi.status() != WL_CONNECTED)//try link to router
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Connected,IP Address:");//connecting succeed
  Serial.println(WiFi.localIP());

}

void loop() {
// RequestData();
 SendData(11);
}
void SendData(float a)
{
  int lengthofPost=62;
   WiFiClient client;
  Serial.printf("\r\nConnectint to %s ..", host);
  Serial.println("");
  if (client.connect(host, 80))
  {
    //length of the post content remain to be post
    Serial.println("Connected!");
    Serial.println("Send a request");
   client.print(String("POST /devices/") + devidGet +"/datapoints HTTP/1.1\r\n" + 
   "api-key: "+apiKey+  "\r\n" +
    "Host: api.heclouds.com"+  "\r\n"+
   "Content-Length: "+lengthofPost+"\r\n\r\n"
   +"{\"datastreams\":[{\"id\":\"18dB20\",\"datapoints\":[{\"value\":\"11\"}]}]}"+"\r\n"
                );//devidGet the device id 

                //============
                Serial.print(String("POST /devices/") + devidGet +"/datapoints HTTP/1.1\r\n" + 
   "api-key: "+apiKey+  "\r\n" +
    "Host: api.heclouds.com"+  "\r\n"+
   "Content-Length: "+lengthofPost+"\r\n\r\n"
   +"{\"datastreams\":[{\"id\":\"18B20\",\"datapoints\":[{\"value\":\"11\"}]}]}"+"\r\n"
                );//devidGet the device id 
//apiKey: the apiKey
    Serial.println("\r\n[Response:]");
    while (client.connected())
    {
      while (client.connected())
      {
        if (client.available())
        {
          String line = client.readStringUntil('\n');
          Serial.println(line);
        }
      }
      client.stop();
      Serial.println("\nClient stop, disconnected");
    }
  }
  else
  {
    Serial.println("connecting failed!");
    client.stop();
  }
  delay(3000);
  }
//POST /devices/20123901/datapoints HTTP/1.1
//api-key:RH5KM1PmIskXgWV556BtXpqsZ4s=
//Host:api.heclouds.com
//Content-Length: 61
//
//{"datastreams":[{"id":"Temp","datapoints":[{"value":"33"}]}]}



  //==================
  void RequestData()
{
   WiFiClient client;
  Serial.printf("\r\nConnectint to %s ..", host);
  Serial.println("");
  if (client.connect(host, 80))
  {
    Serial.println("Connected!");
    Serial.println("Send a request");
    client.print(String("GET /devices/") + devidGet +"/datastreams/Switch HTTP/1.1\r\n" + "Host:" + host + "\r\n" +
    "api-key: "+apiKey+  "\r\n" +
    "Host: api.heclouds.com\r\n" + "\r\n"
                );//devidGet the device id 
//apiKey: the apiKey
    Serial.println("\r\n[Response:]");
    while (client.connected())
    {
      while (client.connected())
      {
        if (client.available())
        {
          String line = client.readStringUntil('\n');
          Serial.println(line);
        }
      }
      client.stop();
      Serial.println("\nClient stop, disconnected");
    }
  }
  else
  {
    Serial.println("connecting failed!");
    client.stop();
  }
  delay(3000);
  }
//  GET /devices/23785199/datastreams/Switch HTTP/1.1
//api-key: ZyGPZiTMBMvamibfxN3AEgqlhPY=
//Host: api.heclouds.com


// POST /devices/23785199/datapoints HTTP/1.1
// api-key: Cwpofvw5UWw=Y2j=H76uunXsRCI= 
// Host: api.heclouds.com
// Content-Length: 62

// {"datastreams":[{"id":"18B20","datapoints":[{"value":"11"}]}]}


溫度計測試

/////////////////////
/*
GY-MCU90615----MINI
VCC----VCC
GND----GND
1:RX---TX,send A5 51 F6 to GY263
2:TX---RX
3:MINI_TX---FT232_RX
*/
//////////////////
unsigned char Re_buf[11],counter=0;
unsigned char sign=0;
float TO=0,TA=0;
void setup() {
   Serial.begin(9600);  
  delay(1);    
  Serial.write(0XA5); 
  Serial.write(0X45);    //初始化,連續輸出模式
  Serial.write(0XEA);    //初始化,連續輸出模式
}

void loop() {
  unsigned char i=0,sum=0;
  
  if(sign)
  {   
     sign=0;
     for(i=0;i<8;i++)
      sum+=Re_buf[i]; 
     if(sum==Re_buf[i] )        //檢查幀頭,幀尾
     {  	       
           TO=(float)(Re_buf[4]<<8|Re_buf[5])/100;
           Serial.print("TO:");
           Serial.println(TO);  
           TA=(float)(Re_buf[6]<<8|Re_buf[7])/100;
           Serial.print("TA:");
           Serial.println(TA);             
   }
  } 

}
void serialEvent() {
  while (Serial.available()) {   
    Re_buf[counter]=(unsigned char)Serial.read();
    if(counter==0&&Re_buf[0]!=0x5A) return;      // 檢查幀頭         
    counter++;       
    if(counter==9)                //接收到資料
    {    
       counter=0;                 //重新賦值,準備下一幀資料的接收 
       sign=1;
    }      
  }
}

相關推薦

NodeMCUArduino讀取紅外資料OneNet

#include <Arduino.h> #include <ESP8266WiFi.h> #include <ESP8266WiFiMulti.h> #include <ESP8266HTTPClient.h> #defin

esp8266實驗:搭建最小系統,nodemcu,dht11溫度讀取伺服器

esp8266-12E模組esp8266轉接板cp2102模組 or ch304g模組輕觸開關洞洞板HT7533A-1 3.3v穩壓晶片3.7v鋰電池DHT11溫度溼度模組2.焊接esp8266轉接板,製作測試底板esp8266模組不是特別小,實際使用可以直接把它焊在洞洞板上,但是作為反覆使用的話,建議焊接到

ALIENTEK 的 ESP8266 WiFi Module 後出現don’t use rtc mem data錯誤或者ESP8266開啟串列埠不停出現亂碼的解決方案

ESP8266 WiFi Module 刷入韌體後出現don’t use rtc mem data 出現問題: 重新整理新的韌體後,出現錯誤提示:don’t use rtc mem data 或各種讀寫地址錯誤。 1、A fatal error occurred

路由器opwenwrt和原廠教程

本文所用的路由器型號為:linksys wrt1900ac v2(第一次寫部落格,竟然發現CSDN的部落格不能快速插入圖片,差評) 環境準備 網線插入路由器的網線介面,然後再由路由器的LAN介面

TP-LINK路由器WR703Nopenwrt掛載USB攝像頭()

哈哈,折騰兩天,終於弄好了,先來張照片提提神。 Pc端,火狐,火狐,火狐瀏覽器(重要的事情說三遍。。。。。。。。) ios終端,5S的成像效果還是不錯的 新版的wr703n不支援web方式刷機,無論選擇什麼樣的.bin檔案,最後都會提示選擇的軟體版本和硬體不

ESP8266 01S AT

       今天經歷了亂碼改變世界的想法,  刷完at韌體庫之後一直亂碼, 亂碼......   後來才發現是flash選錯了 廢話不多說, 直接來下韌體吧,先貼一張esp8266 01s的美圖 刷韌體時 ESP8266

64位win10jlink

前言 升級到keil5之後,提示jlink可以升級,無奈手賤點了升級,結果我的山寨jlink就成了磚頭了,從網上得知重刷jlink韌體可以使我的jlink與keil5一起工作,摸索了一段時間之後確實成功了,在這個過程中發現網上的教程參差不齊,讓我踩了不少坑,為

斐訊K1K2使用breed路由器

本文以 斐訊K2 psg1218為例子,說明如何使用 breed 刷入 路由器的韌體 的故事。。。(K1,K2的刷入方式相同) breed 準備工作 1. 下載 breed 韌體 不同的路由器使用不同的 breed 韌體。斐訊K1 psg1208

斐訊K1&K2教程!最新最全整理版!(小米路由、newifi通用)

前瞻:  工具的準備:電腦安裝[telnet客戶端]、下載安裝(或解壓Tftpd)、WinPcap(這是用於BreedEnter可以正常開啟的元件,必須安裝,不安裝無法開啟BreedEnter)、BreedEnter。 原生的韌體:斐訊V1版本韌體,SW_K1_70300

newifi 3pandorabox

一、刷機把路由器斷電,按住reset鍵並上電,直到橙色電源燈快閃後鬆開,開啟192.168.1.1頁面,上傳pandorabox韌體,刷機成功後進入登入頁面預設使用者名稱為root,密碼為admin二、設定撥號賬號三、修改密碼並開啟ssh四、設定DDNS五、設定軟體源地址最近

romupdate.zip的製作教程

  對於第三方ROM來講,通常都包括兩部分,一個recovery image,一個update.zip。而大多數的第三方ROM的特色,就是加入了很多東西,比如superuser程式來獲得root許可權,busybox來擴充命令列下的功能,各種各樣的配置檔案或者小工具,比如預設

Pixhawk原生PX4中的坑(2017.6.8TREE的版本)

origin: http://www.cnblogs.com/fly2mato/p/6575556.html作為一名飛控開發的小學生:),最近入坑Pixhawk+PX4了。 基於Pixhawk硬體平臺進行二次開發,有兩

從db2資料庫讀取blob型別圖片資料在前端頁面顯示

最近要寫一個需求,從db2中讀取圖片資料,blob型別,然後在前端頁面顯示,採用的是前後端分離的開發模式,使用下面這種方式,可以忽略前端,前端不需要動程式碼,就可直接顯示。。 直接上程式碼: sql:只給大家擷取關鍵部分,select   xmlgroup(pe.Pict

Android與與伺服器交換資料、下載、讀取檔案

一些變數的定義: //需要將下面的IP改為伺服器端IP private String txtUrl = "http://192.168.1.46:8080/AppServer/SynTxtDataServlet"; private String url = "http://192.

HTML5 檔案域+FileReader 分段讀取檔案(八)-WebSocket

一、同時上傳多個檔案處理 HTML: <div class="container"> <div class="panel panel-default"> <div class="panel-head

HTML5 檔案域+FileReader 分段讀取檔案(七)-WebSocket

一、單檔案上傳例項 HTML: <div class="container"> <div class="panel panel-default"> <div class="panel-heading">分段讀取

HTML5 檔案域+FileReader 分段讀取檔案到伺服器(六)

說明:使用Ajax方式上傳,檔案不能過大,最好小於三四百兆,因為過多的連續Ajax請求會使後臺崩潰,獲取InputStream中資料會為空,尤其在Google瀏覽器測試過程中。 1.簡單分段讀取檔案為Blob,ajax上傳到伺服器 <div class="cont

HTML5 檔案域+FileReader 讀取檔案到伺服器(三)

一、讀取檔案為blob並上傳到伺服器 HTML <div class="container"> <!--讀取要上傳的檔案--> <input type="file" id="file" /> <input type="bu

QT讀取本地txt影象資料在介面顯示該影象

int pixel[180*1500]; int i=0; char filenametxt[150] = "inputimg.txt"; ifstream infile(filenametxt,ios::in); //測試檔案是否成功開啟 if(

python讀取excel指定列資料寫入到新的excel

#encoding=utf-8 import xlrd from xlwt import * #------------------讀資料-------------------------------