【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控制下一闪一闪啦

 

有什么问题可以留言,会及时回复的哈~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值