putty串口打开没反应_如何使用树莓派快速搭建一个串口数据记录器?
在最近發(fā)現(xiàn)同事的某些項(xiàng)目臨時(shí)增加了一些需求,把測(cè)出的能見度數(shù)據(jù)保存在存儲(chǔ)介質(zhì)中,并且可以隨時(shí)遠(yuǎn)程查閱。如果在項(xiàng)目時(shí)間與成本允許的情況下,我們會(huì)選擇在PCB中增加SD卡槽以及以太網(wǎng)接口,用于存儲(chǔ)數(shù)據(jù)和聯(lián)網(wǎng)。但是如果項(xiàng)目時(shí)間與人手不足,鑒于以太網(wǎng)和SD卡文件系統(tǒng)具有一定的復(fù)雜性,該需求則會(huì)大大占用人員和成本。突然想起了閑置已久的樹莓派。
首先介紹本文的主角:樹莓派。樹莓派在國(guó)內(nèi)外論壇享譽(yù)已久,為很多開發(fā)者快速搭建了產(chǎn)品原型。使用樹莓派等設(shè)備可以方便可靠地對(duì)遠(yuǎn)程項(xiàng)目進(jìn)行管理,并且節(jié)省大量開發(fā)時(shí)間。下圖為樹莓派3B+。
樹莓派3B+
該產(chǎn)品僅僅只有一個(gè)信用卡大小,且具有40個(gè)具備各種功能的IO口。板載藍(lán)牙、wifi、HDMI控制器、千兆網(wǎng)卡等多個(gè)高級(jí)外設(shè)。可以說具備了一臺(tái)PC機(jī)應(yīng)該有的所有功能,同時(shí)具備很強(qiáng)的硬件擴(kuò)展能力。樹莓派使用官方linux系統(tǒng),關(guān)于樹莓派的使用和配置網(wǎng)上有太多教程,本文不做贅述。本文主要闡述如何快速搭建一個(gè)串口數(shù)據(jù)記錄系統(tǒng)。
首先配置樹莓派的串口。注意由于樹莓派3B+的主串口默認(rèn)用于藍(lán)牙連接,所以需要先取消串口與藍(lán)牙芯片的映射關(guān)系。
1、命令行打開配置文件:sudo nano /boot/config.txt
2、在該文件中加一行代碼 dtoverlay=pi3-miniuart-bt
3、保存退出。
4、命令行查看外設(shè)掛載表:ls -l /dev
5、如下圖所示,此時(shí)serial0被映射為ttyAM0。
6、 命令行輸入:sudo systemctl stop serial-getty@ttyAMA0.service
命令行輸入:sudo systemctl disable serial-getty@ttyAMA0.service
7、 命令行輸入:sudo nano /boot/cmdline.txt
刪除語句 console=serial0,115200
8、至此串口配置完成,以下是功能演示,為了代碼的簡(jiǎn)潔,采用python作為編程語言,該代碼將會(huì)保存串口接收到的所有數(shù)據(jù)進(jìn)入一個(gè)文件當(dāng)中。使用時(shí),只需開機(jī)運(yùn)行這段代碼,便會(huì)不停的接收存儲(chǔ)下位機(jī)發(fā)來的數(shù)據(jù),十分方便。
# -*- coding: utf-8 -*
#加載串口模塊
import serial
#加載時(shí)間模塊
import time
# 打開串口
ser = serial.Serial('/dev/ttyAMA0', 9600)
#定義主函數(shù)
def main():
#在循環(huán)中不停讀取串口數(shù)據(jù)
while True:
#獲得接收緩沖區(qū)字符
count = ser.inWaiting()
if count != 0:
#讀取內(nèi)容
recv = ser.read(count)
#測(cè)試發(fā)送,回傳收到的數(shù)據(jù)
ser.write(recv)
#將數(shù)據(jù)轉(zhuǎn)換為字符型
RevASCII = recv.decode('ascii')
#在控制臺(tái)顯示時(shí)間
print(time.strftime('%Y-%m-%d %H:%M:%S:',time.localtime(time.time())))
#在控制臺(tái)顯示接收到的數(shù)據(jù)
print(recv)
#打開記錄文件
fileHandle = open ('UartRead.txt', 'a' )
#向文件中寫入時(shí)間
fileHandle.write(time.strftime('%Y-%m-%d %H:%M:%S:',time.localtime(time.time())))
#向文件中寫入串口數(shù)據(jù)
fileHandle.write(RevASCII)
#關(guān)閉記錄文件
fileHandle.close()
#清空接收緩沖區(qū)
ser.flushInput()
time.sleep(0.5)
#運(yùn)行主函數(shù)
main()
讓我們?cè)诳刂婆_(tái)中運(yùn)行該段程序:python3 UartTest.py
同時(shí)在串口助手上發(fā)送數(shù)據(jù):
使用串口助手發(fā)送字符串
控制臺(tái)會(huì)回顯接收到的數(shù)據(jù):
控制臺(tái)顯示的收到的字符串
這時(shí)候我們查看記錄文檔: sudo nano UartRead.txt
記錄的文件已經(jīng)生成,可以看到串口的數(shù)據(jù)原封不動(dòng)地存儲(chǔ)在文件里:
使用系統(tǒng)自帶的nano查看記錄文檔
樹莓派強(qiáng)大的網(wǎng)絡(luò)功能為遠(yuǎn)程訪問提供了方便,用戶使用linux自帶的SSH功能即可快速遠(yuǎn)程訪問樹莓派控制臺(tái)訪問,記錄文件。這里使用putty進(jìn)行SSH登陸,如下圖所示。
如果為樹莓派的linux安裝了xrdp服務(wù),可以直接使用windows自帶的遠(yuǎn)程桌面連接進(jìn)行圖形化操作,當(dāng)然也可以使用python或者其他編程語言開發(fā)上位機(jī)軟件甚至服務(wù)器軟件,使得數(shù)據(jù)直觀地顯示。
綜上,系統(tǒng)搭建完成后,實(shí)現(xiàn)了串口操作的基本功能,有了基本功能后進(jìn)行擴(kuò)展,既可以使用樹莓派記錄數(shù)據(jù),又可以在樹莓派上開發(fā)上位機(jī)程序?qū)υO(shè)備進(jìn)行遠(yuǎn)程管理,同時(shí)得益于樹莓派全球性的論壇,資料和文檔充足,節(jié)省了很多開發(fā)時(shí)間。樹莓派信用卡大小的體積足以集成進(jìn)大多數(shù)系統(tǒng)。可以說是快速遠(yuǎn)程系統(tǒng)搭建的絕佳選擇。
總結(jié)
以上是生活随笔為你收集整理的putty串口打开没反应_如何使用树莓派快速搭建一个串口数据记录器?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql查询百分之20到百分之40的数据_
- 下一篇: 为什么本地图片都不能直接浏览器_微软工程