ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

树莓派网关 系统安装到环境搭建

2022-01-29 19:03:39  阅读:265  来源: 互联网

标签:树莓 4.3 sudo 网关 MQTT mosquitto Raspberry 搭建


4.1树莓派简介

树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,旨为学生编程教育而设计,别看其外表“娇小”,内“心”却很强大,视频、音频等 能通通皆有,可谓是“麻雀虽小,五脏俱全”。自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。

树莓派(RaspberryPi)是尺寸仅有信用卡大小的一个小型电脑,您可以将树莓派连接电视、显示器、键盘鼠标等设备使用。

树莓派能替代日常桌面计算机的多种用途,包括文字处理、电子表格、媒体中心甚至是游戏。并且树莓派还可以播放高至1080p的高清视频。

本次设计使用的是树莓派4B(Raspberry Pi 4 Model B)。

树莓派(RaspberryPi)基金会发布了Raspberry Pi 4 Model B,这一代Raspberry Pi 4 Model B开发了3年的时间,内存(RAM)终于从万年不变的1GB升级为4GB,引入了USB 3.0,支持双屏4K输出,CPU和GPU的速度也更快,支持H.265 解码。具体来说,树莓派4的核心处理器(SoC)为博通BCM2711(四核1.5GHz, Cortex A72架构,树莓派3是四核A53),LPDDR4内存,由5V/3A USB-C供电或GPIO5V。

外围方面,支持双频Wi-Fi、蓝牙5.0、提供2个MicroHDMI 2.0接口(4K60FPS)、千兆网口、MIPIDSI接口、MIPICSI相机接口、立体声耳机接口、2个USB 3.0、2个USB 2.0,扩展接口依然是40针GPIO。

树莓派,英文名:“Raspberry Pi”,简写为RPi。它是一款基于ARM的微型电脑主板,SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一个10/100 以太网接口(A型没有网口),可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能。

4.2树莓派网关功能

树莓派通过串口使用zigbee协议实现与节点的连接,接收节点的温度和湿度数据,然后利用Mqtt协议将数据传送给云服务器,同时也将来自云服务器的控制信号传回给节点。所以,树莓派网关在物联网系统中实现数据传送、指令转发的功能。

4.3环境搭建

4.3.1烧录系统:

1.使用读卡器将sd卡和PC连接,再用SDFormatter格式化SD卡

(链接:https://pan.baidu.com/s/17TyVl2kWP81Yc8VfiGn0JQ 提取码:4m35 )

2.在官网下载Raspberry Pi Imager,并用Raspberry Pi Imager下载镜像并写入镜像:

镜像分享(自带python3.7):链接:https://pan.baidu.com/s/1ZLa2Gcq8rOYjmQgxrcQa3Q  提取码:um2h 
 

4.3.2无屏幕显示的WiFi配置

在SD卡的boot盘中新建一个ssh的空文件,再删除txt后缀,实现打开ssh功能;同时,在TF卡boot盘中新建一个wpa_supplicant.conf文本文件,写入wifi配置,并删除txt后缀。

wpa_supplicant.conf文件代码:

country=CN

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1



network={

   ssid="PCDN"               //WiFi名称

   psk="abcd1234"      //对应WiFi密码

   key_mgmt=WPA-PSK          //WiFi加密方式

   priority=1                //设置优先级

}



network={

   ssid="abcd"

   psk="12345678"

   key_mgmt=WPA-PSK

   priority=2

}

4.3.3 VNC的配置

在电脑和树莓派处于同一局域网的前提下,查询出树莓派IP地址。

在Xshell软件中输入树莓派的IP地址,再输入用户名(默认:pi)和密码(默认:raspberry),再使用sudo raspi-config命令进入配置界面—>选择Interface Options —> VNC —> Yes,以启用VNC服务。

xshell:链接:https://pan.baidu.com/s/1nuYCvhwPbafHOx4i2alYNg  提取码:12nn 

配置好VNC后,打开从官网下载的VNC Viewer软件,输入树莓派的IP地址,在输入登录用户名和密码,初始用户名 pi,密码为 Raspberry,确认之后即可进入树莓派的远程桌面。

4.3.4换源

PS:树莓派很多问题跟镜像源有关,使用默认源的服务器在国外,下载太慢。

在Xshell中输入lsb_release -a查询树莓派对应的Debian版本号

选择了清华源,进入清华源官网(https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/),找到对应Debian版本的修改方法。使用nano指令进行修改,ctrl+o保存,ctrl+x退出。(用#注释掉原来的即可),

sudo nano /etc/apt/sources.list

sudo nano /etc/apt/sources.list.d/raspi.list

再执行sudo apt-get update和sudo apt-get upgrade更新。

4.3.5 python3配置

系统自带python2.7和python3.7,建立软连接这个方法并不适用于,使用设置优先级。执行:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

再输入python检验:

4.3.6串口配置

1.使用sudo vi/boot/config.txt进入文件进行编辑,在文件最后增加代码:

#ENABLE UART                //对换映射关系,从只有 serial1 -> ttyAMA0

enable_uart=1                到serial0 -> ttyS0 和 serial1 ->ttyAMA0

dtoverlay=pi3-disable-bt   //(硬件串口与mini串口默认映射对换)

然后保存文件重启树莓派使之生效。

  1. 通过如下两个命令停止和禁用串口的控制台功能
sudo systemctl stop serial-getty@ttyAMA0.service

sudo systemctl disable serial-getty@ttyAMA0.service
  1. 再通过sudo vi /boot/cmdline.txt打开文件,(vi编辑器使用不同于普通编辑器 直接百度

并删除console=serial0,115200

重启树莓派 (Ps:python3.7自带serial库)

4.3.7 MQTT的配置

MQTT协议是广泛应用的物联网协议,使用测试MQTT协议需要MQTT的代理。有两种方法使用MQTT服务,一是租用现成的MQTT服务器,如阿里云,百度云,华为云等公用的云平台提供的MQTT服务,使用公用的MQTT服务器的好处是省事,但如果仅仅用于测试学习还需要注册帐号,灵活性差些,有的平台还需要付费。另一方法是自己使用开源的MQTT组件来搭建。

MQTT服务器非常多,如apache的ActiveMQ,emtqqd,HiveMQ,Emitter,Mosquitto,Moquette等等。

  1. 先下载mosquitto需要的依赖:
sudo apt-get install libssl-dev

sudo apt-get install uuid-dev

sudo apt-get install cmake

  1. 下载mosquitto并解压:
wget http://mosquitto.org/files/source/mosquitto-1.5.4.tar.gz
  1. 解压:
    tar zxfv mosquitto-1.5.4.tar.gz

  2. 进入目录cd mosquitto-1.5.4
  3. 编译:make
  4. 安装:sudo make install
  5. 启动mosquitto:mosquitto -v

标签:树莓,4.3,sudo,网关,MQTT,mosquitto,Raspberry,搭建
来源: https://blog.csdn.net/xxlkcl/article/details/122746341

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有