树莓派学习笔记2: 用python实现C/S方式远程控制双色LED灯

@2018年12月29日

  • 一、背景
    在之前两篇博客中,学习记录了python控制LED灯、套接字C/S通信。如
    1.树莓派学习笔记1:python控制双色LED灯(https://blog.csdn.net/weixin_44230447/article/details/85223640)
    2.Python学习笔记1:套接字编程-服务和客户端(https://blog.csdn.net/weixin_44230447/article/details/85267244)
    基本原理和简单程序实现后,元旦期间对程序又进行了修改,主要是服务端程序修改较多。

  • 二、基本原理和实验环境
    1.硬件:树莓派及LED,参考树莓派学习笔记1
    2.软件:

  • 服务端程序,部署在树莓派上,host 如192.168.1.107;

  • 客户端程序,本地pc上,可以是一python程序,也可是telnet工具。

  • 树莓派和客户端终端,都接入一个局域网。跨域的还没试过。

在客户端通过 socket与远端建立TCP连接,发送指令字符到树莓派上服务端程序,按指令调用GPIO语句,控制电平高低,最终控制红绿LED的开关。

  • 三、python+树莓派实现
    (一)服务端程序
# -*- coding:utf-8 -*-
# Socket Server example in python 3.6
# 文件名:Socket_server_test.py
import socket
import sys

import RPi.GPIO as GPIO
import time
# ------------------------------------------------------------------
HOST = ''  # Symbolic name meaning all available interfaces
PORT = 8888  # Arbitrary non-privileged port
timeout_limit=120     # unit-sec,建立连接后如果超过xx 秒,将断开连接
connect_times_limit=5 # unit-times,连接中断次数达到xx 次,将关闭socket和中止服务端程序。
#------------------------------------------------------------------
pins = {
   'pin_R':11, 'pin_G':12}  # pins is a dict
sleep_time = 5
GPIO.setmode(GPIO.BOARD)       # Numbers GPIOs by physical location
for i in pins:
	GPIO.setup(pins[i], GPIO.OUT)   # Set pins' mode is output
	GPIO.output(pins[i], GPIO.LOW) # Set pins to low(0V) to off led
	print("i is ",i,pins[i])

def Let_Led_on(pin):
        print('The pin is',pin)
        if pin=='pin_R' :
            other_pin='pin_G'
        elif pin=='pin_G' :
            other_pin='pin_R'
        else :
            print('Input error.\r\n')
            
        GPIO.output
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值