?
本人是軟件方向的,非電子硬件科班生,只是業(yè)余愛好者。因此可能很多基本的硬件常識都不知道,電路圖上如有任何不妥,還望各位不吝賜教,拱手致謝。
本項(xiàng)目改進(jìn)自:【二次測試中】智能WiFi物聯(lián)網(wǎng)插座 https://oshwhub.com/liyichuangeda/ji-yu-ESP12-de-shuang-lu-wu-xian-wu-lian-wang-kai-guan?
感謝原作者 @御坂0x1BF52號 大佬。
?
1.繼電器更換為磁保持繼電器:HF3F-L-05-1HL1T(標(biāo)準(zhǔn)極性/1組常開/單線圈/5V/4腳),好處是省電,只需要啟動或者關(guān)閉繼電器的一瞬間給電,后續(xù)維持狀態(tài)不需要給電。因此本插座節(jié)電性能優(yōu)良,整體功耗只有0.65W左右,長期使用不會造成繼電器線圈發(fā)熱。同時在插座掉電重新上電的過程中,磁保持繼電器不會額外的吸合或者釋放(使用普通繼電器無法避免),插座會保持掉電之前的狀態(tài)。
2.使用ESP12S(也可以用ESP12F),LED顯示和繼電器控制分開,LED可以顯示更多狀態(tài)。原方案中使用的是ESP01S,因?yàn)闆]有多余的IO口用于LED顯示,LED和繼電器只能共用IO2口。而且ESP01S的FLASH容量只有1M,太小了。ESP12S的容量有4M,使得OTA在線升級固件成為可能。
3.重新畫了一個板子用于雙面直插安裝ESP12S,原方案中的ESP01S焊接以后引腳會擠占公母一體插座底部空間,插座沒辦法放平。直插安裝的ESP12S項(xiàng)目位于:https://oshwhub.com/oldfox126/esp12s-li-zhuang-mo-kuai? ?所以這個項(xiàng)目實(shí)際上需要打板2塊PCB(2塊PCB的厚度都是1mm)。
4.插座整體上移了約0.5mm,原方案中插座容易擠占下部的繼電器空間。
5.這個插座外殼的可用空間非常小,電源模塊的尺寸也必須足夠小才能放進(jìn)去。評論中經(jīng)常有兄弟說《AC220V TO DC5V開關(guān)電源模塊》這個模塊性能指標(biāo)不好,很坑。但我暫時還沒有發(fā)現(xiàn)尺寸合適的(性能參數(shù)更好的)替代品。
6.評論區(qū)有問這個插座支持的最大功率,我不知道怎么測試最大功率,但從元器件參數(shù)上看是250V10A。
7.如果在PCB打板過程中,廠家提示:中間銑槽連接位太小、會斷板等,請回復(fù):我已悉知并可接受此原因帶來的風(fēng)險,請直接按Gerber文件生產(chǎn),謝謝!
?
1.不使用Blinker庫,改用MQTT方案。主要是點(diǎn)燈Blinker APP只能創(chuàng)建5個設(shè)備,不夠我用。
2.編程環(huán)境從Arduino改成vscode+PlatformIO+C++,vscode的編程環(huán)境非常友好,至于Arduino IDE...還是不評論了。
3.其實(shí)軟件前期使用的是microPython(確實(shí)更簡單),但后來發(fā)現(xiàn)microPython的資源還是太少了。項(xiàng)目做到一半,發(fā)現(xiàn)找不到smartConfig的代碼,只能推倒重來轉(zhuǎn)到C++。
有兄弟在項(xiàng)目下面評論說:“最好能上云或者不僅是局域網(wǎng)使用”,所以我稍微解釋一下MQTT方案,見下面的模型圖。
從圖可見,該方案需要有一個MQTT服務(wù)器支持,所以它本來就是上云的,只要有WIFI就能用,并不限于局域網(wǎng)。
最妙的地方來了:MQTT協(xié)議本身是開源的,網(wǎng)上也有很多免費(fèi)的MQTT服務(wù)器,百度關(guān)鍵字:免費(fèi)MQTT服務(wù)器、公共MQTT服務(wù)器
我們可以不花一分錢就獲得一個不限制設(shè)備數(shù)量和使用期限的云服務(wù)器,我相信這是很多第三方私有協(xié)議難以比擬的優(yōu)勢。
咸魚上經(jīng)常有非常便宜的智能插座賣,問賣家為什么這么便宜?回答就是廠家倒閉、APP停用、無法再控制插座,智能插座基本上就廢了只能當(dāng)普通插座用。
對于開源的MQTT服務(wù)就完全沒有這方面的擔(dān)心。MQTT服務(wù)器關(guān)了?我換一個就好。MQTT服務(wù)器本來就可以通過網(wǎng)頁配網(wǎng)和APP設(shè)置更換。
所以MQTT方案才是我首選的物聯(lián)網(wǎng)控制方案。
1.支持網(wǎng)頁配網(wǎng)
2.支持微信掃碼配網(wǎng)
3.支持網(wǎng)絡(luò)對時NTP
4.支持MQTT,有助于更透徹的理解物聯(lián)網(wǎng)工作機(jī)制。使用MQTT手機(jī)APP上的開關(guān)、倒計(jì)時器、定時器等方式開啟或者關(guān)閉插座。
5.定時器程序是在插座本地實(shí)現(xiàn)的,非云端實(shí)現(xiàn)。只要提交參數(shù)上去保存好,哪怕后來斷網(wǎng)了,插座還是可以定時開啟或者關(guān)閉。所以用本插座物理重啟光貓或者路由器,成為可能。
6.支持OTA在線升級固件,通過網(wǎng)絡(luò)就可以升級固件。再不用痛苦的把板子拆下來重新刷固件了。
7.支持LittleFS文件系統(tǒng),可以掉電保存各種參數(shù)。即使插座掉電重啟,原先的參數(shù)還在。
?
1.插座外殼(包括里面的220V10A公母一體插座)開始是-> 在這里買的?,但是這家店主太懶經(jīng)常不在線。后來-> 上阿里巴巴一次買2個以上 反而便宜點(diǎn)。
2.AC220V TO DC5V開關(guān)電源模塊 右邊2個鏈接我都買過(注意:要買5V帶腳的),可以用-> 鏈接1 鏈接2
3.側(cè)按鍵(注意:要買H=5MM的)-> 購買鏈接
4.ESP-12S模塊 需要購買一個普通的ESP12S,然后自己打板焊接:【已驗(yàn)證】ESP12S直插安裝模塊 https://oshwhub.com/oldfox126/esp12s-li-zhuang-mo-kuai
5.磁保持繼電器K1(注意:要買HF3F-L-05-1HL1T(10A4腳))-> 購買鏈接
6.磁保持繼電器驅(qū)動芯片MD7620A SOT23-6 -> 購買鏈接
7.除此以外其他的元器件(包括電阻、電容、AMS1117、ESP12S、發(fā)光二極管LED等)我基本上都是在優(yōu)信電子買的-> 優(yōu)信電子淘寶店
8.ESP8266開發(fā)測試架/燒錄器(初學(xué)者才需要),我買的是這個-> 購買鏈接
?
1.先給ESP12S刷好固件 https://oshwhub.com/article/ci-bao-chi-WIFIzhi-neng-cha-zuo-ruan-jian-gong-cheng-dao-ru-VSCODE-yi-ji-bian-yi-shuo-ming?
2.給ESP12S配網(wǎng),設(shè)置好MQTT參數(shù)等? https://oshwhub.com/article/ci-bao-chi-WIFIzhi-neng-cha-zuo-ruan-jian-diao-shi-shuo-ming
3.在手機(jī)上安裝MQTT APP,并設(shè)置好服務(wù)器等參數(shù)。 https://oshwhub.com/article/ci-bao-chi-WIFIzhi-neng-cha-zuo-pei-tao-de-shou-ji-APPan-zhuang-ji-she-zhi-shuo-ming
4.將ESP12S焊接到模塊上,在PCB_插座主體上焊接,安裝元器件。將ESP12S模塊焊到主體PCB上。
焊到這個程度就可以了,公母一體插座(紅色圈圈的部分)先不要焊。另外在藍(lán)色箭頭指示位置,5V(紅色)/GND(黑色)分別焊接2根杜邦線公頭。
?
5.在ESP8266開發(fā)測試架/燒錄器上取電,5V(紅色)/GND(黑色)分別插上2根杜邦線母頭,將上一步驟的2根公頭插上。
開電測試,看看MQTT APP上是否能正常顯示跳動的時間(說明ESP12S模塊焊接好,連接WIFI正常,并連上了MQTT服務(wù)器);
開關(guān)是否反應(yīng)正常(LED會隨開關(guān)亮滅);
用萬用表測量繼電器的輸出是否能被MQTT APP的開關(guān)控制,正常通斷。
?
6.以上測試都通過以后,說明插座軟硬件功能正常。可以關(guān)電把2根杜邦線焊下來,焊接公母一體插座。
?
7.全部焊接好,可以裝殼了。塑料外殼與后蓋之間推薦使用補(bǔ)鞋膠 -> 鏈接 粘的很牢固,又不至于像502一樣干的太快。
?
8.裝好的成品如下,要等24小時膠水干了才能使用。
?
(軟硬件安裝完成)
?
感謝B站上的@工科男孫老師(https://space.bilibili.com/43584648),我對電子硬件感興趣但是一直不知道怎么入門,看他的視頻說建議從一個單片機(jī)的項(xiàng)目入手。
感謝B站上的@江科大自化協(xié)(https://space.bilibili.com/383400717),他的51單片機(jī)教程條理清晰,簡單易懂,完全可以封神。后來我再找不到質(zhì)量這么好的教學(xué)視頻了。
感謝B站上的@電子工作室(https://space.bilibili.com/414349573),我跟著他的教程學(xué)會了使用立創(chuàng)EDA。
再次感謝本站的大佬@御坂0x1BF52號,我就是從他的項(xiàng)目(【二次測試中】智能WiFi物聯(lián)網(wǎng)插座 https://oshwhub.com/liyichuangeda/ji-yu-ESP12-de-shuang-lu-wu-xian-wu-lian-wang-kai-guan?)入手的,這個項(xiàng)目做完以后我感覺電子硬件已經(jīng)基本入門了。
最后感謝嘉立創(chuàng)yyds,每個月都要被我薅羊毛打板PCB。
?
2022/7/19
1.根據(jù)評論區(qū)反饋,更改了PCB中間銑槽的間距到0.8mm。
?
2022/8/19
1.重新設(shè)計(jì)了LED點(diǎn)亮邏輯,之前的程序會因?yàn)槟承┪粗脑驅(qū)е翷ED長亮。預(yù)期LED最多只會亮100秒(減少光污染)。
2022/6/27
1.修復(fù)了一個在線升級完成并重啟時繼電器不正常關(guān)閉的BUG,正常狀態(tài)下掉電與否不影響繼電器開合狀態(tài)。
2022/6/26
1.修復(fù)了一個使用定時器開啟插座會造成LED常亮的BUG,正常狀態(tài)下LED最多只會亮100秒(減少光污染)。
2022/6/24
1.增強(qiáng)了WIFI斷連以后的重新連接能力。當(dāng)MQTT服務(wù)連接中斷以后,會重新連接WIFI并初始化網(wǎng)絡(luò)。
2.修正了網(wǎng)頁配網(wǎng)的一個邏輯錯誤:更改WIFI SSID以后,設(shè)備直接重啟造成WIFI SSID并沒有保存成功。
2022/6/20
1.更換了timeLIB時間庫,因該庫有一個潛在的BUG,在運(yùn)行hour()函數(shù)(獲取當(dāng)前小時值),有一定的幾率會造成軟件崩潰、硬件重啟。
2.更改了WIFI連接策略,現(xiàn)在應(yīng)該WIFI連接比之前更穩(wěn)定了。WIFI連不上,或者不能訪問百度的網(wǎng)址,或者網(wǎng)絡(luò)對時NTP失敗,WIFI都會嘗試重新連接。
3.修復(fù)了WIFI初始化函數(shù)返回值類型錯誤的問題。
!注意:請使用瀏覽器自帶下載,迅雷等下載軟件可能無法下載到有效資源。
歡迎加入EEWorld參考設(shè)計(jì)群,也許能碰到搞同一個設(shè)計(jì)的小伙伴,群聊設(shè)計(jì)經(jīng)驗(yàn)和難點(diǎn)。 入群方式:微信搜索“helloeeworld”或者掃描二維碼,備注:參考設(shè)計(jì),即可被拉入群。 另外,如您在下載此設(shè)計(jì)遇到問題,也可以微信添加“helloeeworld”及時溝通。
EEWorld Datasheet 技術(shù)支持