我们都已经熟悉了无线公告板,因为我们已经使用GSM和Arduino构建了无线公告板。但是今天,我们向前迈了一步,这次不是使用GSM作为无线媒体,而是使用Internet将来自Web浏览器的消息无线发送到与Raspberry Pi连接的LCD。由于消息是通过Web浏览器发送的,因此可以使用计算机,智能手机或平板电脑发送,因此它将在我们的IoT项目集中添加一个项目。
在此Web受控公告板上,我们创建了一个本地Web服务器进行演示,它可以是Internet上的全局服务器。在Raspberry Pi上,我们使用16x2 LCD来显示消息,并使用Flask通过网络接收消息。只要Raspberry从Web浏览器接收到任何无线消息,它就会显示在LCD上。我们将在本文中详细讨论这些事情。
所需组件:
- Raspberry Pi 3(任何型号)
- Wi-Fi USB适配器(如果不使用Raspberry Pi 3)
- 16x2 LCD
- 面包板
- Raspberry Pi的电源线
- 连接线
- 10K锅
工作说明和创建网页:
在该项目中,主要组件是Raspberry Pi,它是该项目的核心,用于控制与该项目相关的过程。像:驱动LCD,从服务器接收“通知消息”等。
在这里,我们创建了一个Web服务器,该服务器提供了一种在Web浏览器中使用Flask将“通知消息”发送到Raspberry Pi的方法。Flask是Python的微框架。该工具基于Unicode,具有内置的开发服务器和调试器,集成的单元测试支持,对安全cookie的支持及其易于使用,这些使它对爱好者有用 。
我们创建了一个带有TextBox和Submit按钮的网页,我们可以在TextBox中输入“ Notice Message”,然后通过单击Submit按钮将其提交到服务器。该Web应用程序是使用HTML语言开发的。该网页的代码如下,非常易于理解。
Web控制公告板(电路摘要)
通知已成功提交:{{value}}
{% 万一 %}用户需要在文本编辑器(记事本)中粘贴以上给出的HTML代码,并以.HTML扩展名保存文件。然后,将此HTML文件放在该Web受控布告栏的Python代码文件(最后给出)所在的文件夹中。现在您可以在Raspberry Pi中运行Python代码,在Web浏览器中打开 IP_address_of_your_Pi:8080 (例如192.168.1.14:8080)并输入消息,然后单击提交,提交消息后,您将立即收到消息LCD连接到Raspberry Pi。最后检查演示视频中的整个过程。
该网页是使用HTML语言创建的,该HTML语言包含一个 表单 ,该 表单 具有 文本框 和 提交 按钮,并带有标题(h1标签) Web控制公告板 。该 表格 有“变化”的 行动 将在代码中使用进行 岗位 方法,当我们点击提交按钮。该 滑块 是用块 标记 “通知消息”。
之后,我们可以添加一条可选行以显示通过服务器发送到Raspberry Pi的文本。
{%,如果值%}
通知已成功提交:{{value}}
{% 万一 %}它检查文本框中的值,如果文本框中有一些值,则它将文本打印在网页本身上,以便用户也可以看到提交的消息。这里的 “值” 是“输入文本或通知消息”,我们将在滑块框或文本框中键入。
电路说明:
该无线留言板的连接非常简单。我们只需要通过在面包板上使用一些连接器将LCD与Raspberry Pi板连接即可。用户可以使用零PCB进行连接。LCD的RS,RW和EN引脚直接连接到引脚18,GND和23。LCDD4,D5,D6,D7的数据引脚直接连接到Raspberry Pi的GPIO 24、16、20、21。用于控制LCD的亮度。
还要记住,如果您没有Raspberry Pi 3,则需要为较低版本的Raspberry Pi使用USB Wi-Fi适配器,因为它们没有像Raspberry Pi 3这样的内置Wi-Fi。
编程说明和烧瓶:
我们在 这里使用 Python语言编写程序。在编码之前,用户需要配置Raspberry Pi。您可以查看我们以前的教程,以了解《 Raspberry Pi入门》和《在Pi中安装和配置Raspbian Jessie OS》。
在对Raspberry Pi进行编程之前,用户需要使用给定的命令将Flask支持软件包安装到Raspberry Pi中:
$ pip安装Flask
之后,您可以在Raspberry Pi的python编辑器中运行Python程序,但是在此之前,您需要用Raspberry Pi的IP地址替换Program中的IP地址。您可以使用ifconfig命令检查RPi板的IP地址:
Ifconfig
该项目的编程部分在执行所有操作中起着非常重要的作用。首先,我们包括Flask所需的库,初始化变量和定义LCD的引脚。
从烧瓶导入烧瓶从烧瓶导入render_template烧瓶,请求以GPIO导入OS导入RPi.GPIO,时间app = Flask(__ name__)RS = 18 EN = 23 D4 = 24 D5 = 16 D6 = 20 D7 = 21………………
对于LCD,def lcd_init()函数用于以四位模式初始化LCD,def lcdcmd(ch)函数用于将命令发送到LCD,def lcddata(ch)函数用于将数据发送到LCD和def lcdstring(Str )功能用于将数据字符串发送到LCD。您可以在随后给出的代码中检查所有这些功能。
本程序的下面部分用于使用Flask将消息从Web浏览器发送到Raspberry Pi。您可以在此处了解更多有关使用Flask进行编程的信息。
@ app.route(“ /”)def index():返回render_template('web.html')@ app.route(“ / change”,Methods =)def change():if request.method =='POST' :#如果__name__ ==“ __main__”:app.debug = True app.run,则从网页上获取值data1 = request.form lcdcmd(0x01)lcdprint(data1)返回render_template('web.html',value = data1)。 ('192.168.1.14',端口= 8080,调试= True)
因此,这就是我们将消息从计算机或智能手机发送到Raspberry Pi LCD的方法,并且可以使基于Web的基于IoT的无线公告板成为可能。查看下面的完整Python代码和演示视频。