1.树莓派的装机教程

步骤:

  1. 镜像文件和镜像写入SD卡工具的下载
  2. RASPBIAN系统烧录至micro SD卡
  3. 设备连网
  4. 外接显示器或者SSH连接

具体:

  1. 镜像文件地址 ,选择RASPBIAN STRETCH WITH DESKTOP 版本的ZIP文件,这是图形化界面版本的系统,另一个是轻量级的不带桌面的版本;
    镜像写入SD卡工具地址,点击download下载到本地;
  2. 打开Win32 Disk Imager,选择下载完解压好的.image文件,然后写入位置为你的SD卡即可,其他选项都用默认的不用修改,几分钟后即可写入完毕,最终弹出提示是否格式化,点否!
  3. 接下来是连网过程,树莓派自带了网线插槽,如果选择有线连接的方式,直接插上网线即可
    这里主要讲一下无线连接上网的方式:

将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot 目录下新建 wpa_supplicant.conf 文件,将下面内容保存在 wpa_supplicant.conf 文件中.

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1network={ssid="此处填写:你的无线网的名称"
psk=" 此处填写:你的无线网的密码"
}

为了启用树莓派的ssh服务,我们还需要在/boot目录下再新建一个名称为ssh的空文件
!!!注意,此文件没有后缀名!

  1. 树莓派自带了HDMI插槽,所以说,有显示器的同学,可以直接通过HDMI连接树莓派和显示器,然后开启你的树莓派之旅~
    当然,这里更推荐采用ssh连接的方式,通过电脑远程登录你的树莓派主机,详细步骤如下:
    (1)大家知道,远程登录的话,需要知道你远程服务器的IP地址,所以这里我们第一步是要获取到树莓派的IP地址,方法有两种,一是登录到你的路由器网关(查询路由器地址,最简单的办法是打开你手机的WiFi,查看你当前连接的WiFi的详情,里面的路由器的IP地址即为所求);
    (2)在电脑端进入路由器的管理界面,找到raspiberry的名称,所对应的IP地址就是我们所找的;

补充一下,如果没有显示器的话,还可以下载一个开源的软件,名为 ipscan然后一个一个的试你的树莓派的IP地址

(3)上述办法是你完全不想用显示器的时候,所采取的方法,不过我想大部分搞计算机的,都还是会买一个显示器的,那么我们这里可以偷懒,稍微借助一下显示器,登录到树莓派图形界面,打开命令行窗口,然后用 ifconfig命令查看树莓派IP地址;
         (4)获取到IP地址之后,我们就可以通过ssh连接到咱们的树莓派啦!(windows用户可以下载putty或者xshell软件进行登录; Linux/Mac用户可以直接在命令行 通过 ssh pi@ip_address 远程登录,初始默认密码是 raspberry 你的电脑和树莓派需要在同一个局域网,或者二者能相互ping通即可)
         (5)ssh登录成功之后,输入 sudo passwd ,修改默认的登录密码;输入 sudo vi /etc/hostname 修改主机名,重启;或者直接输入 sudo raspi-config 在图形化界面中进行更改一系列的配置!

2. 树莓派入门:控制LED小灯亮

  1. 连接好树莓派的引脚、LED小灯、电阻,我这里是把LED的负极连接pin 6(GROUND),LED的正极连接的是 pin 12;一定要串联一个电阻,否则小灯很容易烧掉 !
          

  2. 编写python程序,代码也比较简单,如下所示:

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
# 树莓派上的引脚,有两种GPIO的编号方式
# GPIO.BOARD模式是采用Z形计数法,如上图的 1,2,3,4,5,6,7...
# GPIO.BCM模式,去掉了具有特定功能的引脚,编号为GPIO2,GPIO3,GPIO4...
# 啰嗦一句:在GPIO.BCM模式中,如果想要绑定的编号是GPIO18,那么写作LED_PIN = 18
GPIO.setmode(GPIO.BOARD)      # 1.设置编号模式;
LED_PIN = 12             # 2.设置要绑定的pin值;
GPIO.setup(LED_PIN,GPIO.OUT)      # 3.设置pin的功能;
GPIO.output(LED_PIN,GPIO.HIGH)    # 4.设置输出为低电平还是高电平;
time.sleep(3)
GPIO.cleanup()            # 5.程序运行结束,清空所有GPIO的配置

3. 树莓派进阶:LCD显示屏显示信息(python实现)

我这里是参考了这篇文章,这是一份提交在Github上面的代码,提供一个Demo,有兴趣的可以点进去查看与收藏。

  1. 第一步还是连接设备,我这里买的是4pin版本的LCD显示屏,如图:
             

