MicroPython是運(yùn)行在微控制上的Python,Python現(xiàn)已成為非常熱門(mén)的程序語(yǔ)言,在微處理器領(lǐng)域更是備受歡迎。Python可以完成單片機(jī)這樣對(duì)實(shí)時(shí)性要求高的開(kāi)發(fā)環(huán)境,Python移植相對(duì)比較容易,有很多的版本。目前關(guān)于MicroPython的開(kāi)發(fā)板比較單一,今天要介紹的是一款帶以太網(wǎng)的MicroPython開(kāi)發(fā)板——TPYBoardv201。
以太網(wǎng)的MicroPython開(kāi)發(fā)板
PYBoardV201是以遵照MIT許可的MicroPython為基礎(chǔ),由TurnipSmart公司制作的一款MicroPython開(kāi)發(fā)板,它基于STM32F405單片機(jī),通過(guò)USB接口進(jìn)行數(shù)據(jù)傳輸。該開(kāi)發(fā)板內(nèi)置4個(gè)LED燈、板載V201網(wǎng)口功能,可在3.3V-10V之間的電壓正常工作。可以說(shuō)這個(gè)開(kāi)發(fā)板在網(wǎng)絡(luò)穩(wěn)定方面是一霸也不為過(guò),板上其他硬件資源也非常豐富,像單總線,i2c,spi,串口等接口也是應(yīng)有盡有,下面我們就會(huì)用到串口和單總線的功能。
QQ圖片20170503152740.png (327.27 KB, 下載次數(shù): 120)
下載附件
2017-5-3 16:31 上傳
硬件介紹:
MCU(主控芯片):STM32F405RGT6 ARM CORTEX-M4 MCU運(yùn)行最高速度:168MHz Flash:1024KB SD Card(最大8GB) Micro USB, 可在3.5V-10V電壓內(nèi)工作 2x USB 2.0 RST鍵: 在開(kāi)發(fā)板的左下角 USR鍵: RST鍵上方 以太網(wǎng)轉(zhuǎn)串口 LED*4 (從外向里依次是紅,黃,綠,藍(lán))
TPYBoardV201溫濕度上傳實(shí)例 歷來(lái)關(guān)于溫濕度的檢測(cè)都是沒(méi)有間斷過(guò)的,這次我們繼續(xù)檢測(cè)溫濕度,同樣還是使用DHT11來(lái)檢測(cè)。但是這次檢測(cè)到的溫濕度不進(jìn)行顯示,也不進(jìn)行報(bào)警,這次要把檢測(cè)到的數(shù)據(jù)通過(guò)以太網(wǎng)上傳到服務(wù)器上去。
先來(lái)說(shuō)一下需要的器件:
TPYBoardV201開(kāi)發(fā)板一塊; DHT11溫濕度模塊一個(gè); 面包板一個(gè)(可省略); 杜邦線若干;
簡(jiǎn)單介紹一下各個(gè)器件 開(kāi)發(fā)板不做過(guò)多介紹,主要說(shuō)的是溫濕度傳感器——DHT11。DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,它應(yīng)用專(zhuān)用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性和卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。
上面介紹了所需器件,下面我們來(lái)說(shuō)一下實(shí)驗(yàn)所需的環(huán)境。這里只需要能給開(kāi)發(fā)板供電,以及可以支持有線網(wǎng)絡(luò)連接(可以給開(kāi)發(fā)板接上網(wǎng)線)即可。
下面實(shí)驗(yàn)開(kāi)始
一.按照下表進(jìn)行接線
其次就是給開(kāi)發(fā)板進(jìn)行供電和插上網(wǎng)線,看到V201網(wǎng)口上的綠色指示燈亮起來(lái),說(shuō)明已經(jīng)連接上網(wǎng)絡(luò)。
二.配置V201網(wǎng)口
這一步是為了設(shè)置V201網(wǎng)口模塊的目的地址,本地端口,波特率,數(shù)據(jù)位,校驗(yàn)位等一系列信息,具體配置方向詳見(jiàn):V201網(wǎng)口配置使用文檔。
接著我們來(lái)說(shuō)一下基本的邏輯流程:
我們這次是為了把溫濕度數(shù)據(jù)上傳服務(wù)器,第一步肯定是現(xiàn)在開(kāi)發(fā)板上獲取到溫濕度的數(shù)據(jù),關(guān)于DHT11的使用,開(kāi)發(fā)板這邊提供了非常詳細(xì)的使用方法和DHT11的庫(kù),這里就不做多余介紹啦。
在我們成功獲取到溫濕度以后,把溫濕度數(shù)據(jù)進(jìn)行分割處理,說(shuō)白了就是把溫度和濕度分開(kāi)。
前面把要傳的數(shù)據(jù)都處理好了,接下來(lái)就是進(jìn)行傳輸,在保證網(wǎng)絡(luò)通暢的前提下,設(shè)置串口6,也就是Y1和Y2,具體的波特率這個(gè)要參照你前面設(shè)置給V201網(wǎng)口的波特率來(lái)定。
在這里需要說(shuō)一句的是,這個(gè)開(kāi)發(fā)板在使用以太網(wǎng)功能的時(shí)候,Y1,Y2,Y3這三個(gè)引腳是被占用的,其中Y1和Y2是串口,執(zhí)行通信功能。
這里需要介紹一下Y3,Y3是V201網(wǎng)口的設(shè)置引腳,當(dāng)Y3不為低電平時(shí),V201網(wǎng)口處于正常工作狀態(tài),可以進(jìn)行數(shù)據(jù)上傳,也可以利用設(shè)置軟件通過(guò)網(wǎng)絡(luò)進(jìn)行配置。當(dāng)Y3為低電平時(shí),V201網(wǎng)口進(jìn)入串口配置模式,可利用設(shè)置軟件通過(guò)串口進(jìn)行配置,此時(shí)不能進(jìn)行數(shù)據(jù)上傳。
以上工作全部完成后,剩下的就是把配置好的數(shù)據(jù),通過(guò)串口6發(fā)送出去。
最后我們只需要監(jiān)控?cái)?shù)據(jù)是不是上傳正常就可以了。
下面是我做實(shí)驗(yàn)的實(shí)物圖和數(shù)據(jù)監(jiān)控截圖,我是在我的電腦上開(kāi)了個(gè)模擬的端口,雖然low了點(diǎn),但是效果一樣的。
1.jpg (186.02 KB, 下載次數(shù): 96)
下載附件
2017-5-3 16:32 上傳
實(shí)物圖
2.png (59.35 KB, 下載次數(shù): 107)
下載附件
2017-5-3 16:33 上傳
數(shù)據(jù)監(jiān)控截圖
源代碼
下面是源代碼,共享給大家。
- import pyb
- from pyb import UART
- from pyb import Pin
- from ubinascii import hexlify
- from ubinascii import *
- from DHT11 import DHT11#定義溫濕度傳感器的庫(kù)
-
- ulan = UART(6, 115200)#定義串口,我的網(wǎng)口設(shè)置了115200的波特率
- K=1
- #*******************************主程序**********************************
- print('while')
- while (K>0):
- S=DHT11()#調(diào)用溫濕度傳感器的方法
- A=S.read_temps()#讀取溫濕度的值
- print('A:',A)
- print('A:',A[0:2])
- print('A:',A[3:5])#打印溫濕度的值
- ulan.write('temperature is:'+A[0:2]+'\r\n')#上傳溫度
- pyb.delay(2000)#做延時(shí)是為了讓給模擬服務(wù)器一個(gè)反應(yīng)時(shí)間
- ulan.write('wet is:'+A[3:5]+'%'+'\r\n')#上傳濕度
- pyb.delay(12000)
復(fù)制代碼
|