資料介紹
描述
我一直在考慮構(gòu)建一個(gè)連接 WiFi 的紅外發(fā)射器,它可以通過我手機(jī)上運(yùn)行的網(wǎng)絡(luò)應(yīng)用程序控制房間內(nèi)的一切(手機(jī)沒有內(nèi)置紅外發(fā)射器)。 ?
當(dāng)我在 hackster.io 上看到世界上最大的 Arduino Maker Challenge?宣布時(shí),我看了一下Arduino MKR1000?規(guī)格,意識(shí)到它非常適合:
- 低功耗 802.11 b/g/n Wi-Fi
- 板載Li-Po充電電路
- 熟悉的 Arduino IDE
- 像您對(duì)任何 Arduino 期望的那樣大量的 I/O
因?yàn)槲抑辽僖粋€(gè)月才能拿到我的 MKR1000,所以我想我應(yīng)該開始編寫代碼了。我需要完成三件事:
- 連接到我家的 WiFi
- 接受 HTTP 請(qǐng)求的輕量級(jí) Web 服務(wù)器
- 解析虛擬按鈕按下的 GET URL
- 根據(jù) URL 發(fā)送紅外信號(hào)
MKR1000 應(yīng)該能夠自己完成所有這些,但我的原型將需要更多的組件。
原型制作
這里我有一個(gè) ESP8266 運(yùn)行 WiFi 客戶端并通過串行將所有內(nèi)容中繼到 Arduino Nano。Nano 本身運(yùn)行網(wǎng)絡(luò)服務(wù)器,負(fù)責(zé)處理 HTTP 連接和解析 URL。它獲取 URL,將其解釋為特定的按鈕按下,并發(fā)送相應(yīng)的 IR 代碼。
需要一些 hackery 才能使它正常工作。首先,我使用 AT 命令通過 ESP8266 管理 WiFi 連接。為了讓所有通信都通過軟件串行進(jìn)行,我必須對(duì)電壓進(jìn)行電平轉(zhuǎn)換,因?yàn)?ESP8266 是 3.3v 而 Nano 是 5v。ESP8266 在連接 WiFi 時(shí)也會(huì)消耗大量電量,因此它需要自己的電源調(diào)節(jié)器和平滑帽。
幸運(yùn)的是,MKR1000 可以在一塊比 nano 稍大的板上完成所有這些以及更多工作(在面包板上長(zhǎng) 4 個(gè)引腳,寬 3 個(gè)引腳)。?
由于 MKR1000 是 3.3v 板,I/O 引腳的輸出會(huì)導(dǎo)致 IR LED 非常暗。我還計(jì)劃讓多個(gè) LED 指向不同的方向,因此我需要使用 I/O 引腳來驅(qū)動(dòng)一個(gè) NPN 晶體管,該晶體管又為每個(gè)并聯(lián)的 LED 切換一個(gè) PNP 晶體管。這些 PNP 晶體管的集電極/發(fā)射極直接連接到 5v 電源電壓。走這條路,我可以擁有任意數(shù)量的 IR LED,并且可以制作一個(gè)全向陣列。
設(shè)置后端
包含 UI 的網(wǎng)頁(yè)正在一臺(tái)未充分利用的 CHIP 9 美元計(jì)算機(jī)上運(yùn)行,??該計(jì)算機(jī)已經(jīng)安裝在我的家庭網(wǎng)絡(luò)中。在做了一些研究之后,我找到了一個(gè)很棒的教程,用于?為 Arduino 實(shí)現(xiàn) REST API 以控制 adafruit 上的 LED 。我使用他們的 JavaScript 和 PHP 文件提交 cURL 請(qǐng)求并將其加載到已經(jīng)運(yùn)行 apache 的 CHIP 上。在為遙控器創(chuàng)建一個(gè)基本的 HTML 頁(yè)面后,我添加了 manifest.json 和圖標(biāo)文件,以便它可以作為 Android 手機(jī)上的本機(jī) Web 應(yīng)用程序運(yùn)行。
編寫代碼
在 MKR1000 方面,我只需要用 WiFi101.h 庫(kù)切換 ESP8266WiFi.h。然后我精簡(jiǎn)了網(wǎng)絡(luò)服務(wù)器,只接受 GET 請(qǐng)求,解析 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 代碼。我說“會(huì)”是因?yàn)槲覄倓偘l(fā)現(xiàn)我過去使用的 IRremote 庫(kù)不適用于基于 SAMD ARM 的 Arduinos(MKR1000 是)。 ?
我不會(huì)重寫庫(kù),而是將命令從 MKR1000 通過串行輸出到 Arduino Nano 并讓它驅(qū)動(dòng) LED。 ?
期待?
一旦庫(kù)被 Arduino 社區(qū)移植過來,我將能夠完全刪除該部分并在單個(gè) MKR1000 板上完成所有操作。 ?
我僅使用NodeMCU ESP8266 開發(fā)板構(gòu)建了另一個(gè)這樣的?設(shè)備,因此與此同時(shí)我仍然能夠控制我的設(shè)備。
我已經(jīng)使用它大約一個(gè)月了,效果非常好。 ?
- 使用Arduino MKR1000通過WiFi進(jìn)行HID攻擊
- MKR1000 Pushover狀態(tài)開源
- 如何使用Arduino MKR GSM 1400的蜂窩定位
- Arduino MKR1000的大負(fù)載
- 如何通過智能手機(jī)控制和監(jiān)控MKR1000
- 使用MKR1000/ADAFRUIT模擬GPS讀取光敏電阻
- 基于Arduino MKR1000的雞舍自動(dòng)化系統(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平臺(tái)上的適配 700次閱讀
- 用Arduino自制一個(gè)只有表針的時(shí)鐘 1277次閱讀
- 如何利用MKR1000實(shí)現(xiàn)水質(zhì)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì) 1011次閱讀
- DIY一個(gè)簡(jiǎn)單的Arduino板子 5350次閱讀
- 如何從網(wǎng)頁(yè)控制arduino? 3836次閱讀
- MKR Vidor 4000一款拇指型的FPGA開發(fā)板 1174次閱讀
- 簡(jiǎn)評(píng)FPGA——Arduino MKR Vidor 4000 6807次閱讀
- 簡(jiǎn)要分析Thread的通用GPIO設(shè)備驅(qū)動(dòng) 1413次閱讀
- ldc1000傳感器是什么_ldc1000怎么用 8840次閱讀
- Arduino為什么備受推崇 它的優(yōu)勢(shì)是什么 12.3w次閱讀
- 用Arduino Uno開發(fā)板和一塊面包板就能輕松搞定這一切 2.4w次閱讀
- arduino用什么語(yǔ)言編程 6.9w次閱讀
- arduino是什么以及arduino能干什么 4.4w次閱讀
- arduino開發(fā)板有什么用 2w次閱讀
- 工程師必學(xué)DIY:用Arduino打造專屬萬(wàn)用表 4.4w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多