#1 Connect GND to GROUND. (Pin 6)
#2 Connect VCC to 5V. (Pin 2)
#3 Connect SDA to GPIO.(Pin 3)参考GPIO接口图,这是固定的pin
#4 Connect SCL to GPIO. (Pin 5)参考GPIO接口图,这是固定的pin

  1. 通过ssh登录到你的树莓派主机,或者在树莓派系统中打开终端,安装下面的包。

sudo apt-get update -y && sudo apt-get install python-smbus git i2c-tools -y

  1. 编辑 modules file

sudo nano /etc/modules

  1. 打开的文件中,对比下面的内容,没有的内容则补充进去
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.snd-bcm2835     # This enables GPIO pins on the pi.
i2c-dev         # This enables i2c communication.
  1. 检查黑名单中是否有i2c-bcm2708,如果有的话,则#注释掉;打开黑名单命令如下

sudo vi /etc/modprobe.d/raspi-blacklist.conf

  1. 输入 sudo raspi-config命令,在打开的图形化界面中,选择 5 Interfacing Options选项,进去之后 enable I2C这个服务;
  2. 下载Github上的代码到你的本地

git clone https://github.com/bradgillap/I2C-LCD-Display

  1. 运行Demo里的python文件 demo_lcd.py

4. 树莓派进阶:基于MQTT协议实现远程控制(python实现&&Android实现)

  1. MQTT通信的三要素

  2. 基于Python实现MQTT通信

  3. 基于Android实现MQTT通信

具体:

  1. MQTT通信的三要素是消息订阅方、消息发布方、消息中间件。

  1. 基本流程:消息订阅方首先连接到消息代理,然后订阅代理服务器上的某些主题,并保持监听状态;消息发布方也是连接到代理服务器,然后朝某个主题发送消息;消息代理接收到消息之后,查找订阅了该主题的服务器,再把消息转发过去;

  2. 需要说明一下的是,消息发布方和消息订阅方可以用不同的语言实现,我分别实现了两个Demo,一个demo是发布方和订阅方都是python实现,另一个demo是python发布消息,Android APP接收消息,本文结尾会附上代码;

  3. 我们在实现MQTT通信的时候,第一件事是构建消息中间件(代理),也就是所谓的Broker,这一部分的实现比较简单,我们可以直接在服务器上部署Mosquitto开源消息代理组件,根据自己代理服务器的操作系统,在链接界面选择对应的并安装。这里再给一个CentOS安装Mosquitto教程。要注意的是,一定要关闭服务器上的防火墙服务,否则哪怕是安装成功了消息代理服务,我们的客户端也还是会连不上代理服务器;

  4. 基于python实现MQTT通信(我这里用的是这个开源框架)

(1)消息订阅方的实现代码 mqtt_sub.py

# 使用之前 pip install paho-mqtt
import paho.mqtt.client as mqtt
# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, flags, rc):print("Connected with result code "+str(rc))# Subscribing in on_connect() means that if we lose the connection and# reconnect then subscriptions will be renewed.    client.subscribe("/jianghui/test")# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):print(msg.topic+" "+str(msg.payload))if(msg.payload == "hello world"):print("hello world!")client = mqtt.Client()client.on_connect = on_connectclient.on_message = on_messageclient.connect("your broker's ip_adress", 1883, 60)# Blocking call that processes network traffic, dispatches callbacks and
# handles reconnecting.
# Other loop*() functions are available that give a threaded interface and a
# manual interface.
client.loop_forever()

(2)消息发布方的实现代码 mqtt_pub.py

#-*- coding: UTF-8 -*-
import paho.mqtt.publish as publish
publish.single("/jianghui/test", "hello world", hostname="your broker's ip_adress")
print("publish successfully!")

(3)代码测试
        开启两个ssh连接你的树莓派服务器的会话,在会话一中执行 python mqtt_sub.py 命令,如果Shell窗口输出 Connected with result 0,那就说明订阅主题成功,处于监听状态,否则说明broker的配置出了问题,或者mqtt_sub.py代码有问题;
        在会话二中执行 python mqtt_pub.py 命令,输出 publish successfully! 就说明发布消息出错,遇到其他错误,直接Google解决 ~

  1. 基于Android实现MQTT通信(我参考了这篇博客)上面给的博客链接中,给出了详细的步骤说明,此处不再赘述,但是上面的博客只给了代码的讲解,具体实现请看我这里,代码下载,已测试成功,有疑问欢迎评论或者私信交流。

