<noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 智能車

    作者:Greddy | 更新時間:2019-05-20 | 瀏覽量:668

    這是一個自己做的智能車,有循跡避障功能。可以用貝殼互聯控制小車前進后退,但是切換到循跡就只能動一下,有啥辦法讓他一直動嗎

    String DEVICEID="3935"; // 你的設備編號==

    String  APIKEY="b11db05cf"; // 設備密碼==

    //==================================

    const int LED2 = 9; // LED正極連接針腳  左輪子IN1

    const int LED3 = 10;// LED正極連接針腳  左輪子IN2

    const int LED4 = 11;// LED正極連接針腳  右輪子IN3

    const int LED5 = 12;// LED正極連接針腳  右輪子IN4

    const int LED6 = 13;// LED正極連接針腳  鳴笛

    unsigned long lastCheckInTime = 0; //記錄上次報到時間

    const unsigned long postingInterval = 40000; // 每隔40秒向服務器報到一次

    int pxq;  //定義變量用于將C字符串變成pxq整數型

    String inputString = "";

    boolean stringComplete = false;

    boolean CONNECT = true; 

    char* parseJson(char *jsonString);

    void setup() {

       pinMode(LED2, OUTPUT); 

       pinMode(LED3, OUTPUT);

       pinMode(LED4, OUTPUT);

       pinMode(LED5, OUTPUT);

       pinMode(LED6, OUTPUT); 

       Serial.begin(115200);

       delay(5000);

    }

    void loop() {

       if(millis() - lastCheckInTime > postingInterval || lastCheckInTime==0) {

         checkIn();

       }

       serialEvent();

         if (stringComplete) {

           inputString.trim();

           //Serial.println(inputString);

           if(inputString=="CLOSED"){

             Serial.println("connect closed!");

             CONNECT=false;        

           }else{

             int len = inputString.length()+1;    

             if(inputString.startsWith("{")&& inputString.endsWith("}")){

               char jsonString[len];

               inputString.toCharArray(jsonString,len);

               aJsonObject *msg = aJson.parse(jsonString);

               processMessage(msg);

               aJson.deleteItem(msg);          

             }

           }      

           // clear the string:

           inputString = "";

           stringComplete = false;    

       }

    }

    void checkIn() {

       if (!CONNECT) {

         Serial.print("+++");

         delay(500);  

         Serial.print("\r\n"); 

         delay(1000);

         Serial.print("AT+RST\r\n"); 

         delay(6000);

         CONNECT=true;

         lastCheckInTime=0;

       }

       else{

         Serial.print("{\"M\":\"checkin\",\"ID\":\"");

         Serial.print(DEVICEID);

         Serial.print("\",\"K\":\"");

         Serial.print(APIKEY);

         Serial.print("\"}\r\n");

         lastCheckInTime = millis();   

       }

    }

    void processMessage(aJsonObject *msg){

       aJsonObject* method = aJson.getObjectItem(msg, "M");

       aJsonObject* content = aJson.getObjectItem(msg, "C");     

       aJsonObject* client_id = aJson.getObjectItem(msg, "ID");  

       //char* st = aJson.print(msg);

       if (!method) {

         return;

       }

         //Serial.println(st); 

         //free(st);

         String M=method->valuestring;

         String C=content->valuestring;

         String F_C_ID=client_id->valuestring;

         if(M=="say"){

           if(C=="1001"){                  //前

             digitalWrite(LED2, LOW);     

             digitalWrite(LED3, HIGH);

             digitalWrite(LED4, LOW); 

             digitalWrite(LED5, HIGH);     

             sayToClient(F_C_ID,"qian on!");    

           }

            if(C=="2001"){                  //后 

             digitalWrite(LED2, HIGH);

             digitalWrite(LED3, LOW);     

             digitalWrite(LED4, HIGH);  

             digitalWrite(LED5, LOW); 

             sayToClient(F_C_ID,"hou on!");    

           }

           if(C=="1002"){                     //停止

             digitalWrite(LED2, LOW);

             digitalWrite(LED3, LOW);     

             digitalWrite(LED4, LOW);  

             digitalWrite(LED5, LOW);         

             sayToClient(F_C_ID,"ting off!");    

           }

              if(C=="3001"){            //左

             digitalWrite(LED2, HIGH);

             digitalWrite(LED3, LOW);     

             digitalWrite(LED4, LOW);  

             digitalWrite(LED5, HIGH);  

             sayToClient(F_C_ID,"zuo on!");    

           }

              if(C=="4001"){             //右

             digitalWrite(LED2, LOW);

             digitalWrite(LED3, HIGH);     

             digitalWrite(LED4, HIGH);  

             digitalWrite(LED5, LOW);   

             sayToClient(F_C_ID,"you on!");    

           }

              if(C=="5001"){             //鳴笛   

             digitalWrite(LED6, HIGH);      

             sayToClient(F_C_ID,"mingdi on!");    

           }    

              if(C=="2002"){             //靜音

             digitalWrite(LED6, LOW);           

             sayToClient(F_C_ID,"mingdi off!");    

           }     

     

          }

    }

    void sayToClient(String client_id, String content){

       Serial.print("{\"M\":\"say\",\"ID\":\"");

       Serial.print(client_id);

       Serial.print("\",\"C\":\"");

       Serial.print(content);

       Serial.print("\"}\r\n");

       lastCheckInTime = millis();

    }

    void serialEvent() {

       while (Serial.available()) {

         char inChar = (char)Serial.read();

         inputString += inChar;

         if (inChar == '\n') {

           stringComplete = true;

         }

       }

    }

    上面是程序,我想在它等于2003時一直執行循跡程序,但是沒法做到,有啥辦法嗎


    評論:共3條

    貝殼物聯 評論于:2019-05-20 08:41:39
    小車呢,看看...
    Greddy 評論于:2019-05-20 12:33:15
    怎么上傳圖片
    貝殼物聯 回復于:2019-05-20 14:15:15
    回復 @Greddy:編輯話題,編輯欄里有圖片選項,看看就明白了
    返回頂部
    <noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 三上悠亚在线观看