【树莓派】 Python点灯程序的编写、部署、开机运行

Why:

决定玩玩吃灰多年的树莓派的外设控制,听闻Python甚好,因此就来个一步到位 从编写到部署到开机运行

What:

硬件清单:
树莓派 4B x1(未涨价前 还没成为理财产品前 420元购入)
电阻1K x2 (并联500欧用,可以再小些,树莓派 单口不超过16mA ,总口和不超过50mA下进行 )
Led x1 (橙色 小只)
杜邦线 公转母 x2
面包板 x1
在这里插入图片描述
软件清单
(直接安装在树莓派系统下,后续复杂程序考虑交叉编译)
Python环境(最新Raspbian系统自带)
VS Code (跨平台的越来越香了)
在这里插入图片描述
在这里插入图片描述

How:

一、安装相应库
a、VS Code 安装Python扩展
b、安装Python控制 树莓派IO库 - RPi
(最新Raspbian系统自带)

二、编写代码

import RPi.GPIO as GPIO
import time

try:

    while True:
        GPIO.setmode(GPIO.BOARD) #
        GPIO.setup(12, GPIO.OUT)
        GPIO.output(12, True)
        time.sleep(1)
        GPIO.output(12, False)
        time.sleep(1)

except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly:
   print("Keyboard interrupt")

except:
   print("some error") 

finally:
   print("clean up") 
   GPIO.cleanup() # cleanup all GPIO 

执行程序会发现命令行卡住,以为什么问题,其实Led已经开始闪了 我没注意到。
此处注意程序结束时的端口释放,测试在终端使用Ctrl +C进行停止操作是可以避免出现 端口被使用的Warnning,但一般人不这么操作。。

三、部署
1、下载Pyinstall
和Windows部署生成exe一样, 可以使用Pyinstall生成, 只是直接使用pip安装的Pyinstall无法生成,网上也说不建议这种方式,因此手动下载Pyinstall 3.4进行命令行生成。
2.打开终端,cd到下载的压缩包(这里是桌面),解压文件:
$cd Desktop
$tar -zxvf PyInstaller-3.4
3、处理(官方处理方法 不处理会出错)
$cd bootloader
$python ./waf distclean all
4.打包文件:
$python /home/pi/Desktop/PyInstaller-3.4/pyinstaller.py -F -w /home/pi/Desktop/<你的文件名>.py
(-w 是不打开终端窗口 最后的路径是你自己Python’文件的路径)
5、生成的文件在Pyinstall 目录里 你的文件名/dist
在这里插入图片描述
四、开机运行
其实开机运行不一定需要打包文件,直接执行py文件可以的,因为这里推荐使用的是使用服务的形式启动。
网上查找有三种方式,使用服务的形式比较稳定。

这里直接编写实现代码,原理详情见文末-《树莓派笔记10:测试几种开机自启动的方法》

1、创建Auto_Start_Test服务文件

cd /etc/init.d
sudo touch Auto_Start_Test

2、写入bash脚本内容

#!/bin/bash
### BEGIN INIT INFO
# Provides: Auto_Start_Test
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Auto Start Test 
# Descrption: This service is used to test auto start service
### END INIT INFO

case "$1" in
    start)
        echo "Stat"
        /home/pi/Auto_Start_Demo.py&
        ;;
    stop)
        echo "Stop"
        killall Auto_Start_Demo.py
        exit 1
        ;;
    *)
        echo "Usage:service Auto_Start_Test start|stop"
        exit 1
        ;;
esac
exit 0

3、开放权限
sudo chmod 777 Auto_Start_Test
4、 将该服务添加到自启动项
sudo chmod 777 Auto_Start_Test
5、手动测试
启动服务sudo service Auto_Start_Test start
停止服务sudo service Auto_Start_Test stop

总结:此贴为总结帖子,基本参考网上帖子进行总结记录,建议查找资料过程中保持自己的判断力,集思广益,

参考文档:
树莓派安装VS Code
python使用树莓派控制led灯-新手项
在树莓派上用python控制LED
树莓派 Learning 003 — GPIO 001 — 点亮LED
GPIO: Warning Channel already in use 端口已被使用处理
树莓派(Raspbian系统)中使用pyinstaller封装Python代码为可执行程序
pip命令安装 pyinstaller失败解决办法
树莓派笔记10:测试几种开机自启动的方法
书籍 —《树莓派Python编程指南》

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
点灯科技ESP32代码是用于控制ESP32开发板的程序代码。ESP32是一款双核32位微控制器,具有强大的处理能力和丰富的接口资源,非常适用于物联网、嵌入式系统等应用。 点灯科技ESP32代码中可以包含各种功能,比如WiFi连接、通信协议、传感器数据采集、PWM控制、电机驱动等等。这些功能可以通过编写ESP32代码来实现。 编写ESP32代码需要具备一定的编程知识,比如C/C++语言、Arduino开发平台等。首先,我们需要选择合适的开发环境,比如Arduino IDE或者其他支持ESP32开发的集成开发环境。 然后,我们可以通过Arduino库提供的函数来实现各种功能。比如使用WiFi库来连接WiFi网络,使用Wire库来进行I2C通信,使用GPIO库来控制引脚状态,使用Analog库来进行模拟量读取等等。通过调用这些函数可以完成相应的操作。 在编写ESP32代码的过程中,我们需要根据具体的需求进行代码的编写和调试。可以使用串口输出来查看调试信息,通过添加适当的延时来控制程序流程,使用条件判断来实现不同的功能逻辑等等。 最后,我们可以将编写好的ESP32代码上传到开发板中进行测试。可以通过USB接口将开发板与计算机连接,然后选择对应的开发板和端口,将代码烧录到开发板中。 综上所述,点灯科技ESP32代码是用于控制ESP32开发板的程序代码,通过编写这些代码可以实现各种功能,包括WiFi连接、通信协议、传感器数据采集、PWM控制、电机驱动等等。编写ESP32代码需要具备一定的编程知识和开发环境,可以通过Arduino IDE等工具进行编写、调试和上传。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值