一步一步玩转树莓派~相关推荐

  1. 技术宅女5步教你玩转树莓派

    原文http://code.csdn.net/news/2819878/5 本文的美女作者: Lauren Orsini是一个专业记者.业余程序员和全职宅女,她住在饱受交通之苦的Arlington, ...

  2. 一步一步教你玩转.NET Framework的配置文件app.config (转载)

    一步一步教你玩转.NET Framework的配置文件app.config 在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息, ...

  3. 为什么你不想学习?只想玩?人是如何一步一步废掉的

    不知道是不是只有我这样子,还是你们也有过类似的经历. 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了... 什么?你说不知道具体的情况是怎么样 ...

  4. 群辉服务器更新系统教程,男人的生产力工具 篇二百四十六:新手玩转群晖NAS:一步一步教你更新群晖DSM系统...

    男人的生产力工具 篇二百四十六:新手玩转群晖NAS:一步一步教你更新群晖DSM系统 2020-08-05 10:46:03 18点赞 175收藏 59评论 新手与新知男人的生产力工具 篇二百三十九:新 ...

  5. w怎么接显示 树莓派zero_纯干货!一根线玩转树莓派ZeroW(图文教程,亲测有效)...

    #一.写在前面本文旨在介绍如何用最少的外设(成本)完成树莓派Zero W最基础最重要的功能.注意:本文原始发表时官方镜像版本是2017-04-10的,在2019年5月10日有网友提出本方案已经不完全适 ...

  6. 树莓派安装tensorflow(玩转树莓派(三))

    树莓派安装tensorflow(玩转树莓派(三)) python2.7 1.更新软件源,安装依赖包 2.下载tensorflow 3.安装tensorflow 4.测试tensorflow pytho ...

  7. 玩转树莓派(一) 从零开始配置你的专属树莓派

    1.准备工作 树莓派(4b),内存卡(建议16G以上的高速卡,用来装系统当然越快越好啦),读卡器(烧制系统),网线一根(非必要,家里有wifi也可以) 2.安装官方镜像 树莓派作为一个小型主机,自然可 ...

  8. 一步一步实现扫雷游戏(C语言实现)(三)

    使用WIN32API连接窗口 此项目相关博文链接 一步一步实现扫雷游戏(C语言实现)(一) 一步一步实现扫雷游戏(C语言实现)(二) 一步一步实现扫雷游戏(C语言实现)(三) 一步一步实现扫雷游戏(C ...

  9. 华为p4支持鸿蒙功能吗_吹过的牛都一步一步给实现了!明年华为手机支持升级鸿蒙系统!...

    12月16日,华为举行 HarmonyOS 2.0 手机开发者 Beta 活动,现场正式发布了 HarmonyOS 2.0 手机开发者 Beta 版本.据悉,本次 HarmonyOS 2.0 公测设备 ...

最新文章

  1. 哈哈,我的博客开通啦,欢迎光临~~~~~~~~~~~~
  2. 从零开始学python数据分析-从零开始学Python数据分析与挖掘 PDF 下载
  3. python卡尔曼滤波跟踪_使用卡尔曼滤波器以圆周运动跟踪机器人
  4. Ora-00942:表或视图不存在
  5. 强制将IE8设置为IE7兼容模式来解析网页
  6. 内存池的设计和实现总结(一)
  7. 一张图看懂什么是运维?
  8. Windows常见进程大全
  9. 移动开发之微信小程序——资料集合
  10. c语言 close,C++ close()关闭文件方法详解
  11. 美团网副总裁王慧文:所谓“农村包围城市”是一个误解
  12. EXIT: Extrapolation and Interpolation-based Neural Controlled Differential Equations for Time-series
  13. 2021年中国资产管理业务总体存量及促进资产管理行业健康发展的对策分析[图]
  14. mysql中计算最大回撤_基金最大回撤算例(Java 1.8)
  15. 原神私服搭建三:(启动器下载和设置代理)
  16. MOSFET的SOA或者ASO是什么?
  17. 如何去掉mtk自行开发的快速向导和设置向导功能(即OOBE)?
  18. nyoj 黑色帽子
  19. 超全石膏材质贴图素材网站整理
  20. 记笔记这件小事3:几支笔

热门文章

  1. windows怎样运行wmi服务器,文件服务器资源管理器无法加载 Windows Server 中的 WMI 对象...
  2. backgroundLinearGradient线性渐变制作折角效果
  3. 僵尸网络检测和抑制方法
  4. sd-wan专线组网
  5. vue3 + vite + ts + setup , 第七练 TSX的使用
  6. ulimit -u
  7. 成都到毕棚沟2日游攻略
  8. 如何注册wish买家账号?
  9. java pppoe_PPPoE拨号流程
  10. vue获取焦点、失去焦点