<noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • Arduino+w5100+傳感器將數據上傳貝殼物聯遇到問題

    作者:camero | 更新時間:2019-05-30 | 瀏覽量:1010

    問題就是連不上貝殼物聯,請大神們瞧瞧,代碼和截圖如下

    /*
     Arduino IDE 版本1.6.5-1.8.2
     */

    #include <SPI.h>
    #include <Ethernet.h>
    #include <aJSON.h>
    #include <dht11.h>

     dht11 DHT11;
    //=========================
    const String  APIKEY="5d0c4e3cc"; // 
    const String DEVICEID="4542"; // 設備編號
    const String INPUTID1="4085";
    const String INPUTID2="4099";
    const String INPUTID3="4104";
    const String INPUTID4="4106";
    //=======================================
    const int dht = 2;//dht11 pin
    int flame=A5;//定義火焰接口
    int fla=0;//定義數字變量
    //int dal=0;
    int mqyw = 0;
    int MQYW = A3;//煙霧

    int mqkr = 0;
    int MQKR = A1;//天然氣可燃氣

    byte mac[] = {0x00, 0x1D, 0x72, 0x82, 0x35, 0x9D};
    EthernetClient client ;
    IPAddress ip(192, 168, 1, 114);//local IP
    //IPAddress server(121,42,180,30);
    char server[] = "www.baidu.com";  
    int port= 80;

    aJsonStream serial_stream(&client);
    unsigned long lastCheckInTime = 0; 
    unsigned long lastUpdateTime = 0; 
    const unsigned long postingInterval = 10000; //  40s
    const unsigned long updateInterval = 5000; //  5s
    boolean isCheckIn = false;

    void setup() {
      Serial.begin(9600);
      //dal=analogRead(flame);
      //pinMode(MQYW,INPUT);
      //pinMode(MQ-A.INPUT);
      if (Ethernet.begin(mac) == 0) {// start the Ethernet connection with DHCP:
        Serial.println("Failed to configure Ethernet using DHCP");
        Ethernet.begin(mac, ip);   
      }
      else {
        Serial.println("Ethernet configuration OK");
      } 
      delay(10000);
      Serial.println("connecting...");
      if(client.connect(server, port)){
        Serial.println("connected");
        if (!client.connected())
    {Serial.println("???"); }
      }else{
        Serial.println("connection failed");
      }
      checkIn();
    }

    void loop() {
      if(millis() - lastCheckInTime > postingInterval)
      {
        Serial.println("checking in"); 
        checkIn();
      }
      if((millis() - lastUpdateTime > updateInterval) && isCheckIn) 
      {
        int val;//定義變量
        int dat;//定義變量
         DHT11.read(dht);
        dat = DHT11.humidity;
        val = DHT11.temperature;
        fla = analogRead(flame);
        mqyw = analogRead(MQYW);
        mqkr = analogRead(MQKR);
        update2(DEVICEID,INPUTID1,val,INPUTID2,fla,INPUTID3,mqyw,INPUTID4,mqkr);
      }
     if (serial_stream.available()) {
        /* First, skip any accidental whitespace like newlines. */
        serial_stream.skip();
      }
      if (serial_stream.available()) {
        /* Something real on input, let's take a look. */
        aJsonObject *msg = aJson.parse(&serial_stream);
        processMessage(msg);
        aJson.deleteItem(msg);
      } 
    }

    void checkIn() {
      if (!client.connected()) {
        Serial.println("connection failed"); 
        client.stop();
        isCheckIn=false;
        client.connect(server, port);
        Serial.println("connecting..."); 
        delay(10000);
      }
      else{
        Serial.println("connection success"); 
        client.print("{\"M\":\"checkin\",\"ID\":\"");
        client.print(DEVICEID);
        client.print("\",\"K\":\"");
        client.print(APIKEY);
        client.println("\"}");
        lastCheckInTime = millis();
        Serial.println("checking...");    
      }
    }

    void processMessage(aJsonObject *msg){
      aJsonObject* method = aJson.getObjectItem(msg, "M");
      String M=method->valuestring;
      char* st = aJson.print(msg);        
      if (st != NULL) {
        Serial.println(st); 
        free(st);
        if(M=="checkinok" ){      
          isCheckIn=true;
          Serial.println("check in OK!");   
        }
      } 
    }
    /*
    void update1(String did, String inputid, int value){
      client.print("{\"M\":\"update\",\"ID\":\"");
      client.print(did);
      client.print("\",\"V\":{\"");
      client.print(inputid);
      client.print("\":\"");
      client.print(value);
      client.println("\"}}");
      lastCheckInTime = millis();
      lastUpdateTime= millis();
      Serial.print("update:");   
      Serial.print(inputid);   
      Serial.print("->");   
      Serial.println(value);   
    }
    */
    //同時上傳四個接口數據函數
    void update2(String did, String inputid1, int value1, String inputid2, int value2,String inputid3, int value3,String inputid4, int value4)
    {
      client.print("{\"M\":\"update\",\"ID\":\"");
      client.print(did);
      client.print("\",\"V\":{\"");
      client.print(inputid1);
      client.print("\":\"");
      client.print(value1);
      client.print("\",\"");
      client.print(inputid2);
      client.print("\":\"");
      client.print(value2);
      client.print("\",\"");
      client.print(inputid3);
      client.print("\":\"");
      client.print(value3);
      client.print("\",\"");
      client.print(inputid4);
      client.print("\":\"");
      client.print(value4);
      client.println("\"}}");
      lastCheckInTime = millis();
      lastUpdateTime= millis();
      Serial.print("update:");   
      Serial.print(inputid1);   
      Serial.print("->"); 
      Serial.print(value1);  
      Serial.print(":"); 
      Serial.print(inputid2);   
      Serial.print("->"); 
      Serial.println(value2);
      Serial.print(":");
       Serial.print(inputid3);   
      Serial.print("->"); 
      Serial.println(value3);
      Serial.print(":");
      Serial.print(inputid4);   
      Serial.print("->"); 
      Serial.println(value4);
    }

     

     


    評論:共2條

    趙菲桐 評論于:2020-03-09 10:49:25
    把www.baidu.com改成www.eqytg.org試試
    趙菲桐 評論于:2020-03-09 10:51:30
    端口改8181試試
    返回頂部
    <noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 三上悠亚在线观看