所需材料:
1塑料外殼PolyCase和PolyCase
1半尺寸可焊面包板Adafruit
3 leds Adafruit
3個高而窄的按鈕Adafruit
1個短而寬的按鈕Adafruit
1個USB-A型男性插頭Adafruit
電線Sparkfun
聚氨酯膠Lowes
所需工具:
烙鐵亞馬遜
Dremel(如果你沒有,一把美工刀就足夠了)Lowes
鉆床(如果你沒有,那么手鉆就足夠了)Lowes
第1步:設計
微控制器:
作為微控制器,我使用由Adafruit制作的ESP8266羽毛Huzzah,原因如下:
它具有wifi功能
它很便宜(18.95美元的組裝
相對較?。?3mm x 51mm x 8mm/0.9“x 2”x 0.28“)
它有9個GPIO引腳(我需要7個)
微控制器將由USB插座的5V供電。
4個GPIO將用作按鈕的輸入,3個將用作指示燈的輸出。其中一個按鈕(關閉每個燈的按鈕)都包含一個LED,所以對我來說這個按鈕的反饋是沒有意義的。
按鈕:
按鈕的設計非常簡單:對于3個小按鈕,我選擇了觸覺開關,也稱為SPST開關。我挑選了那些高大的,以便它們能夠從外殼中脫穎而出。對于更大的按鈕,我還選擇了一個SPST開關,但是它更短,因此它將嵌入外殼中,目標是不會意外地推動它。它還有一個內置LED,并有一個I/O符號。
如上圖所示,這些開關通過3.3k下拉電阻為GPIO供電,并提供3.3V電壓。按下GPIO。
LED:
我使用了5mm黃色LED。它們只是一端連接到GPIO,另一端連接到3.3k電阻。
外殼:
外殼,我需要一個內部尺寸至少為51mm x 97mm x 11mm/2.0“x 3.8”x 0.4“的塑料盒。我挑選的盒子內部尺寸為52mm x 100mm x 19mm/2.0”x 3.9“x 0.7”。這意味著我必須在面包板后面堆放一些紙板或紙,以確保系統與外殼蓋齊平,并且按鈕將從蓋子中伸出。
所有組件焊接在可焊接的面包板上。這使其比傳統的面包板更加永久和安全,并且不需要設計定制的PCB。我發現Adafruit的半尺寸按鈕工作得很好。
第2步:制作電路板
焊接板是有趣的部分!只需按照接線圖,一切都應按計劃進行。請特別注意以下幾點:
注意LED極性(短引線陰極接地/長引線陽極正電壓)。
LED應盡可能低到面包板。否則,LED的頂部將太高并且太多地從外殼中伸出。
在焊接Feather Huzzah之前,我從中取出了電池連接器。我們不需要它,它非常高,所以它不允許我們正確放置機箱蓋。
我在羽毛Huzzah的“棉絮”針腳和地面導軌上放置了一個90度的公母針連接器。然后將它們連接到USB的5V和接地。
提示:
使用第三只手,或自己制作一只用一塊木頭,4個Loc-line軟管和4個鱷魚夾
第3步:制作附件
USB插頭:
使用dremel或美工刀切割在后側的機箱上角之一打開USB插頭。將USB插頭插入其中。
確保USB插頭從機箱背面突出11.5 mm/0.45“,并使用聚氨酯膠將USB插頭粘在機箱中。
焊接+ 5V的電線USB插頭和USB插頭接地線。當您將電路板放置在外殼中時,這些電線將分別連接到90度公母接頭的“電池”和接地。
按鈕和LED開口:
在外殼蓋上鉆出按鈕和LED突出的孔。直徑為4mm/5/32“的鉆頭是非常適合小按鈕,8mm/5/16“非常適合較大的按鈕。使用埋頭鉆頭制作錐形孔使其看起來不錯。對于LED,我鉆的直徑比LED本身小得多( 1毫米/1/32英寸)。否則,我發現我選擇的LED會產生太多光線。如果燈開關位于臥室,那么從開關發出太多光可能會令人不安。
提示:
放置一個空的可焊接外殼蓋上的面包板,并使用薄尖筆在應鉆孔的外殼上繪制。
步驟4:編程
I使用Arduino IDE編程我的Feather Huzzah。如果你還沒有完成,請下載并安裝Arduio IDE。
為了能夠使用Blynk,我必須使用Blynk庫來安裝Arduino IDE。 Blynk圖書館可以在這里下載。按照以下步驟安裝庫(引自Blynk網站):
下載最新版本的.zip文件。
將所有這些庫復制到Arduino IDE的 your_sketchbook_folder 。要查找 your_sketchbook_folder 的位置,請轉到Arduino IDE中的頂級菜單:文件 - 》首選項(如果您使用的是Mac OS - 請轉到 Arduino→首選項)
解壓縮它。您會注意到存檔包含多個文件夾和幾個庫。
your_sketchbook_folder 的結構現在應該與您的其他草圖一樣(如果有的話):
your_sketchbook_folder/庫/Blynk點擊your_sketchbook_folder/庫/BlynkESP8266_Lib點擊。..
your_sketchbook_folder/工具/BlynkUpdater點擊your_sketchbook_folder/工具/BlynkUsbScript
。..
請注意庫應該轉到庫,工具轉到工具。如果您沒有 tools 文件夾,可以自己創建。
它應該有相當好的文檔記錄,但如果您有任何問題,請隨時發表評論。
總之,這是代碼的工作方式:
定時器每200 ms運行一次checkInputs函數。此功能檢查按鈕是否被按下或釋放。
checkInputs:
如果按鈕被釋放,則它不會執行任何操作。
如果按鈕按下,它切換開關的狀態(switchState),并調用函數sendState。
sendState:
如果按下其中一個小按鈕,函數sendState將發送新的通過內置函數bridge.virtualWrite切換到相應繼電器的狀態。
如果按下更大的按鈕,函數sendState將通過內置函數向所有繼電器發送“關閉”狀態function bridge.virtualWrite。
代碼的其余部分是設置,創建變量,連接到已知的wifi等。..
步驟5:設置Blynk App
Blynk是一個很棒的應用程序,用于處理手機,設備和Blynk服務器之間的鏈接。他們有一個很棒的社區,很多例子,應用程序界面是用戶友好的,同時仍然可以自定義。該應用程序是免費的,但它附帶了可以添加的有限數量的小部件。如果你添加我擁有的所有小部件,你可能需要購買5美元的信用額度。但是很多小部件都是可選的,你可以免費做這個項目,特別是如果你想控制少于15個繼電器。
如果您之前從未使用過Blynk,請按照以下步驟進行設置:
在智能手機上從Google Play商店或App Store安裝Blynk應用。
在Blynk應用程序中:
登錄或創建帳戶
創建新項目
為每個遠程和中繼添加設備(選擇ESP8266,具有wifi連接)
Build
使用USB電纜將羽毛Huzzah連接到計算機。
確保在上一步中下載并安裝了Blynk庫。
在程序中,輸入您通過Blynk發送的電子郵件收到的身份驗證令牌。
在工具 - 》端口中,選擇Arduino所連接的COM端口。
我在儀表板上創建了5個選項卡:
燈
燈光選項卡用于打開/關閉各個燈(或連接繼電器的任何東西)。在切換模式下,我使用了按鈕小部件,其中交換機作為目標,V0是0和1之間的輸出。我為每個開關做了那個。
組
“組”選項卡用于打開/關閉燈組(或任何連接到燈組的燈組)繼電器)。我只是為每個房間創建標簽,然后重復與Lights選項卡相同的步驟,每個組都有一個按鈕小部件。
定時器
我添加了幾個計時器,可以用來在晚上打開前門燈,或者在你度假時模擬一個存在,或者讓你的床頭燈點亮以喚醒你等等。..我選擇了以下小部件:
時間輸入小部件,我在其中選擇了要控制的relayI,輸出V3,允許啟動/停止輸入,以及允許時區選擇。
一個按鈕小部件,我在模式“switch”中選擇了相同的繼電器,輸出V4在0和1之間。這是告訴繼電器是否應遵循時間表。
另一個按鈕小部件,我在模式“switch”中選擇了相同的繼電器,輸出V0在0和1之間。這是手動打開或關閉繼電器。
監視器
“監視器”選項卡包含一個終端小部件。這僅用于調試目的。在“source”中,我選擇了要調試的設備。輸入是V16。我還有一個通知小部件,當硬件脫機時通知我(可選),以及一個實時時鐘小部件,設備現在能夠當前時間(只有你使用定時器時才需要)。
的LED
LED標簽包含一堆用作反饋的LED。這也是可選的。我選擇了LED小部件,選擇了一個輸入V1的繼電器。我為每個接力做了那個。
步驟6:使用和潛在的改進
我現在有了在我家安裝了6個遙控器,并用了幾個月。我相信它們運作良好,我沒有太多改進。 “關閉所有燈”功能是一個很大的改進。外觀很簡單,很清醒,我喜歡。 LED反饋的小孔不會產生太多光線,因此它們不會在夜間打擾我,但即使在白天它們仍然可見。響應時間非???。
以下是可以改進的一些事項:
如果用其他設備打開/關閉繼電器而不是鏈接遙控器(例如,使用app),遙控器不知道繼電器狀態已經改變,因此它不會更新其反饋燈。此外,當我想用遙控器打開燈時,在我用我的應用程序打開它后,我將不得不按兩次按鈕:第一次,遙控器打開燈,即使它已經打開,第二次關閉它。
這不是什么大問題,但是我試圖實現這個修復,但是找不到定期檢查其他設備狀態的Blynk函數。如果你知道如何做到這一點,請在評論中告訴我。
我選擇了我找到的最小的外殼,但它仍然很厚。它們可能更纖細,但我找不到這樣的塑料外殼。
-
微控制器
+關注
關注
48文章
7496瀏覽量
151082 -
WIFI
+關注
關注
81文章
5291瀏覽量
203314
發布評論請先 登錄
相關推薦
評論