📅  最后修改于: 2023-12-03 15:17:28.094000             🧑  作者: Mango
如果你是一名程序员,你可能已经使用过 Mac Book 和 Raspberry Pi 这两个设备。现在,你想将它们结合起来,构建一个 Web 服务器,那么这篇文章就是为你准备的!
本文将讲解如何使用 TypeScript 和 Node.js 在 Mac Book 上搭建一个 Web 服务器,同时利用树莓派的 GPIO 端口控制硬件。为此,你需要以下设备:
首先,我们需要为树莓派安装一个操作系统。官方推荐的操作系统是 Raspbian,你可以在 官方网站 上下载最新版本的 Raspbian 系统。我们推荐使用 Raspbian Buster Lite 版本,因为它没有图形界面,运行起来更加轻量级。
接着,我们需要将 Raspbian 系统烧录到 SD 卡上。你可以使用 Etcher 或 Raspberry Pi Imager 工具完成烧录。完成后,将 SD 卡插入树莓派的 SD 卡槽。
在 Mac Book 上安装 Node.js 是一件非常简单的事情。你可以从 Node.js 官网 下载最新版本的 Node.js 安装包,然后按照安装向导完成安装。
在树莓派上安装 Node.js 也很简单。你可以打开终端,输入以下命令来安装:
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
这会更新软件包列表并安装 Node.js 和 npm。完成后,你可以使用以下命令来验证 Node.js 是否已经正确安装:
node -v
现在,我们已经准备好了编写 TypeScript 代码。我们将使用 Express.js 框架创建 Web 服务器,并且使用 wiring-pi 库来控制 GPIO 端口。
首先,我们需要创建一个新的目录,并在其中创建一个 package.json
文件:
{
"name": "my-web-server",
"version": "1.0.0",
"description": "My web server",
"main": "dist/server.js",
"scripts": {
"build": "tsc",
"start": "node dist/server.js"
},
"dependencies": {
"express": "^4.17.1",
"wiring-pi": "^2.68.1"
},
"devDependencies": {
"@types/express": "^4.17.9",
"typescript": "^4.1.2"
}
}
在上面的 package.json
文件中,我们定义了项目的名称、版本、描述以及依赖项。除此之外,我们还定义了两个脚本:build
和 start
。build
脚本用于编译 TypeScript 代码,start
脚本用于启动服务器。
接下来,我们需要在项目的根目录下创建一个 TypeScript 文件 server.ts
:
import * as express from 'express';
import * as gpio from 'wiring-pi';
gpio.wiringPiSetupGpio();
gpio.pinMode(18, gpio.OUTPUT);
const app = express();
app.get('/', (req, res) => {
res.send('Hello, world!');
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
在上面的代码中,我们使用 import
语句导入 express
和 wiring-pi
库。接着,我们调用 gpio.wiringPiSetupGpio()
函数初始化 GPIO 端口,然后调用 gpio.pinMode(18, gpio.OUTPUT)
函数设置 GPIO 18 口为输出模式。
在 app
对象中,我们创建一个路由处理程序,当用户访问服务器根目录时向用户发送 Hello, world!
消息。最后,我们调用 app.listen()
函数启动服务器,监听端口 3000。
现在,我们已经编写好了 TypeScript 代码,我们需要将其编译为 JavaScript 代码。你可以使用以下命令来编译代码:
npm run build
这将在 dist
目录中生成一个 server.js
文件,其中包含编译后的 JavaScript 代码。
现在,我们已经准备好了运行 Web 服务器。你可以使用以下命令来启动服务器:
npm start
这将启动服务器,并在终端中输出 Server listening on port 3000
消息。现在,你可以打开浏览器,访问 http://localhost:3000
地址,应该就能看到 Hello, world!
的消息了。
现在,我们已经成功地在 Mac Book 上创建了一个 Web 服务器。接下来,我们需要将其部署到树莓派上。
首先,我们需要将编译后的 JavaScript 代码复制到树莓派上。你可以使用以下命令将代码复制到树莓派:
scp dist/server.js pi@<ip-address>:~/my-web-server
这将把 server.js
文件复制到树莓派的 my-web-server
目录下。
接着,我们需要在树莓派上安装 Express 和 wiring-pi 库。你可以使用以下命令进行安装:
cd my-web-server
npm install
完成后,你可以使用以下命令在树莓派上启动 Web 服务器:
node server.js
现在,你可以使用树莓派的 IP 地址和端口号 3000,在其他设备上访问 Web 服务器。
本文介绍了如何在 Mac Book 上使用 TypeScript 和 Express.js 框架创建一个 Web 服务器,并且使用 wiring-pi 库控制 GPIO 端口。同时,我们也讲解了如何将 Web 服务器部署到树莓派上。希望这篇文章能帮助你构建自己的树莓派 Web 服务器。