📜  mac book join raspberry pi webserver - TypeScript (1)

📅  最后修改于: 2023-12-03 15:17:28.094000             🧑  作者: Mango

Mac Book 加入树莓派 Web 服务器 - TypeScript

如果你是一名程序员,你可能已经使用过 Mac Book 和 Raspberry Pi 这两个设备。现在,你想将它们结合起来,构建一个 Web 服务器,那么这篇文章就是为你准备的!

本文将讲解如何使用 TypeScript 和 Node.js 在 Mac Book 上搭建一个 Web 服务器,同时利用树莓派的 GPIO 端口控制硬件。为此,你需要以下设备:

  • Mac Book
  • Raspberry Pi
  • SD 卡
  • HDMI 线
  • 鼠标、键盘、显示器
步骤 1:安装操作系统

首先,我们需要为树莓派安装一个操作系统。官方推荐的操作系统是 Raspbian,你可以在 官方网站 上下载最新版本的 Raspbian 系统。我们推荐使用 Raspbian Buster Lite 版本,因为它没有图形界面,运行起来更加轻量级。

接着,我们需要将 Raspbian 系统烧录到 SD 卡上。你可以使用 EtcherRaspberry Pi Imager 工具完成烧录。完成后,将 SD 卡插入树莓派的 SD 卡槽。

步骤 2:安装 Node.js

在 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
步骤 3:编写 TypeScript 代码

现在,我们已经准备好了编写 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 文件中,我们定义了项目的名称、版本、描述以及依赖项。除此之外,我们还定义了两个脚本:buildstartbuild 脚本用于编译 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 语句导入 expresswiring-pi 库。接着,我们调用 gpio.wiringPiSetupGpio() 函数初始化 GPIO 端口,然后调用 gpio.pinMode(18, gpio.OUTPUT) 函数设置 GPIO 18 口为输出模式。

app 对象中,我们创建一个路由处理程序,当用户访问服务器根目录时向用户发送 Hello, world! 消息。最后,我们调用 app.listen() 函数启动服务器,监听端口 3000。

步骤 4:编译 TypeScript 代码

现在,我们已经编写好了 TypeScript 代码,我们需要将其编译为 JavaScript 代码。你可以使用以下命令来编译代码:

npm run build

这将在 dist 目录中生成一个 server.js 文件,其中包含编译后的 JavaScript 代码。

步骤 5:运行 Web 服务器

现在,我们已经准备好了运行 Web 服务器。你可以使用以下命令来启动服务器:

npm start

这将启动服务器,并在终端中输出 Server listening on port 3000 消息。现在,你可以打开浏览器,访问 http://localhost:3000 地址,应该就能看到 Hello, world! 的消息了。

步骤 6:将 Web 服务器部署到树莓派

现在,我们已经成功地在 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 服务器。