展览:原始展示
展览:原始显示器这个非常简单的 Protip 将 LCD 连接到 Raspberry Pi,以显示您需要的任何数据,例如来自温度传感器的读数。
故事
简介
LCD 是任何项目的非常有用的附加组件。这个非常简单的 protip 将 LCD 连接到 Raspberry Pi 以显示您需要的任何数据。在我们的例子中,我们将显示温度传感器的读数。
硬件
我们需要便宜的 HDD44780 兼容 LCD、Raspberry Pi 3 和温湿度传感器 DHT11、微型 SD 卡和电源、1-2 个电位器、面包板和一些电线。 LCD、面包板、电线、电位计和传感器可以在此套件中找到。我们将使用 6 个 GPIO 引脚连接 LCD。虽然有一种使用 I2C 进行连接的方法,但这是最直接的方法并且具有重要的好处:
- 支持廉价的 LCD 使用
- 不需要任何 I2C 驱动程序
- 不会窃取唯一的串口 在树莓派上。
接线
我们将有几种连接 LCD 屏幕的选项:简单的 4 位连接和一个电位计来处理对比度和亮度,以及稍微复杂一点的 8 位连接,使用 2 个电位计对对比度和亮度进行高级控制。电位器也可以用1K或3K欧姆电阻代替。
每个字符和命令都作为一个字节(8 位)数据发送到 LCD。所以在 4 位模式下,字节被分成两组 4 位,通过 4 条数据线依次发送。理论上,8 位模式传输数据的速度是 4 位模式的两倍,因为整个字节是通过 8 条数据线一次性发送的。但是,LCD 驱动程序处理数据的时间相对较长,因此无论使用哪种模式,您都不会注意到 8 位和 4 位模式之间数据传输速度的真正差异。
LCD 引脚布局
数据引脚 (DB0-7 引脚 7-14)很简单。他们正在向显示器发送数据(切换高/低)。我们将只使用写入模式,不读取任何数据。
注册选择引脚 (RS 引脚 4)有两种用途。当拉低时,它可以向 LCD 发送命令(例如移动到的位置或清除屏幕)。这称为写入指令或命令寄存器或向屏幕发送数据。
读/写pin (R/W 引脚 5)将被拉低(只写),因为我们只在这个 protip 中写入 LCD。
启用销 (E pin 6) 将被切换以将数据写入寄存器。
简单的 LCD 连接
- LCD 的引脚 #1 接地(黑线)
- LCD 的第 2 引脚电压为 +5V(红线)
- 引脚 #3 (Vo) 连接到电位器的中间(橙色线)
- 引脚 #4 (RS) 连接到 Cobbler #37(黄线)
- 引脚 #5 (RW) 接地(黑线)
- 引脚 #6 (EN) 连接到 Cobbler #35(橙色线)
- 跳过 LCD 引脚 #7、#8、#9 和 #10
- 引脚 #11 (D4) 连接到鞋匠 #33(白线)
- 引脚 #12 (D5) 连接到 Cobbler #31(灰线)
- 引脚 #13 (D6) 连接到 Cobber #29(紫线)
- 引脚 #14 (D7) 连接到 Cobber #23(蓝线)
- 引脚 #15(LED +)变为 +5V(红线)
- 引脚 #16(LED -)接地(黑线)
简单的 LCD 连接电路图
高级 液晶显示器连接
- LCD 的引脚 #1 接地(黑线)
- LCD 的第 2 引脚电压为 +5V(红线)
- 引脚 #3 (Vo) 连接到电位器的中间(橙色线)
- 引脚 #4 (RS) 连接到 Cobbler #37(黄线)
- 引脚 #5 (RW) 接地(黑线)
- 引脚 #6 (EN) 连接到 Cobbler #35(橙色线)
- 引脚 #7 (D0) 连接到鞋匠 #40(蓝线)
- 引脚 #8 (D1) 连接到鞋匠 #38(蓝线)
- 引脚 #9 (D2) 连接到鞋匠 #36(蓝线)
- 引脚 #10 (D3) 连接到鞋匠 #32(蓝线)
- 引脚 #11 (D4) 连接到鞋匠 #33(白线)
- 引脚 #12 (D5) 连接到 Cobbler #31(灰线)
- 引脚 #13 (D6) 连接到 Cobber #29(紫线)
- 引脚 #14 (D7) 连接到 Cobber #23(蓝线)
- 引脚 #15(LED +)变为 +5V(红线)
- 引脚 #16(LED -)接地(黑线)
高级 LCD 连接电路图
有趣:
现在我们有两个电位器:左边一个负责对比度,右边一个负责亮度。您可能注意到我们从对比度电位器上移除了 5V 线(红色线),因为不需要额外的电压处理,因为我们有第二个电位器负责亮度。
DHT11 传感器连接
DHT11 传感器可以有 3 或 4 针选项,但是没关系,因为它在任何情况下都只使用 3 针读取数据,如果您有 4 针传感器,则只需连接 Vcc、信号/ 数据和接地引脚并忽略第 4 个。在上面的原理图中,您可以看到 4 针传感器连接。
DHT11 传感器:3 和 4 针选项
重要提示:
DHT11 传感器需要 3.3V 至 5V。首先,让我们将 DHT11 传感器连接到 3.3V Raspberry Pi 引脚 1,如果它工作,这个电压就足够了,如果读数很奇怪或者根本没有读数,请尝试将其连接到 5V Raspberry Pi 引脚 2。这个 protip 使用 3.3V。
到目前为止,在我们连接 Vcc 和 Ground 引脚后,我们需要将传感器的信号连接器连接到 Raspberry Pi 物理引脚 12 (GPIO 18)。
所需的库
在我们进行确切的编码之前,我们需要仔细检查我们是否有显示和传感器所需的库,如果缺少则安装它们。
只是仔细检查(有点偏执:))我们拥有所有必要的 Python 东西:
sudo apt-get install build-essential python-dev
RPLCD Python 库
可以从 Python 包索引或 PIP 安装 RPLCD 库。它可能已经安装在您的 Raspbian 上,但如果没有,请运行以下命令进行安装:
sudo apt-get install python-pip
安装PIP后,输入以下命令安装RPLCD库:
须藤 pip 安装 RPLCD
Adafruit DHT11 Python 库
我们正在使用 Adafruit DHT11 Python 库。您可以使用 Git 下载该库,因此如果您的 Raspberry Pi 上没有安装 Git,请运行以下命令:
sudo apt-get install git
你也可以试试:
sudo apt-get install git-core
重要提示:
如果您在安装替代 Git 时遇到错误,请运行:
sudo apt-get 更新
sudo apt-get install git-core
现在,运行命令从 Git 下载库:
git 克隆 https://github.com/adafruit/Adafruit_Python_DHT.git
转到新目录:
cd Adafruit_Python_DHT
并安装库:
须藤 python setup.py 安装
让我们开始编写脚本。
Python 脚本
我们将使用 Python 来编程我们的显示器和传感器。我使用 Visual Studio 作为 IDE,但您可以使用任何其他您喜欢使用的工具。
首先,我们需要通过 SSH(例如 PuTTY)连接到 Pi。然后,我们将使用一个名为 temperature.py 的脚本。
要创建脚本,我们可以使用 nano 编辑器。连接到您的 Pi 后,运行以下命令以创建一个名为 temperature.py 的文件:
须藤纳米温度.py
然后,将以下代码(8 位选项)粘贴到该文件中,按 CTRL-X 退出,出现提示时按 Y 保存。
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import Adafruit_DHT
from RPLCD import CharLCD
#我们调用构建的RPi.GPIO -in 函数 GPIO.cleanup() 清理我们使用过的所有端口
GPIO.cleanup()
# 现在设置 LCD 显示引脚(8 位模式)
lcd =CharLCD (numbering_mode=GPIO.BOARD, cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[40, 38, 36, 32, 33, 31, 29, 23])
#获取senosr读数并在循环中渲染它们
while True:
# 获取传感器的读数
# 重要提示:11 是传感器类型 (DHT11),18 是 GPIO 编号(或物理引脚 12)
湿度,温度 =Adafruit_DHT.read_retry(11, 18)
print('Temp:{0:0.1f} C Humidity:{1:0.1f} %'.format(温度,湿度))
# 清除并设置 LCD 显示的初始光标位置
lcd.clear()
lcd.cursor_pos =(0, 0)
# 渲染温度读数
lcd.write_string(“ Temp:%d C” % temperature)
# 移动光标到第二行
lcd.cursor_pos =(1, 0)
#渲染湿度读数
lcd.write_string(“Humidity:%d %%” %湿度)
#暂停执行5秒
time.sleep(5)
以上示例使用 8 位连接选项和 Raspberry Pi 用于 LCD 显示的物理引脚编号,而不是 BCM 或 GPIO 编号。我假设您已按照上图中的方式连接 LCD,但您可以随时更改引脚以备不时之需。代码部分附有简单的4位连接代码。
阅读更多细节:展览:原始展示
制造工艺