<noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 基于openwrt路由器串口通訊實現網頁控制Arduino智能小車

    作者:貝殼物聯 | 更新時間:2016-03-02 | 瀏覽量:9119

    一、硬件說明

    1、刷了openwrt的路由器,需引出TX、RX、GND針腳。

    1447308523268212.png

    openwrt路由器

    圖為裸板GL-inet路由器,淘寶地址:

    2、Arduino智能小車

    1446782245752171.png

    淘寶地址:https://item.taobao.com/item.htm?id=523953094755

    3、電腦

    二、接線

    路由器  Arduino

    TX     RX

    RX     TX

    GND    GND

    三、路由器代碼

    1、控制界面,car.htm放在/www文件夾下。

    路由器控制頁面

    car.htm代碼如下:

    <html>
    <head>
    </head>
    <body>
    <div style="float:left">
    <script>
    function sendSer(value){
    document.getElementById("ser").src="http://192.168.1.101/cgi-bin/web2ser?"+value;
    }
    </script>
    <table>
    <tr><td/><img id="ser" width="1" height="1">
    <td><input type="button" onmousedown="sendSer('G')" onmouseup="sendSer('S')" value="前進" /></td><td/></tr>
    <tr><td><input type="button" onmousedown="sendSer('L')" onmouseup="sendSer('S')" value="左轉" /></td><td/>
    <td><input type="button" onmousedown="sendSer('R')" onmouseup="sendSer('S')" value="右轉" /></td></tr>
    <tr><td/><td><input type="button" onmousedown="sendSer('B')" onmouseup="sendSer('S')" value="后退" /></td><td/></tr>
    <tr><td colspan="3" align="middle"> <input type="button" onclick="sendSer('A')" value="自動控制" /></td></tr>
    <tr><td colspan="3" align="middle"> <input type="button" onclick="sendSer('M')" value="手動控制" /></td></tr>
    </table>
    </div>
    </body>
    </html>

    2、lua代碼,通過控制界面調用lua腳本web2ser放在/www/cgi-bin/下。

    web2ser腳本如下:

    #!/usr/bin/lua
    io.output("/dev/ttyATH0")
    io.write(os.getenv("QUERY_STRING"))

    代碼中ttyATHO為路由器串口,不同路由器其名稱有所不同,可以通過ls /dev 命令查看。

    四、小車Arduino代碼

    /*
     Arduino小車WIFI遙控程序
     功能:小車接收到WIFI模塊串口發送過來命令,執行不同動作,字符“G”前進,字符“B”后退,字符“L”左轉,字符“R”右轉,字符“S”停止。
     By 愛之家淘寶店 2015.11.5
     小車DIY配件購買地址:https://item.taobao.com/item.htm?id=523953094755
     */
    const int L298nIn1 = 2;//L298N模塊信號輸入
    const int L298nIn2 = 3;
    const int L298nIn3 = 4;
    const int L298nIn4 = 5;
    const String GO = "G";//串口發送信息代碼定義
    const String BACK = "B";
    const String RIGHT = "R";
    const String LEFT = "L";
    const String STOP = "S";
    void setup()
    {
      pinMode(L298nIn1, OUTPUT);
      pinMode(L298nIn2, OUTPUT);
      pinMode(L298nIn3, OUTPUT);
      pinMode(L298nIn4, OUTPUT);
      Serial.begin(115200);
    }
    void goForward() {//小車前進
      digitalWrite(L298nIn1, HIGH);
      digitalWrite(L298nIn2, LOW);
      digitalWrite(L298nIn3, LOW);
      digitalWrite(L298nIn4, HIGH);
    }
    void goBack() {//小車后退
      digitalWrite(L298nIn1, LOW);
      digitalWrite(L298nIn2, HIGH);
      digitalWrite(L298nIn3, HIGH);
      digitalWrite(L298nIn4, LOW);
    }
    void goStop() {//小車停止
      digitalWrite(L298nIn1, LOW);
      digitalWrite(L298nIn2, LOW);
      digitalWrite(L298nIn3, LOW);
      digitalWrite(L298nIn4, LOW);
    }
    void turnRight() {//小車右轉
      digitalWrite(L298nIn1, LOW);
      digitalWrite(L298nIn2, HIGH);
      digitalWrite(L298nIn3, LOW);
      digitalWrite(L298nIn4, HIGH);
    }
    void turnLeft() {//小車左轉
      digitalWrite(L298nIn1, HIGH);
      digitalWrite(L298nIn2, LOW);
      digitalWrite(L298nIn3, HIGH);
      digitalWrite(L298nIn4, LOW);
    }
    String readTtl() {
      String comdata = "";
      while (Serial.available())
      {
        comdata += char(Serial.read());
        delay(2);
      }
      return comdata;
    }
    void loop()//主循環函數
    {
      String s = readTtl();
      if (s == GO ) goForward();//發送“G”,小車前進,直到接收到“S”停止
      if (s == LEFT ) turnLeft();
      if (s == STOP ) goStop();
      if (s == RIGHT ) turnRight();
      if (s == BACK ) goBack();
    }



    評論:共4條

    ridxqqqq 評論于:2016-04-14 12:09:24
    裸板GL-inet路由器多少錢?
    貝殼物聯 回復于:2016-04-14 16:14:51
    回復 @ridxqqqq:70¥左右吧
    ridxqqqq 回復于:2016-04-18 10:06:11
    回復 @貝殼物聯:有淘寶地址店嗎 發過來看下
    ridxqqqq 評論于:2017-01-17 08:00:17
    內容里面有地址 開始 美仔細看
    返回頂部
    <noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 三上悠亚在线观看