0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何仅使用Raspberry Pi的串行线将其连接到Internet

454398 来源:wv 2019-10-28 11:07 次阅读

步骤1:确定USB UART转换器RX/TX线

您需要确保转换器上的哪些引脚是RX/TX串行线。不要依赖转换器PCB上的标记,因为它们可能不正确!如果您知道哪条线是TX和RX,则可以跳过此步骤。

如果不确定哪条线是TX,可以在可疑引脚上串联一个电阻LED,LED应当闪烁

假定/dev/ttyUSB0是转换器,

# This will make a LED attached to the TX blink once

stty -F /dev/ttyUSB0 9600 raw

dd if=/dev/zero of=/dev/ttyUSB0 bs=1000 count=1

一旦确定了TX引脚,就可以将其连接到转换器上的可疑RX引脚构成回波环路。您应该能够收到写入的内容。

screen /dev/ttyUSB0 115200

在屏幕会话中键入字符时,连接TX-RX时屏幕应回显它们。

步骤2:将计算机连接到Raspberry Pi

将USB 《-》 UART转换器连接到Raspberry Pi 。您需要连接TX,RX和GND线。 TX代表“发送器”,RX代表“接收器”。连接两个UART设备时,必须以TX和RX交叉的方式连接它们。这意味着从一个设备上的TX引脚输出到另一设备上的RX输入引脚,反之亦然。有时称为空调制解调器。

UART Convertor Raspberry PI GPIO

GND ---------------------- GND

TX output pin ------------ RXD pin 10 on GPIO header

RX input pin ------------- TXD pin 8 on GPIO header

请确保您的转换器使用3.3v逻辑电平输出! Raspberry在其GPIO上使用3.3v逻辑,较高的电压可能会损坏GPIO!如果您的转换器使用5v逻辑电平,则必须使用某些逻辑电平转换器。

步骤3:使用控制台测试连接

默认情况下,Raspbian使用内置的UART进行Linux控制台访问和内核调试。现在,我们将利用此优势来测试接线。稍后我们将禁用此功能,并仅使用UART进行联网。

可以通过/dev/ttyAMA0专用设备访问Raspi的UART。

首先,确保串行控制台位于启用。在cmdline.txt中,您应该看到类似以下内容的

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

最重要的部分是 console = ttyAMA0,115200 ,这将告诉内核将UART假定为系统控制台。

手动编辑文件或使用raspi-config(高级选项)在串行端口上启用控制台。

第二,在Linux计算机上,键入:

screen /dev/ttyUSB0 115200

这将连接到Raspberry Pi控制台。您应该看到一个登录提示,并且能够登录。如果看不到任何内容,请尝试按Enter。此外,在Raspi启动时,您还应该看到内核消息。

如果没有显示器和键盘,则可以使用串行控制台连接到Raspberry Pi。只要确保已在cmdline.txt

中启用了控制台,就可以检查串行连接,然后可以继续下一步。

步骤4:安装必要的工具

您将需要使用“ pppd”工具来管理连接。它是‘ppp’软件包的一部分。

将ppp软件包安装到Linux主机和Raspberry Pi:

sudo apt-get install ppp

如果没有的话您可以从Raspberry Pi上访问Internet(一个鸡蛋问题),您可以手动下载.deb程序包,将它们放在sd卡或闪存驱动器上,然后手动安装它们。只需确保下载并安装所有依赖项即可。

sudo dpkg -i xyz.deb

步骤5:接管Raspberry Pi的UART

现在,当串行链接可靠工作时。我们可以禁用控制台功能,仅将UART用于网络

首先,从cmdline.txt中删除所有ttyAMA0引用,如果不知道如何,请参考上一步:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

在下次重新启动时,您将可以根据需要使用ttyAMA0。

在我们的情况下,我们将为某些合理的行为配置UART并启动PPP Daemon建立一个

这些命令基本上可以满足我们的需要:

stty -F /dev/ttyAMA0 raw

pppd /dev/ttyAMA0 115200 10.0.5.2:10.0.5.1 noauth local debug dump defaultroute nocrtscts

IP地址10.0.5.2和10.0.5.1表示本地:正在使用的远程地址用于连接。您可以选择任何IP地址,只需确保网络范围不同于您正在使用的IP地址即可。在我们的例子中,10.0.5.2将是我们Pi的地址,10.0.5.1将是我们Linux主机的地址。

