【1-2】電腦wifi控制樹莓派led亮燈

下面是上一章的具體代碼

我們這一章是修改其中的代碼,使系統能通過wifi控制樹莓派亮燈

import socket  as s
import _thread

def tcplink(conn,addr):
	print(conn,addr)
	while 1:
		data = conn.recv(1024)
		if not data:
			break
		print(str(data,"utf-8"))

s_tcp = s.sock(s.AF_INET,s.SOCK_STREAM)

s_tcp.bind(("0.0.0.0",60000))
s_tcp.listen(100)


while 1:
    print("start")
    conn,addr = s_tcp.accept()


    _thread.start_new_thread(tcplink,(conn,addr))


先接線

弄個led燈模塊,GND接負極,R/VCC接GPIO11口(BCM模式下的17)

 

然後分兩步走

1-改寫樹莓派的代碼

2-改寫電腦端的代碼

 

1-改寫樹莓派的代碼

#在樹莓派的程序里加入這些

import RPi.GPIO as r#導入模塊
r.setmode(r.BCM)#設置GPIO口模式
led = 17#燈是連接到GPIO11口,11口在BCM模式下是17,所以我們賦值爲17


r.setup(led,r.OUT)#將led的信號端口設定爲OUT,意思是信號從樹莓派傳向led燈


#修改tcplink函數
def tcplink(conn,addr):
	print(conn,addr)
	while 1:
		data = conn.recv(1024)
#####從下面開始修改####
		if not data:
			break
        data = str(data,"utf-8")#將接受的信息通過str函數,使用utf-8編碼轉回字符串
		if data == "1":
            r.output(led,r.HIGH)
        #如果data是1的字符串,那麼就開燈,下面同理,是0的話就亮燈

        if data == "0":
            r.output(led,r.LOW)

2-改寫電腦端的代碼

import socket as s
import time#加入時間模塊

s_tcp = s.socket(s.AF_INET,s.SOCK_STREAM)
s_tcp.connect(("192.168.2.3",60000))#同樣這裏按照你自己樹莓派的端口重新設置ip
while True:
    for i in range(1,6):#以下代碼自動重複5次
        s_tcp.sendall(bytes("1","utf-8"))
        time.sleep(1)#停止1秒後再運行下面的程序
        s_tcp.sendall(bytes("0","utf-8"))
        time.sleep(1)#停止1秒後再繼續運行
    break
通過這個代碼,每1秒向樹莓派發送一個信息,達到燈一閃一滅的效果

然後先運行樹莓派端的程序,再運行電腦端的程序,就可以看到燈在wifi控制下一閃一閃啦

 

有什麼問題可以留言,會及時回覆的哈~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章