資料介紹
描述
我一直在考慮構(gòu)建一個連接 WiFi 的紅外發(fā)射器,它可以通過我手機上運行的網(wǎng)絡(luò)應(yīng)用程序控制房間內(nèi)的一切(手機沒有內(nèi)置紅外發(fā)射器)。 ?
當我在 hackster.io 上看到世界上最大的 Arduino Maker Challenge?宣布時,我看了一下Arduino MKR1000?規(guī)格,意識到它非常適合:
- 低功耗 802.11 b/g/n Wi-Fi
- 板載Li-Po充電電路
- 熟悉的 Arduino IDE
- 像您對任何 Arduino 期望的那樣大量的 I/O

因為我至少要一個月才能拿到我的 MKR1000,所以我想我應(yīng)該開始編寫代碼了。我需要完成三件事:
- 連接到我家的 WiFi
- 接受 HTTP 請求的輕量級 Web 服務(wù)器
- 解析虛擬按鈕按下的 GET URL
- 根據(jù) URL 發(fā)送紅外信號
MKR1000 應(yīng)該能夠自己完成所有這些,但我的原型將需要更多的組件。
原型制作

這里我有一個 ESP8266 運行 WiFi 客戶端并通過串行將所有內(nèi)容中繼到 Arduino Nano。Nano 本身運行網(wǎng)絡(luò)服務(wù)器,負責處理 HTTP 連接和解析 URL。它獲取 URL,將其解釋為特定的按鈕按下,并發(fā)送相應(yīng)的 IR 代碼。
需要一些 hackery 才能使它正常工作。首先,我使用 AT 命令通過 ESP8266 管理 WiFi 連接。為了讓所有通信都通過軟件串行進行,我必須對電壓進行電平轉(zhuǎn)換,因為 ESP8266 是 3.3v 而 Nano 是 5v。ESP8266 在連接 WiFi 時也會消耗大量電量,因此它需要自己的電源調(diào)節(jié)器和平滑帽。
幸運的是,MKR1000 可以在一塊比 nano 稍大的板上完成所有這些以及更多工作(在面包板上長 4 個引腳,寬 3 個引腳)。?
由于 MKR1000 是 3.3v 板,I/O 引腳的輸出會導(dǎo)致 IR LED 非常暗。我還計劃讓多個 LED 指向不同的方向,因此我需要使用 I/O 引腳來驅(qū)動一個 NPN 晶體管,該晶體管又為每個并聯(lián)的 LED 切換一個 PNP 晶體管。這些 PNP 晶體管的集電極/發(fā)射極直接連接到 5v 電源電壓。走這條路,我可以擁有任意數(shù)量的 IR LED,并且可以制作一個全向陣列。
設(shè)置后端
包含 UI 的網(wǎng)頁正在一臺未充分利用的 CHIP 9 美元計算機上運行,??該計算機已經(jīng)安裝在我的家庭網(wǎng)絡(luò)中。在做了一些研究之后,我找到了一個很棒的教程,用于?為 Arduino 實現(xiàn) REST API 以控制 adafruit 上的 LED 。我使用他們的 JavaScript 和 PHP 文件提交 cURL 請求并將其加載到已經(jīng)運行 apache 的 CHIP 上。在為遙控器創(chuàng)建一個基本的 HTML 頁面后,我添加了 manifest.json 和圖標文件,以便它可以作為 Android 手機上的本機 Web 應(yīng)用程序運行。

編寫代碼
在 MKR1000 方面,我只需要用 WiFi101.h 庫切換 ESP8266WiFi.h。然后我精簡了網(wǎng)絡(luò)服務(wù)器,只接受 GET 請求,解析 URL,發(fā)送 200 OK,然后斷開連接。 ?
void loop() {
// listen for incoming clients
WiFiClient client = server.available();
if (!client) {
return;
}
Serial.println("new client"); // can be removed after debugging
// Wait until the client sends some data
while(!client.available()){
delay(1);
}
// Read the first line of the request (the GET string)
String req = client.readStringUntil('\r');
Serial.println(req); // can be removed after debugging
// Send request over to Arduino Nano
Serial1.println(req);
client.flush();
// give the client time to receive the data
delay(1);
// close the connection
client.stop();
client.flush();
Serial.println("client disconnected"); // can be removed after debugging
}
基于 URL,Arduino 將發(fā)送映射到按下的按鈕的 IR 代碼。我說“會”是因為我剛剛發(fā)現(xiàn)我過去使用的 IRremote 庫不適用于基于 SAMD ARM 的 Arduinos(MKR1000 是)。 ?
我不會重寫庫,而是將命令從 MKR1000 通過串行輸出到 Arduino Nano 并讓它驅(qū)動 LED。 ?