由于除了串行端口之外,我无权访问RaspberryPi ,我稍微调整了pppd参数并将它们添加到/etc/rc.local脚本中,以便它们在每次Raspberry启动时都执行,并且pppd始终保持运行,因此我可以随意连接和断开Raspberry。

我的rc.local:

echo “Starting pppd.。.”

stty -F /dev/ttyAMA0 raw

stty -F /dev/ttyAMA0 -a

pppd /dev/ttyAMA0 115200 10.0.5.2:10.0.5.1 noauth local debug dump defaultroute nocrtscts persist maxfail 0 holdoff 1

“ persist maxfail 0 holdoff 1”参数将使pppd尝试永久连接。

当您插入a监视到您的Raspberry,您应该在屏幕上看到启动脚本的输出。

步骤6:在主机上运行Pppd

启动ppp守护程序在您的计算机上:

sudo stty -F /dev/ttyUSB0 raw

sudo pppd /dev/ttyUSB0 115200 10.0.5.1:10.0.5.2 proxyarp local noauth debug nodetach dump nocrtscts passive persist maxfail 0 holdoff 1

在两个设备上都运行pppd时,它们应该握手并建立链接。输出应如下所示:

using channel 10

Using interface ppp0

Connect: ppp0 《--》 /dev/ttyUSB0

sent [LCP ConfReq id=0x5 ]

rcvd [LCP ConfReq id=0x2 ]

sent [LCP ConfAck id=0x2 ]

rcvd [LCP ConfAck id=0x5 ]

sent [LCP EchoReq id=0x0 magic=0xb4bad9a9]

sent [CCP ConfReq id=0x4 ]

sent [IPCP ConfReq id=0x4 ]

rcvd [LCP EchoReq id=0x0 magic=0x263f80e1]

sent [LCP EchoRep id=0x0 magic=0xb4bad9a9]

rcvd [LCP EchoRep id=0x0 magic=0x263f80e1]

rcvd [CCP ConfReq id=0x2 ]

sent [CCP ConfAck id=0x2 ]

rcvd [IPCP ConfReq id=0x2 ]

sent [IPCP ConfAck id=0x2 ]

rcvd [CCP ConfAck id=0x4 ]

Deflate (15) compression enabled

rcvd [IPCP ConfAck id=0x4 ]

Cannot determine ethernet address for proxy ARP

local IP address 10.0.5.1

remote IP address 10.0.5.2

Script /etc/ppp/ip-up started (pid 3826)

Script /etc/ppp/ip-up finished (pid 3826), status = 0x0

现在,从Linux主机上,您应该能够ping或ssh RaspberryPi

ping 10.0.5.2

如果ping工作正常,您可以继续执行下一步。

步骤7:设置路由和NAT

一旦我们在计算机和计算机之间建立了IP链接,在Raspberry Pi中,我们可以配置计算机以将流量从Raspi路由到Internet。

首先,启用流量转发:

sudo sysctl -w net.ipv4.ip_forward=1

下一步,启用NAT假装将Raspi的内部地址转换为计算机的地址。假设“ eth0”是计算机上用于连接外部世界的接口

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

现在,您应该可以通过SSH进入Raspberry并ping到一些Internet服务器: ! - )

完成

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 串行
    +关注

    关注

    0

    文章

    237

    浏览量

    33914
  • Internet
    +关注

    关注

    0

    文章

    400

    浏览量

    36878
  • 树莓派
    +关注

    关注

    117

    文章

    1710

    浏览量

    105791
