回覆列表
  • 1 # 前沿科技網際網路資訊

    Arduino與PC通訊的方式很多,說幾個常用的吧,除錯時用的比較多的就是串列埠轉USB,資料傳輸穩定方便除錯。但是在除錯完畢後作為一個單獨控制檢測或測量模組,一般採用無線通訊模式,配備無線通訊模組,目前基本是433Mhz模組優點是價格便宜一套大概3元、esp8266最便宜的wifi解決方案一般10元左右,zigbee模組這個是區域網模組支援組網,但價格較高,其他還有紅外線、藍芽等,有線連線還有一種RJ45模組,就是透過普通的網線連線,下面詳細介紹一下常用的幾種連線方式。

    1、Arduino 使用ESP8266 與PC簡單通訊的方案

    原理很簡單,其實就是用ESP8266的 AT指令,加上Arduino的軟串列埠<SoftwareSerial.h>庫實現。

    具體實現方法:

    在Arduino定義軟串列埠,連線ESP8266模組。

    透過串列埠讀寫操作,向ESP8266傳送AT指令,從而控制ESP8266連線指定WIFI。

    接收軟串列埠返回資訊,檢測是否收到指定應答,從而判斷當前連線狀態。

    連線成功後,開啟透過AT指令開啟透傳模式。

    開啟TCP連線,連線指定的TCP伺服器,開始TCP通訊。

    判斷從TCP伺服器收到的資訊,進行遙控等操作。

    經測試,上述操作完全可行,不足之處在於,Arduino串列埠連續使用Serial.read()讀取長字串需要留有1ms的delay(),導致如果傳輸長資料會產生延遲過長的問題。

    除此之外,該方法使用的是ESP8266的AT指令和軟串列埠而非直接透過SPI驅動進行連線,在傳輸頻寬上也少許多。

    相較帶有SPI驅動的<wifi.h>和乙太網擴充套件板,這種方法資料傳輸效率確實不佳,單成本低上不少。

    若是能參考<wifi.h>使用SPI協議,傳輸速率應該能打到10Mbit/s(1.4M/s)。

    2、串列埠轉USB連線PC通訊

    Arduino控制器上,串列埠都是位於0 (RX)和1 (TX)的兩個引腳, Arduino 的USB口透過一個轉換晶片(通常為ATmega16 u2)與這兩個串列埠引腳連線。該轉換晶片會透過USB介面在計算機上虛擬出一個用於與Arduino通訊的串列埠。

    當Arduino控制器使用USB線與計算機相連時,兩者之間便建立了串列埠連線。透過此連線,Arduino控制器可與計算機相互傳資料了。

    Arduino中與串列埠相關的函式有 Serial. begin()、Serial.available()、Serial.read()、Serial.println()和Serial.print() 這五個函式;

    以上是兩種常見的通訊方式,作為一個arduino程式設計愛好者有什麼問題我們可以一起交流一下哈。

  • 中秋節和大豐收的關聯?
  • 如果倒過來,男嫁女娶,男人應該收多少彩禮?