丨實(shí)戰(zhàn)準(zhǔn)備如何搭建硬件開發(fā)環(huán)境_第1頁(yè)
丨實(shí)戰(zhàn)準(zhǔn)備如何搭建硬件開發(fā)環(huán)境_第2頁(yè)
丨實(shí)戰(zhàn)準(zhǔn)備如何搭建硬件開發(fā)環(huán)境_第3頁(yè)
丨實(shí)戰(zhàn)準(zhǔn)備如何搭建硬件開發(fā)環(huán)境_第4頁(yè)
丨實(shí)戰(zhàn)準(zhǔn)備如何搭建硬件開發(fā)環(huán)境_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

4可以基于環(huán)境溫濕度和土壤濕度自動(dòng)澆水的澆花器它們分別對(duì)應(yīng)了實(shí)戰(zhàn)篇的第17~20講的內(nèi)容。為了能讓控制電燈,我們首先要讓電燈接入網(wǎng)絡(luò)。在第2講中,我們介紹了很種通信技術(shù),智能家居場(chǎng)景下常用的有Wi-Fi、BLE和ZigBee等。那么智能電燈應(yīng)該選擇哪從功耗來看,智能電燈是直接連接電線的,不需要電池供電,所以低功耗的BLEZigBee技術(shù)不是必須的選擇,功耗相對(duì)較高的Wi-Fi也可以考慮從普及度和易用性的角度分析,如果使用BLE,設(shè)備與的交互確實(shí)會(huì)非常方便。但是BLE和ZigBee的設(shè)備都有一個(gè)缺點(diǎn),就是需要搭配專有的網(wǎng)關(guān)才能連接互聯(lián)網(wǎng),這在部署和使用的時(shí)候都比較麻煩。所以,我們選擇Wi-Fi作為智能電燈的通信方式。確定使用Wi-Fi之后,我們又該怎么選開發(fā)板呢?(你可能也關(guān)心選擇哪一款。不我推薦選擇開源硬件的開發(fā)板,有兩個(gè)原因。第一,硬件、軟件的各種技術(shù)實(shí)現(xiàn)是公開的,方便分析問題,也方便后期轉(zhuǎn)化為量產(chǎn)的產(chǎn)品;第二,有社區(qū)氛圍,使用的人比較多,大家可以針對(duì)具體的問題進(jìn)行交流。比如 NodeMCU就是一個(gè)不錯(cuò)的選擇?;贓SP8266的版本,F(xiàn)lash空4MB,自帶Wi-Fi功能,而且價(jià)格便宜,在國(guó)內(nèi)外都非常流行。(這里順帶說一ESP8266是國(guó)內(nèi)企業(yè)的產(chǎn)品,國(guó)內(nèi)企業(yè)在Wi-Fi和BLE上的優(yōu)勢(shì)真的是越來越明那么,開發(fā)語(yǔ)言用哪一種比較好呢?我計(jì)劃使用Python。你可能會(huì)覺得奇怪:嗯?為什么不用C語(yǔ)言?主要原因是,我不希望開發(fā)語(yǔ)言成為實(shí)戰(zhàn)項(xiàng)目的。先不說C語(yǔ)言本身的難度,光是它相比之下,使用比較簡(jiǎn)單的Python語(yǔ)言,開發(fā)和調(diào)試都會(huì)非常方便。當(dāng)然,選擇還有別的好處,你在后面的實(shí)戰(zhàn)過程中可以逐漸感受到如果你是嵌入式開發(fā)的高手,對(duì)C語(yǔ)言了然于胸,可以信手拈來,那你也可以基于我介紹的步驟,用C語(yǔ)言,甚至其他的語(yǔ)言來實(shí)踐項(xiàng)目的編程(期待你的)。語(yǔ)言是一個(gè)工當(dāng)然,我也建議你不要排斥這次使用Python的機(jī)會(huì)。一方面,這次嘗試可以拓展你的技術(shù)視野;另一方面,掌握Python對(duì)你寫、做數(shù)據(jù)分析和寫也非常有幫助,可以不過,你可能還是不放心:嵌入式硬件的計(jì)算資源都非常有限,在開發(fā)板上面運(yùn)行代碼可行嗎這確實(shí)是一個(gè),好 項(xiàng)目已經(jīng)提供了解決方案MicroPython是專門為嵌入式系統(tǒng)打造的Python實(shí)現(xiàn)。它完整實(shí)現(xiàn)了Python3.4的語(yǔ)言特性,部分支持Python3.5的特性。在標(biāo)準(zhǔn)庫(kù)方面,MicroPython實(shí)現(xiàn)了Python語(yǔ)言MicroPython接下來,我們就來把MicroPython部署到NodeMCU開發(fā)板上,準(zhǔn)備好開發(fā)環(huán)第一步:準(zhǔn)備首先,我們需要為NodeMCU準(zhǔn)備好MicroPython固件文件。MicroPython已經(jīng)為ESP8266準(zhǔn)備了現(xiàn)成的固件,省去了交叉編譯的工作。否則,我們還需要在電腦上使用專門的編譯軟件,為ESP8266編譯MicroPython源代碼。MicroPython的固件分為2M、1M和512K三個(gè)不同的版本,針對(duì)不同大小的Flash存儲(chǔ)空間。我們的2M穩(wěn)定版本(帶stable的)就行,因?yàn)镹odeMCU開發(fā)板的Flash空間是足夠的。第二步:安裝然后,我們使用一根USB據(jù)線,將NodeMCU發(fā)板和電腦連接起來。接著,我們?cè)陔娔X終端運(yùn)行下面令,安裝用來燒錄的工具esptool:代代1pipinstallesptool安裝完成后,你可以運(yùn)行esptool.pyread_mac命令,確認(rèn)NodeMCU板子是如果連接不成功,或者沒有正確識(shí)別設(shè)備,屏幕上則會(huì)出現(xiàn)下面的結(jié)這時(shí)候怎么辦呢首先,檢查一下你使用的USB線能否傳輸數(shù)據(jù)。不是說笑,我就犯過這個(gè)低級(jí)錯(cuò)誤。現(xiàn)在很多電子產(chǎn)品會(huì)隨帶USB充電線,但是為了節(jié)約成本,有些USB線內(nèi)部實(shí)際上并沒有集另外,注意我們使用的數(shù)據(jù)線,一頭是USB-A接口,另一頭是Micro-USB接口。USB的 如果USB沒有問題,那可能是電腦沒有正確識(shí)別開發(fā)板,我們需要檢查一下驅(qū)動(dòng)文件有如果你跟我一樣,用的是macOS統(tǒng),可以在電腦的終端上輸入lsdev/cu*命令,查看是否有類似/dev/cu.wchusbserialxxxxx名字的設(shè)備文件。如果你使用Windows系統(tǒng),那么需要查看一下“設(shè)備管理器”,看看“端口(COMLPT)”下面,有沒有COM*結(jié)尾的設(shè)備如果沒有,你可以參考這篇文章,相應(yīng)的驅(qū)動(dòng)文件安裝。(注意,我的開發(fā)板使用的是CH340這款USB轉(zhuǎn)串口。如果是CP2102,可以參考這文當(dāng)你在終端看到類似下面的結(jié)果,或者在Windows的設(shè)備管理器中看到COM*設(shè)備時(shí),如果仍然無法正確識(shí)別,你可以到一些去交流,比如安信可的第三步:燒錄接下來我們燒錄固件。在這之前,我們需要先輸入下面命令,擦除Flash代代#esptool.py--port/dev/cu.wchusbserial14230擦除成功后,我們進(jìn)入前面固件的 中,運(yùn)行下面令,將固件文件燒錄到開發(fā)板的Flash中:#注意設(shè)備名稱替換為你電腦上的名稱,固件文件名稱做類似esptool.py--port/dev/cu.wchusbserial14230--baud460800write_flash--燒錄成功后,MicroPython已經(jīng)在你的開發(fā)板上運(yùn)行起來第四步:確認(rèn)但是開發(fā)板跟電腦不一樣,是沒有顯示屏的,我們要怎么確認(rèn)它的運(yùn)行狀態(tài)有一種非常簡(jiǎn)便的方法,你可以用電腦或者搜索一下周圍的Wi-Fi熱點(diǎn),如果看到類似“MicroPython-xxxxxx”名稱的熱點(diǎn)(xxxxxx是開發(fā)板MAC地址后半部分),說明你的NodeMCU工作正常。比如我的開發(fā)板MAC地址是“40:f5:20:07:3b:52”,現(xiàn)在我當(dāng)然,對(duì)于Python來說,更方便的交互方式還是REPL(交互式解釋器),這MicroPython也提供了。我們可以通過REPL來檢驗(yàn)開發(fā)板的運(yùn)行我們還是使用燒錄時(shí)用到的USB接開發(fā)板和電腦。在MacOS腦上,重新連接開發(fā)1ls 需要注意的是,波特率(Baudrate)設(shè)置為115200,這與前面燒錄時(shí)選擇的值不如果你使用Windows操作系統(tǒng),那么 PuTTY更加流行。當(dāng)然,建立連接的參數(shù)設(shè)置成功連接后,SecureCRT的窗口會(huì)輸出類似下面的結(jié)看到熟悉的符號(hào)“>>>”,我們就知道,可以真正進(jìn)行交互第五步:體驗(yàn)先用 oWorld”來個(gè)經(jīng)典的打招呼吧接著,我們體驗(yàn)一下MicroPythonLED。因?yàn)殚_發(fā)板NodeMCU12F管腳接有一個(gè)LED燈,你可以輸入下面的代碼,控制它的點(diǎn)亮和熄滅123456>>>oWorldfromoWorldfrom>>>import>>>pin=machine.Pin(2,>>>>>>需要注意的是,不同的板子上,這個(gè)管腳的高低電平的設(shè)計(jì)可能不同,所以pin.on(可能是熄滅LED燈;pin.off()反而是點(diǎn)亮LED燈。那么,能不能運(yùn)行一個(gè)Python碼文件呢?比如,基于在REPL嘗試的點(diǎn)亮LED我們寫一個(gè)代碼段9#等待2#控制LED狀#等待2#切換LED這段代碼實(shí)現(xiàn)的功能是,控制LED以2的間隔,不斷點(diǎn)亮、熄滅。為了在電路板上運(yùn)行這個(gè)Python代碼,我們需要做兩件事情:將代碼段保存到一個(gè)文件中,這個(gè)文件的名字必須 main.py將代碼文件main.py放到開發(fā)板的文件系統(tǒng)中,而且是 這樣,當(dāng)開發(fā)板啟動(dòng)或者重啟的時(shí)候,就會(huì)自動(dòng)執(zhí)行main.py文件中的代碼。MicroPython的提供了一個(gè)工具 pyboard.py,它也是基于串口連接與開發(fā)板通pyboard.py的源文件到電腦后,你可以運(yùn)行下面令,將main.py文件部署到你#設(shè)置環(huán)境變量export33456#下的main.py./pyboard.pycpmain.py不過,pyboard.pyMacOS上運(yùn)行有問題。比如,在電腦終端,嘗試運(yùn)行下面令,就會(huì)收到“couldnotenterrawrepl”這個(gè)錯(cuò)誤信息。1./pyboard.py-fls這可能是MacOS上的串口CH340的驅(qū)動(dòng)的問題,它會(huì)在建立串口連接時(shí),重置NodeMCU導(dǎo)致enter_raw_repl數(shù)無法正常執(zhí)行。如果你只能在MacOS開發(fā), AdaFruitMicroPythontool——安裝過程可以打開了解,我就不展開了。一般情況下,你可以用下面令完成安裝pipinstalladafruit-#---或者pip3installadafruit-ampy是通過增加延時(shí)的方法,來規(guī)避MacOS系統(tǒng)上的問題的。所以在使用的時(shí)候,我們需要先設(shè)置一個(gè)環(huán)境變量——AMPY_DELAY。延時(shí)的推薦值是0.5,不過,具體實(shí)踐1export我們可以在終端中輸入上面的指令,也可以將它加入到.bashrc或.zshrc等配置文件中,使用ampy的過,常用的環(huán)境變量還有下面兩個(gè),可以根據(jù)具體情況設(shè)置代代12345exportexport然后,輸入下面令,就把代碼部署到開發(fā)板上了1ampyput在這一講中,我?guī)愦罱酥悄茈姛舻挠布_發(fā)環(huán)在通信技術(shù)方面,我從通信速率、功耗、普及度和易用性等角度考慮,最終選擇了Wi-的是NodeMCUESP8266,它在Flash空間、通信技術(shù)和價(jià)格方面有一定優(yōu)勢(shì)。為了降低動(dòng)手實(shí)踐的難度,我們選擇了Python發(fā)語(yǔ)言。而MicroPython我們提供了在NodeMCU上使用Python語(yǔ)言的條件。在搭建MicroPython開發(fā)環(huán)境的過,我們需要使用esptool工具。通過USB線連接NodeMCU,你可以將固件燒錄到開發(fā)板的Flash中。這個(gè)選擇思路和搭建過程不僅適用于智能電燈,也適用于自動(dòng)澆花器,它們的開發(fā)環(huán)境是一樣的。至于智能音箱,使用的開發(fā)板是樹莓派,我在第15講已經(jīng)介紹過使用方法了,所以你也不需要擔(dān)心。這一講是實(shí)戰(zhàn)篇的第一講,所以最后給你留一個(gè)需要?jiǎng)邮值膯栴}MicroPython是專門為嵌入式開發(fā)設(shè)計(jì)、實(shí)現(xiàn)的Python語(yǔ)言開發(fā)環(huán)境。在這一講中,我們通過GPIO的輸出,實(shí)現(xiàn)了LED燈的控制。你能否實(shí)現(xiàn)一個(gè)GPIO的輸入功能,并且通過這個(gè)輸入信號(hào),控制LED燈的點(diǎn)亮和熄滅?希望你能留言區(qū)和我交流,也歡迎你將本講給你的朋友一起學(xué)習(xí)討論 歸科技所有 不得售賣。頁(yè)面已增加防盜追蹤,將依 上一 15|平臺(tái):智能家居開源平臺(tái)的生態(tài)是怎樣的下一 17|控制:怎樣打造聯(lián)網(wǎng)的智能電燈言精選留言言esptool--portCOM3esptool--portCOM3--baud4608

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論