您的位置:首頁>數碼>正文

樹莓派+SIM模組自製簡易手機

現在手機滿街都是, 對於技術宅來說, 買一個多沒意思呀。 自己做一個才算是完美是不是

首先準備材料

SIM900A 通訊模組 一個

樹莓派一台

螢幕一個

SIM900A的通信模組最小版, 已經把必要的IO都引出了, 並集成了SIM卡槽, 東西還是挺不錯的, 就是有個對於樹莓派小缺點。 模組在啟動的時候需要800mA以上的電流。 樹莓派的供電是在捉急, 需要改一下供電電路才能正常使用。 否則樹莓派重啟, 特別是打電話的時候。

這個SIM模組的供電電壓範圍是3.6-4.5V, 所以是不能直接用5V的電源來供電的, 否則會燒壞模組。 而3.3V又供不起。 可以串聯一個二極體來降壓, 注意使用的二極體必須是矽管, 電壓降必須是0.7V以上。 否則有些二極體的電壓降僅僅是0.3V的, 降壓的電壓對模組還是很危險

然後把模組通過GPIO和樹莓派接好, 也就是/dev/ttyAMA0設備。 不過需要設置一下, 把系統的調試什麼的輸出都關掉這樣才能用這個串口。

首先是/boot/cmdline.txt

要把console=ttyAMA0,115200 kgdboc=ttyAMA0,115200這一段刪掉以禁用串口調試。

然後是/etc/inittab裡的T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100用#注釋掉

然後進行串口調試

microcom -p /dev/ttyAMA0

現在我們要打電話給10086, 鍵入下列指令就可以啦

echo -e 'ATD10086;' > /dev/ttyAMA0

老是用指令打電話, 太麻煩了, 雖然指令什麼的逼格高。 建立一個簡單的GUI介面方便使用

生產gui之後在代碼後面加上

class App(wx.App):

def OnInit(self):

frame = MyFrame1(None) ##這裡為我們生成GUI的Frame類名

frame.Show()

return True

app = App()

app.MainLoop()

撥號和掛斷鍵的代碼

def CALLA( self, event ):

OUTAD='ATD%s;' % (self.number.GetValue()) ##把撥號的命令放到變數, 後面的那些是輸入框裡的數字

print OUTAD

ser.write(OUTAD) #寫串口操作碼

def keyinnumber0( self, event ):

self.number.WriteText("0") ##在文字方塊添加個數位0, 前面1-9也是一樣, 用來輸入號碼

def CALLH( self, event ):

print 'ATH'

ser.write("ATH") #寫串口操作碼, 掛斷電話

最終實現的效果

Next Article
喜欢就按个赞吧!!!
点击关闭提示