![丨實戰(zhàn)準備如何搭建硬件開發(fā)環(huán)境_第1頁](http://file4.renrendoc.com/view/0d9d889a160a1862f2c542114d4abc63/0d9d889a160a1862f2c542114d4abc631.gif)
![丨實戰(zhàn)準備如何搭建硬件開發(fā)環(huán)境_第2頁](http://file4.renrendoc.com/view/0d9d889a160a1862f2c542114d4abc63/0d9d889a160a1862f2c542114d4abc632.gif)
![丨實戰(zhàn)準備如何搭建硬件開發(fā)環(huán)境_第3頁](http://file4.renrendoc.com/view/0d9d889a160a1862f2c542114d4abc63/0d9d889a160a1862f2c542114d4abc633.gif)
![丨實戰(zhàn)準備如何搭建硬件開發(fā)環(huán)境_第4頁](http://file4.renrendoc.com/view/0d9d889a160a1862f2c542114d4abc63/0d9d889a160a1862f2c542114d4abc634.gif)
![丨實戰(zhàn)準備如何搭建硬件開發(fā)環(huán)境_第5頁](http://file4.renrendoc.com/view/0d9d889a160a1862f2c542114d4abc63/0d9d889a160a1862f2c542114d4abc635.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
4可以基于環(huán)境溫濕度和土壤濕度自動澆水的澆花器它們分別對應了實戰(zhàn)篇的第17~20講的內容。為了能讓控制電燈,我們首先要讓電燈接入網絡。在第2講中,我們介紹了很種通信技術,智能家居場景下常用的有Wi-Fi、BLE和ZigBee等。那么智能電燈應該選擇哪從功耗來看,智能電燈是直接連接電線的,不需要電池供電,所以低功耗的BLEZigBee技術不是必須的選擇,功耗相對較高的Wi-Fi也可以考慮從普及度和易用性的角度分析,如果使用BLE,設備與的交互確實會非常方便。但是BLE和ZigBee的設備都有一個缺點,就是需要搭配專有的網關才能連接互聯(lián)網,這在部署和使用的時候都比較麻煩。所以,我們選擇Wi-Fi作為智能電燈的通信方式。確定使用Wi-Fi之后,我們又該怎么選開發(fā)板呢?(你可能也關心選擇哪一款。不我推薦選擇開源硬件的開發(fā)板,有兩個原因。第一,硬件、軟件的各種技術實現(xiàn)是公開的,方便分析問題,也方便后期轉化為量產的產品;第二,有社區(qū)氛圍,使用的人比較多,大家可以針對具體的問題進行交流。比如 NodeMCU就是一個不錯的選擇?;贓SP8266的版本,F(xiàn)lash空4MB,自帶Wi-Fi功能,而且價格便宜,在國內外都非常流行。(這里順帶說一ESP8266是國內企業(yè)的產品,國內企業(yè)在Wi-Fi和BLE上的優(yōu)勢真的是越來越明那么,開發(fā)語言用哪一種比較好呢?我計劃使用Python。你可能會覺得奇怪:嗯?為什么不用C語言?主要原因是,我不希望開發(fā)語言成為實戰(zhàn)項目的。先不說C語言本身的難度,光是它相比之下,使用比較簡單的Python語言,開發(fā)和調試都會非常方便。當然,選擇還有別的好處,你在后面的實戰(zhàn)過程中可以逐漸感受到如果你是嵌入式開發(fā)的高手,對C語言了然于胸,可以信手拈來,那你也可以基于我介紹的步驟,用C語言,甚至其他的語言來實踐項目的編程(期待你的)。語言是一個工當然,我也建議你不要排斥這次使用Python的機會。一方面,這次嘗試可以拓展你的技術視野;另一方面,掌握Python對你寫、做數(shù)據(jù)分析和寫也非常有幫助,可以不過,你可能還是不放心:嵌入式硬件的計算資源都非常有限,在開發(fā)板上面運行代碼可行嗎這確實是一個,好 項目已經提供了解決方案MicroPython是專門為嵌入式系統(tǒng)打造的Python實現(xiàn)。它完整實現(xiàn)了Python3.4的語言特性,部分支持Python3.5的特性。在標準庫方面,MicroPython實現(xiàn)了Python語言MicroPython接下來,我們就來把MicroPython部署到NodeMCU開發(fā)板上,準備好開發(fā)環(huán)第一步:準備首先,我們需要為NodeMCU準備好MicroPython固件文件。MicroPython已經為ESP8266準備了現(xiàn)成的固件,省去了交叉編譯的工作。否則,我們還需要在電腦上使用專門的編譯軟件,為ESP8266編譯MicroPython源代碼。MicroPython的固件分為2M、1M和512K三個不同的版本,針對不同大小的Flash存儲空間。我們的2M穩(wěn)定版本(帶stable的)就行,因為NodeMCU開發(fā)板的Flash空間是足夠的。第二步:安裝然后,我們使用一根USB據(jù)線,將NodeMCU發(fā)板和電腦連接起來。接著,我們在電腦終端運行下面令,安裝用來燒錄的工具esptool:代代1pipinstallesptool安裝完成后,你可以運行esptool.pyread_mac命令,確認NodeMCU板子是如果連接不成功,或者沒有正確識別設備,屏幕上則會出現(xiàn)下面的結這時候怎么辦呢首先,檢查一下你使用的USB線能否傳輸數(shù)據(jù)。不是說笑,我就犯過這個低級錯誤?,F(xiàn)在很多電子產品會隨帶USB充電線,但是為了節(jié)約成本,有些USB線內部實際上并沒有集另外,注意我們使用的數(shù)據(jù)線,一頭是USB-A接口,另一頭是Micro-USB接口。USB的 如果USB沒有問題,那可能是電腦沒有正確識別開發(fā)板,我們需要檢查一下驅動文件有如果你跟我一樣,用的是macOS統(tǒng),可以在電腦的終端上輸入lsdev/cu*命令,查看是否有類似/dev/cu.wchusbserialxxxxx名字的設備文件。如果你使用Windows系統(tǒng),那么需要查看一下“設備管理器”,看看“端口(COMLPT)”下面,有沒有COM*結尾的設備如果沒有,你可以參考這篇文章,相應的驅動文件安裝。(注意,我的開發(fā)板使用的是CH340這款USB轉串口。如果是CP2102,可以參考這文當你在終端看到類似下面的結果,或者在Windows的設備管理器中看到COM*設備時,如果仍然無法正確識別,你可以到一些去交流,比如安信可的第三步:燒錄接下來我們燒錄固件。在這之前,我們需要先輸入下面命令,擦除Flash代代#esptool.py--port/dev/cu.wchusbserial14230擦除成功后,我們進入前面固件的 中,運行下面令,將固件文件燒錄到開發(fā)板的Flash中:#注意設備名稱替換為你電腦上的名稱,固件文件名稱做類似esptool.py--port/dev/cu.wchusbserial14230--baud460800write_flash--燒錄成功后,MicroPython已經在你的開發(fā)板上運行起來第四步:確認但是開發(fā)板跟電腦不一樣,是沒有顯示屏的,我們要怎么確認它的運行狀態(tài)有一種非常簡便的方法,你可以用電腦或者搜索一下周圍的Wi-Fi熱點,如果看到類似“MicroPython-xxxxxx”名稱的熱點(xxxxxx是開發(fā)板MAC地址后半部分),說明你的NodeMCU工作正常。比如我的開發(fā)板MAC地址是“40:f5:20:07:3b:52”,現(xiàn)在我當然,對于Python來說,更方便的交互方式還是REPL(交互式解釋器),這MicroPython也提供了。我們可以通過REPL來檢驗開發(fā)板的運行我們還是使用燒錄時用到的USB接開發(fā)板和電腦。在MacOS腦上,重新連接開發(fā)1ls 需要注意的是,波特率(Baudrate)設置為115200,這與前面燒錄時選擇的值不如果你使用Windows操作系統(tǒng),那么 PuTTY更加流行。當然,建立連接的參數(shù)設置成功連接后,SecureCRT的窗口會輸出類似下面的結看到熟悉的符號“>>>”,我們就知道,可以真正進行交互第五步:體驗先用 oWorld”來個經典的打招呼吧接著,我們體驗一下MicroPythonLED。因為開發(fā)板NodeMCU12F管腳接有一個LED燈,你可以輸入下面的代碼,控制它的點亮和熄滅123456>>>oWorldfromoWorldfrom>>>import>>>pin=machine.Pin(2,>>>>>>需要注意的是,不同的板子上,這個管腳的高低電平的設計可能不同,所以pin.on(可能是熄滅LED燈;pin.off()反而是點亮LED燈。那么,能不能運行一個Python碼文件呢?比如,基于在REPL嘗試的點亮LED我們寫一個代碼段9#等待2#控制LED狀#等待2#切換LED這段代碼實現(xiàn)的功能是,控制LED以2的間隔,不斷點亮、熄滅。為了在電路板上運行這個Python代碼,我們需要做兩件事情:將代碼段保存到一個文件中,這個文件的名字必須 main.py將代碼文件main.py放到開發(fā)板的文件系統(tǒng)中,而且是 這樣,當開發(fā)板啟動或者重啟的時候,就會自動執(zhí)行main.py文件中的代碼。MicroPython的提供了一個工具 pyboard.py,它也是基于串口連接與開發(fā)板通pyboard.py的源文件到電腦后,你可以運行下面令,將main.py文件部署到你#設置環(huán)境變量export33456#下的main.py./pyboard.pycpmain.py不過,pyboard.pyMacOS上運行有問題。比如,在電腦終端,嘗試運行下面令,就會收到“couldnotenterrawrepl”這個錯誤信息。1./pyboard.py-fls這可能是MacOS上的串口CH340的驅動的問題,它會在建立串口連接時,重置NodeMCU導致enter_raw_repl數(shù)無法正常執(zhí)行。如果你只能在MacOS開發(fā), AdaFruitMicroPythontool——安裝過程可以打開了解,我就不展開了。一般情況下,你可以用下面令完成安裝pipinstalladafruit-#---或者pip3installadafruit-ampy是通過增加延時的方法,來規(guī)避MacOS系統(tǒng)上的問題的。所以在使用的時候,我們需要先設置一個環(huán)境變量——AMPY_DELAY。延時的推薦值是0.5,不過,具體實踐1export我們可以在終端中輸入上面的指令,也可以將它加入到.bashrc或.zshrc等配置文件中,使用ampy的過,常用的環(huán)境變量還有下面兩個,可以根據(jù)具體情況設置代代12345exportexport然后,輸入下面令,就把代碼部署到開發(fā)板上了1ampyput在這一講中,我?guī)愦罱酥悄茈姛舻挠布_發(fā)環(huán)在通信技術方面,我從通信速率、功耗、普及度和易用性等角度考慮,最終選擇了Wi-的是NodeMCUESP8266,它在Flash空間、通信技術和價格方面有一定優(yōu)勢。為了降低動手實踐的難度,我們選擇了Python發(fā)語言。而MicroPython我們提供了在NodeMCU上使用Python語言的條件。在搭建MicroPython開發(fā)環(huán)境的過,我們需要使用esptool工具。通過USB線連接NodeMCU,你可以將固件燒錄到開發(fā)板的Flash中。這個選擇思路和搭建過程不僅適用于智能電燈,也適用于自動澆花器,它們的開發(fā)環(huán)境是一樣的。至于智能音箱,使用的開發(fā)板是樹莓派,我在第15講已經介紹過使用方法了,所以你也不需要擔心。這一講是實戰(zhàn)篇的第一講,所以最后給你留一個需要動手的問題MicroPython是專門為嵌入式開發(fā)設計、實現(xiàn)的Python語言開發(fā)環(huán)境。在這一講中,我們通過GPIO的輸出,實現(xiàn)了LED燈的控制。你能否實現(xiàn)一個GPIO的輸入功能,并且通過這個輸入信號,控制LED燈的點亮和熄滅?希望你能留言區(qū)和我交流,也歡迎你將本講給你的朋友一起學習討論 歸科技所有 不得售賣。頁面已增加防盜追蹤,將依 上一 15|平臺:智能家居開源平臺的生態(tài)是怎樣的下一 17|控制:怎樣打造聯(lián)網的智能電燈言精選留言言esptool--portCOM3esptool--portCOM3--baud4608
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國際貿易法律援助合同-世界貿易組織規(guī)則下法律爭議援助協(xié)議
- 廣西桂林市2025屆高三下學期開學質量檢測語文試卷(含答案)
- 貴州2025年貴州省糧食和物資儲備局所屬事業(yè)單位招聘3人筆試歷年參考題庫附帶答案詳解
- 鄭州2025年河南滎陽市機關事務中心招聘政務輔助工作人員筆試歷年參考題庫附帶答案詳解
- 貴州2025年共青團貴州省委直屬事業(yè)單位招聘7人筆試歷年參考題庫附帶答案詳解
- 衢州2025年浙江衢州市醫(yī)學會招聘工作人員筆試歷年參考題庫附帶答案詳解
- 蘇州2025年江蘇蘇州高新區(qū)教育系統(tǒng)招聘事業(yè)編制教師210人筆試歷年參考題庫附帶答案詳解
- 白城2025年吉林白城市通榆縣事業(yè)單位面向上半年應征入伍高校畢業(yè)生招聘5人筆試歷年參考題庫附帶答案詳解
- 湖南2025年湖南省交通運輸廳所屬事業(yè)單位招聘32人筆試歷年參考題庫附帶答案詳解
- 湖南2024年湖南省林業(yè)局直屬事業(yè)單位招聘筆試歷年參考題庫附帶答案詳解
- 長江委水文局2025年校園招聘17人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年湖南韶山干部學院公開招聘15人歷年高頻重點提升(共500題)附帶答案詳解
- 廣東省廣州市番禺區(qū)2023-2024學年七年級上學期期末數(shù)學試題
- 不可切除肺癌放療聯(lián)合免疫治療專家共識(2024年版)j解讀
- DB23/T 3657-2023醫(yī)養(yǎng)結合機構服務質量評價規(guī)范
- 教科版科學六年級下冊14《設計塔臺模型》課件
- 智研咨詢發(fā)布:2024年中國MVR蒸汽機械行業(yè)市場全景調查及投資前景預測報告
- 法規(guī)解讀丨2024新版《突發(fā)事件應對法》及其應用案例
- JGJ46-2024 建筑與市政工程施工現(xiàn)場臨時用電安全技術標準
- 煙花爆竹重大危險源辨識AQ 4131-2023知識培訓
- 企業(yè)動火作業(yè)安全管理制度范文
評論
0/150
提交評論