收藏 人收藏

    评论

    相关推荐

    Raspberry Pi树莓派新手指南

    电子发烧友网站提供《Raspberry Pi树莓派新手指南.pdf》资料免费下载
    发表于 12-23 17:05 0次下载

    新品来袭!Raspberry Pi Compute Module 5

    今天,我们很高兴地宣布推出备受期待的Raspberry Pi计算模块5,这是我们旗舰Raspberry Pi 5单板计算机的模块化版本,售价仅为45美元。 意外之旅 我们在2008年成
    的头像 发表于 11-27 18:21 531次阅读
    新品来袭!<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Compute Module 5

    Raspberry Pi Pico 2 W 发布

    树莓派官方今日宣布推出支持无线连接的新款 MCU(微控制器)主板 Raspberry Pi Pico 2 W,售价 7 美元, 较此前的有线版本高出 2 美元 。     Raspberry
    的头像 发表于 11-25 18:25 552次阅读
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico 2 W 发布

    Raspberry Pi Pico 2

    Raspberry Pi Pico 2显著提升了性能,同时保持了与之前的Raspberry Pi Pico系列器件的兼容性。 Pico 2具有更高的内核时钟速度、双倍内存、更强大的Ar
    的头像 发表于 11-25 15:10 646次阅读
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico 2

    Banana Pi M5 与 Raspberry Pi 4 – 基准测试

    Banana Pi M5 基准测试已成为我的网站上最受欢迎的作品之一,而且似乎人们真正想看到的是它与其 Raspberry 口味的表亲之间的直接比较,所以这里就是 Banana Pi M5 与
    的头像 发表于 10-28 10:28 417次阅读
    Banana <b class='flag-5'>Pi</b> M5 与 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 4 – 基准测试

    e络盟开售Raspberry Pi新款产品

    安富利旗下全球电子与工业系统设计、维护和维修产品及技术分销商 e络盟 现为客户供应小巧、快速、多功能的 Raspberry Pi Pico 2。
    的头像 发表于 10-12 16:57 693次阅读

    e络盟开售Raspberry Pi AI 摄像头

    安富利旗下全球电子元器件产品与解决方案分销商e络盟开售全新 Raspberry Pi AI摄像头,这是 Raspberry Pi 的最新产品,扩大了 e络盟的人工智能设备范围。
    的头像 发表于 10-10 10:09 271次阅读
    e络盟开售<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> AI 摄像头

    使用串行连接通过 Raspberry Pi 增强您的 XRP 项目

    指南更为高级。通过本指南,您将能够将 Raspberry Pi 连接到您的 XRP,从而使您的 XRP 项目更上一层楼。 传输数据: 在 Raspberry
    的头像 发表于 10-02 15:28 279次阅读
    使用<b class='flag-5'>串行</b><b class='flag-5'>连接</b>通过 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 增强您的 XRP 项目

    e络盟发售功能强大的入门级 Raspberry Pi 5 2GB

    安富利旗下全球电子元器件产品与解决方案分销商e络盟日前开售极具性价比的全新 Raspberry Pi 5 2GB。
    的头像 发表于 09-02 10:39 353次阅读
    e络盟发售功能强大的入门级 <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5 2GB

    使用ESP8266将arduino连接到thinkspeak云,无法将其连接到任何网页,为什么?

    我正在尝试使用 ESP8266 将 arduino 连接到 thinkspeak 云。所以我能够将 esp 模块连接到我的家庭 wifi,但我无法将其连接到任何网页。 如果我尝试与谷歌
    发表于 07-16 07:43

    通过APP将esp8266设备连接到AP遇到的疑问求解

    我正在尝试通过乐鑫 APP(适用于 Android)将我的 esp8266 设备连接到我的 AP。但是,只有当AP有互联网连接时,APP才能正常工作。有人能告诉我为什么吗?互联网连接是强制性的吗? 如果 AP 没有
    发表于 07-15 07:48

    名单公布!树莓派5(Raspberry Pi 5)开发板免费试用!!!

    缓存,可扩展应用范围。它还支持双频Wi-Fi和蓝牙5.0连接。RP1 I/O控制器芯片由 Raspberry Pi自主设计,大大提升了其接口性能。 Raspberry
    发表于 06-27 15:40

    如何将CYKIT-028 TFT模块与Raspberry Pi和ESP32微控制器结合使用?

    我目前正在探索如何将 CYKIT-028 TFT 模块与 Raspberry Pi 和 ESP32 微控制器结合使用。 不过,在选择集成开发环境(IDE)和使用 PSOC Creator 的必要性
    发表于 05-21 07:36

    5分钟内将Raspberry Pi Pico变成简单的示波器+波形发生器

    5 分钟内将 Raspberry Pi Pico(或任何 RP2040 板)变成简单的示波器+波形发生器。
    的头像 发表于 03-04 09:14 2335次阅读
    5分钟内将<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico变成简单的示波器+波形发生器

    用CYBT343026连接到串行端口时没有传输任何数据是为什么?

    1) 客户 CAN 使用 EZ-BLE202007 模块。 当前,使用 CYBT343026 连接到串行端口时没有传输任何数据。 你需要先对程序进行 编程 吗? 2) CYBT 是否支持不支持文本
    发表于 01-29 07:01