資料介紹
描述
我一直在考慮構(gòu)建一個連接 WiFi 的紅外發(fā)射器,它可以通過我手機上運行的網(wǎng)絡(luò)應(yīng)用程序控制房間內(nèi)的一切(手機沒有內(nèi)置紅外發(fā)射器)。 ?
當(dāng)我在 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ù)器,負責(zé)處理 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平臺上的適配 700次閱讀
- 用Arduino自制一個只有表針的時鐘 1277次閱讀
- 如何利用MKR1000實現(xiàn)水質(zhì)監(jiān)測系統(tǒng)的設(shè)計 1011次閱讀
- DIY一個簡單的Arduino板子 5350次閱讀
- 如何從網(wǎng)頁控制arduino? 3836次閱讀
- MKR Vidor 4000一款拇指型的FPGA開發(fā)板 1174次閱讀
- 簡評FPGA——Arduino MKR Vidor 4000 6807次閱讀
- 簡要分析Thread的通用GPIO設(shè)備驅(qū)動 1413次閱讀
- ldc1000傳感器是什么_ldc1000怎么用 8840次閱讀
- Arduino為什么備受推崇 它的優(yōu)勢是什么 12.3w次閱讀
- 用Arduino Uno開發(fā)板和一塊面包板就能輕松搞定這一切 2.4w次閱讀
- arduino用什么語言編程 6.9w次閱讀
- arduino是什么以及arduino能干什么 4.4w次閱讀
- arduino開發(fā)板有什么用 2w次閱讀
- 工程師必學(xué)DIY:用Arduino打造專屬萬用表 4.4w次閱讀
下載排行
本周
- 1開關(guān)電源設(shè)計原理手冊
- 1.83 MB | 14次下載 | 免費
- 2智能小車proteus仿真+C源程序
- 0.02 MB | 4次下載 | 免費
- 3PL4807單節(jié)鋰離子電池充電器中文手冊
- 1.36 MB | 3次下載 | 免費
- 4BQ769142技術(shù)參考手冊
- 2.99MB | 2次下載 | 免費
- 5BQ77207EVM用戶指南
- 865.23KB | 2次下載 | 免費
- 6TMR技術(shù)在電流傳感器中的應(yīng)用
- 616.47 KB | 1次下載 | 免費
- 7CBM8605_8606_8608-運算放大器【中文排版】-202406271735
- 2.70 MB | 1次下載 | 免費
- 801-07-06-CBM8655_CBM8656精密運算放大器
- 4.49 MB | 1次下載 | 免費
本月
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 155次下載 | 1 積分
- 2PCB布線和布局電路設(shè)計規(guī)則
- 0.40 MB | 52次下載 | 免費
- 3GB/T4706.1-2024 家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 14次下載 | 1 積分
- 4智能門鎖原理圖
- 0.39 MB | 14次下載 | 免費
- 5開關(guān)電源設(shè)計原理手冊
- 1.83 MB | 14次下載 | 免費
- 6elmo直線電機驅(qū)動調(diào)試細則
- 4.76 MB | 9次下載 | 6 積分
- 7WIFI智能音箱原理圖完整版
- 0.09 MB | 7次下載 | 10 積分
- 8PC1013三合一快充數(shù)據(jù)線充電芯片介紹
- 1.03 MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935115次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183333次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73806次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評論
查看更多