期待?
一旦庫被 Arduino 社區(qū)移植過來,我將能夠完全刪除該部分并在單個 MKR1000 板上完成所有操作。 ?
我僅使用NodeMCU ESP8266 開發(fā)板構(gòu)建了另一個這樣的?設(shè)備,因此與此同時我仍然能夠控制我的設(shè)備。

我已經(jīng)使用它大約一個月了,效果非常好。 ?
- 使用Arduino MKR1000通過WiFi進行HID攻擊
- MKR1000 Pushover狀態(tài)開源
- 如何使用Arduino MKR GSM 1400的蜂窩定位
- Arduino MKR1000的大負載
- 如何通過智能手機控制和監(jiān)控MKR1000
- 使用MKR1000/ADAFRUIT模擬GPS讀取光敏電阻
- 基于Arduino MKR1000的雞舍自動化系統(tǒng) 1次下載
- 基于Arduino Zero/MKR的示波器
- 使用Arduino MKR1000構(gòu)建溫度傳感設(shè)備
- 使用Arduino MKR1000作為微控制器來創(chuàng)建筆更換系統(tǒng)
- 使用REST框架控制您的MKR1000
- 帶有Arduino MKR1010和MKR RGB Shield的Otto Biped
- 使用Arduino MKR1000為BBC Micro添加Internet連接
- Arduino MKR GSM 1400和DTMF開源
- 通過Cayenne和MKR1000的圣誕樹水位
- 中興車用操作系統(tǒng)SafetyLinux在A1000平臺上的適配 1034次閱讀
- 用Arduino自制一個只有表針的時鐘 1479次閱讀
- 如何利用MKR1000實現(xiàn)水質(zhì)監(jiān)測系統(tǒng)的設(shè)計 1110次閱讀
- DIY一個簡單的Arduino板子 5703次閱讀
- 如何從網(wǎng)頁控制arduino? 4186次閱讀
- MKR Vidor 4000一款拇指型的FPGA開發(fā)板 1243次閱讀
- 簡評FPGA——Arduino MKR Vidor 4000 6977次閱讀
- 簡要分析Thread的通用GPIO設(shè)備驅(qū)動 1500次閱讀
- ldc1000傳感器是什么_ldc1000怎么用 9268次閱讀
- Arduino為什么備受推崇 它的優(yōu)勢是什么 12.4w次閱讀
- 用Arduino Uno開發(fā)板和一塊面包板就能輕松搞定這一切 2.4w次閱讀
- arduino用什么語言編程 6.9w次閱讀
- arduino是什么以及arduino能干什么 4.5w次閱讀
- arduino開發(fā)板有什么用 2.1w次閱讀
- 工程師必學(xué)DIY:用Arduino打造專屬萬用表 4.4w次閱讀
下載排行
本周
- 1人形機器人電機驅(qū)動和傳感報告
- 4.27 MB | 9次下載 | 免費
- 2Altium Designer元件庫
- 17.11 MB | 6次下載 | 免費
- 324V2A開關(guān)電源PCB資料分享
- 0.23 MB | 4次下載 | 1 積分
- 4GD100PIX120C6SNA規(guī)格書
- 0.98 MB | 3次下載 | 免費
- 5Multisim模擬電路仿真教程
- 1.93 MB | 1次下載 | 3 積分
- 6BK7258英文規(guī)格書
- 1.67 MB | 1次下載 | 免費
- 7RA4L1硬件手冊
- 21.89 MB | 1次下載 | 免費
- 8RA4L1_SENSOR-V1原理圖
- 754.36 KB | 1次下載 | 免費
本月
- 1晶體三極管的電流放大作用詳細說明
- 0.77 MB | 32次下載 | 2 積分
- 2雙極型三極管放大電路的三種基本組態(tài)的學(xué)習(xí)課件免費下載
- 4.03 MB | 25次下載 | 1 積分
- 3AIWA HS-J303 MKⅡ維修手冊
- 22.47 MB | 24次下載 | 10 積分
- 4九陽豆?jié){機高清原理圖
- 2.47 MB | 23次下載 | 1 積分
- 5多級放大電路的學(xué)習(xí)課件免費下載
- 1.81 MB | 21次下載 | 2 積分
- 6AIWA HS-J202/HS-J202M/HS-J800維修手冊
- 13.60 MB | 16次下載 | 10 積分
- 7東芝彩色電視機29SF6C維修說明書
- 4.86 MB | 9次下載 | 1 積分
- 8人形機器人電機驅(qū)動和傳感報告
- 4.27 MB | 9次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191382次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183338次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81586次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73814次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論