加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 01、樹(shù)莓派系統(tǒng)燒錄
    • 02、安裝 EMQX 社區(qū)版
    • 03、配置和驗(yàn)證?EMQX?
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

10分鐘教你在樹(shù)莓派 4B 上搭建企業(yè)級(jí) IoT 物聯(lián)網(wǎng)平臺(tái)

2023/09/13
5577
閱讀需 26 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

準(zhǔn)備工作

本系列物聯(lián)網(wǎng)開(kāi)發(fā)入門實(shí)戰(zhàn)教程中硬件選取樂(lè)鑫 ESP8266 開(kāi)發(fā)板,服務(wù)器采用樹(shù)莓派 3B+/4B 主板,云端物聯(lián)網(wǎng)平臺(tái)基于開(kāi)源EMQX社區(qū)版搭建,帶你完整體驗(yàn)物聯(lián)網(wǎng)場(chǎng)景端到端全棧開(kāi)發(fā)過(guò)程。

樂(lè)鑫?ESP8266:

樹(shù)莓派 4B:

01、樹(shù)莓派系統(tǒng)燒錄

樹(shù)莓派(Raspberry Pi)是一款基于ARM的微型電腦主板,以SD/MicroSD卡為內(nèi)存硬盤,卡片主板周圍有1/2/4個(gè)USB接口和一個(gè)10/100 以太網(wǎng)接口,可連接鍵盤、鼠標(biāo)和網(wǎng)線,同時(shí)擁有視頻模擬信號(hào)的電視輸出接口和HDMI高清視頻輸出接口,以上部件全部整合在一張僅比信用卡稍大的主板上,具備所有PC的基本功能只需接通電視機(jī)和鍵盤,就能執(zhí)行如電子表格、文字處理、玩游戲、播放高清視頻等諸多功能。

安裝燒錄工具

首先,打開(kāi)樹(shù)莓派官網(wǎng),根據(jù)你的電腦系統(tǒng)下載對(duì)應(yīng)燒錄工具 https://www.raspberrypi.com/software/

安裝 Raspberry Pi Imager后,打開(kāi)軟件,選擇 Raspberry Pi OS?(64-bit),并選擇存儲(chǔ)?MicroSD 卡。

點(diǎn)擊右下角的設(shè)置按鈕,進(jìn)行配置工作。

在高級(jí)設(shè)置頁(yè)面,你需要根據(jù)實(shí)際情況配置如下信息:

配置項(xiàng) 參數(shù)值
主機(jī)名 emqx.local
SSH服務(wù) 開(kāi)啟
username : emqx
密碼 :?emqx@123
配置Wi-Fi 熱點(diǎn)名?:?按實(shí)際情況配置
密碼?:?按實(shí)際情況配置

最后,點(diǎn)擊燒錄按鈕,開(kāi)始燒錄固件,直到燒錄完成。

02、安裝 EMQX 社區(qū)版

EMQX? 是一款完全開(kāi)源,高度可伸縮,高可用的分布式 MQTT 消息服務(wù)器,同時(shí)也支持 CoAP/LwM2M 協(xié)議,適用于 IoT、M2M?和移動(dòng)應(yīng)用程序。

EMQX 提供了高效可靠海量物聯(lián)網(wǎng)設(shè)備連接,可處理千萬(wàn)級(jí)別的并發(fā),實(shí)時(shí)處理消息和事件流數(shù)據(jù),幫助您快速構(gòu)建關(guān)鍵業(yè)務(wù)的物聯(lián)網(wǎng)平臺(tái)與應(yīng)用。

基于 APL 2.0 開(kāi)放源碼協(xié)議

完整 MQTT 3.1.0、3.1.1 和 5.0 規(guī)范,支持 MQTT-SN

Masterless 高可用集群架構(gòu)

高并發(fā)、低時(shí)延、高性能

可擴(kuò)展的網(wǎng)關(guān)和插件體系

因?yàn)闃?shù)莓派系統(tǒng)是基于 Debian?裁剪版,所以我們下載支持 Debian?操作系統(tǒng)的開(kāi)源社區(qū)版。操作步驟如下:

2.1?SSH登陸樹(shù)莓派:

ssh emqx@emqx.local

2.2 配置 EMQX Apt 源:

curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash

2.3?安裝 EMQX:

sudo apt-get install emqx

2.4?啟動(dòng) EMQX:

sudo systemctl start emqx

控制臺(tái)完整操作過(guò)程如下:

Last login: Sat Aug 19 21:01:31 on consoleiot$ ssh emqx@emqx.localThe authenticity of host 'emqx.local (***)' can't be established.ECDSA key fingerprint is SHA256:***/ouBrME10.Are you sure you want to continue connecting (yes/no)? yesWarning:?Permanently?added?'emqx.local,***%en0'?(ECDSA)?to?the?list?of?known?hosts.emqx@emqx.local's password: Linux emqx 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64
The programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.Last login: Wed May  3 04:23:52 2023
emqx@emqx:~ $ curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bashDetected operating system as debian/bullseye.Checking for curl...Detected curl...Checking for gpg...Detected gpg...Running apt-get update... done.Installing debian-archive-keyring which is needed for installing apt-transport-https on many Debian systems.Installing apt-transport-https... done.Installing /etc/apt/sources.list.d/emqx_emqx.list...done.Importing gpg key... done.Running apt-get update... done.
The repository is setup! You can now install packages.
emqx@emqx:~/?$?sudo?apt-get?install?emqxReading package lists... DoneBuilding dependency tree... DoneReading state information... DoneThe following package was automatically installed and is no longer required:  libfuse2Use 'sudo apt autoremove' to remove it.The following NEW packages will be installed:  emqx0 upgraded, 1 newly installed, 0 to remove and 96 not upgraded.Need to get 39.9 MB of archives.After this operation, 93.8 MB of additional disk space will be used.Get:1 https://packages.emqx.com/emqx/emqx/debian bullseye/main arm64 emqx arm64 5.1.6 [39.9 MB]Fetched 39.9 MB in 16s (2,523 kB/s)                                                          Selecting previously unselected package emqx.(Reading database ... 96881 files and directories currently installed.)Preparing to unpack .../archives/emqx_5.1.6_arm64.deb ...Unpacking emqx (5.1.6) ...Setting up emqx (5.1.6) ...?emqx    State: degraded     Jobs: 0 queued   Failed: 1 units    Since: Thu 1970-01-01 01:00:04 BST; 53 years 8 months ago   CGroup: /           ├─user.slice            │ └─user-1000.slice            │   ├─user@1000.service …           │   │ ├─app.slice            │   │ │ ├─gvfs-goa-volume-monitor.service            │   │ │ │ └─1005 /usr/libexec/gvfs-goa-volume-monitor           │   │ │ ├─pulseaudio.service            │   │ │ │ └─687 /usr/bin/pulseaudio --daemonize=no --log-target=journal           │   │ │ ├─gvfs-daemon.service            │   │ │ │ ├─ 844 /usr/libexec/gvfsd           │   │ │ │ ├─ 849 /usr/libexec/gvfsd-fuse /run/user/1000/gvfs -f           │   │ │ │ └─1021 /usr/libexec/gvfsd-trash --spawner :1.7 /org/gtk/gvfs/exec_spaw/0           │   │ │ ├─gvfs-udisks2-volume-monitor.service            │   │ │ │ └─988 /usr/libexec/gvfs-udisks2-volume-monitor           │   │ │ ├─gvfs-gphoto2-volume-monitor.service            │   │ │ │ └─1009 /usr/libexec/gvfs-gphoto2-volume-monitor           │   │ │ ├─pipewire.service            │   │ │ │ ├─686 /usr/bin/pipewire           │   │ │ │ └─730 /usr/bin/pipewire-media-session           │   │ │ ├─dbus.service            │   │ │ │ └─715 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopid…           │   │ │ ├─gvfs-mtp-volume-monitor.service            │   │ │ │ └─995 /usr/libexec/gvfs-mtp-volume-monitor           │   │ │ └─gvfs-afc-volume-monitor.service            │   │ │   └─1013 /usr/libexec/gvfs-afc-volume-monitor           │   │ └─init.scope            │   │   ├─625 /lib/systemd/systemd --user           │   │   └─654 (sd-pam)           │   ├─session-3.scope            │   │ ├─563 /bin/login -f           │   │ └─708 -bash           │   ├─session-4.scope            │   │ ├─ 815 sshd: emqx [priv]           │   │ ├─1136 sshd: emqx@pts/0           │   │ ├─1137 -bash           │   │ ├─2478 sudo apt-get install emqx           │   │ ├─2479 apt-get install emqx           │   │ ├─2520 /usr/bin/dpkg --status-fd 32 --configure --pending           │   │ ├─2521 /bin/sh /var/lib/dpkg/info/emqx.postinst configure           │   │ └─2535 systemctl status --no-pager           │   └─session-1.scope            │     ├─615 lightdm --session-child 13 16           │     ├─703 /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi           │     ├─789 /usr/bin/ssh-agent x-session-manager           │     ├─857 openbox --config-file /home/emqx/.config/openbox/lxde-pi-rc.xml           │     ├─861 lxpolkit           │     ├─863 lxpanel --profile LXDE-pi           │     ├─865 pcmanfm --desktop --profile LXDE-pi           │     ├─877 /usr/bin/ssh-agent -s           │     ├─881 /usr/bin/python3 /usr/share/system-config-printer/applet.py           │     ├─885 xcompmgr -aR           │     └─997 /usr/lib/menu-cache/menu-cached /run/user/1000/menu-cached-:0           ├─init.scope            │ └─1 /sbin/init splash           └─system.slice              ├─packagekit.service              │ └─1123 /usr/libexec/packagekitd             ├─systemd-udevd.service              │ └─174 /lib/systemd/systemd-udevd             ├─triggerhappy.service              │ └─445 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd…             ├─cron.service              │ └─352 /usr/sbin/cron -f             ├─polkit.service              │ └─371 /usr/libexec/polkitd --no-debug             ├─rtkit-daemon.service              │ └─700 /usr/libexec/rtkit-daemon             ├─bluetooth.service              │ └─788 /usr/libexec/bluetooth/bluetoothd             ├─wpa_supplicant.service              │ └─449 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant             ├─lightdm.service              │ ├─540 /usr/sbin/lightdm             │ └─562 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolist…             ├─ModemManager.service              │ └─493 /usr/sbin/ModemManager             ├─systemd-journald.service              │ └─139 /lib/systemd/systemd-journald             ├─ssh.service              │ └─590 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups             ├─hciuart.service              │ └─746 /usr/bin/hciattach /dev/serial1 bcm43xx 3000000 flow - b8:27:eb:b8:c8:d0             ├─rsyslog.service              │ └─417 /usr/sbin/rsyslogd -n -iNONE             ├─dhcpcd.service              │ ├─436 /usr/sbin/dhcpcd -b -q             │ └─553 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0             ├─rng-tools-debian.service              │ └─513 /usr/sbin/rngd -r /dev/hwrng             ├─cups-browsed.service              │ └─592 /usr/sbin/cups-browsed             ├─cups.service              │ └─523 /usr/sbin/cupsd -l             ├─udisks2.service              │ └─447 /usr/libexec/udisks2/udisksd             ├─dbus.service              │ └─354 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --…             ├─systemd-timesyncd.service              │ └─282 /lib/systemd/systemd-timesyncd             ├─avahi-daemon.service              │ ├─345 avahi-daemon: running [emqx.local]             │ └─363 avahi-daemon: chroot helper             └─systemd-logind.service                └─442 /lib/systemd/systemd-logindCreated symlink /etc/systemd/system/multi-user.target.wants/emqx.service → /lib/systemd/system/emqx.service.
emqx@emqx:~/ $ sudo systemctl start emqx

啟動(dòng)EMQX 服務(wù)后,你可以通過(guò)瀏覽器訪問(wèn) http://emqx.local:18083/? 來(lái)登錄 EMQX Dashboard 管理控制臺(tái),進(jìn)行設(shè)備連接與相關(guān)指標(biāo)監(jiān)控管理,默認(rèn)用戶名及密碼:admin /public 。

EMQX 系統(tǒng)登錄頁(yè)面

EMQX 管理控制臺(tái)概覽

03、配置和驗(yàn)證?EMQX?

設(shè)備通過(guò) MQTT 協(xié)議接入 EMQX 平臺(tái)需要有合法身份認(rèn)證信息,因此你需要在控制臺(tái)配置客戶端認(rèn)證信息。

首先,接入客戶端認(rèn)證頁(yè)面,選擇Password Based認(rèn)證方式,用內(nèi)置數(shù)據(jù)庫(kù) Mnesia 作為數(shù)據(jù)源,配置參數(shù)采用默認(rèn)方式。

其次,你需要在內(nèi)置數(shù)據(jù)中添加一個(gè)用戶身份(username/password)。在用戶管理里可以查看到已添加的用戶。

MQTTX 工具

MQTTX 是由 EMQ 開(kāi)發(fā)的一款開(kāi)源跨平臺(tái) MQTT 5.0 桌面客戶端,它兼容 macOS,Linux 以及 Windows 系統(tǒng)。

MQTTX 的用戶界面 UI 采用聊天式設(shè)計(jì),使得操作邏輯更加簡(jiǎn)明直觀。它支持用戶快速創(chuàng)建和保存多個(gè) MQTT 連接,便于測(cè)試 MQTT/MQTTS 連接,以及 MQTT 消息的訂閱和發(fā)布。

采用聊天界面設(shè)計(jì),使得操作更加簡(jiǎn)單明了

跨平臺(tái)兼容,支持在 Windows,macOS,Linux 系統(tǒng)上運(yùn)行

100% 兼容 MQTT v5.0,v3.1.1 和 v3.1 協(xié)議

訂閱的 MQTT 主題支持自定義顏色標(biāo)簽

支持單向和雙向 SSL 認(rèn)證,同時(shí)支持 CA 和自簽名證書(shū)

支持通過(guò) WebSocket 連接 MQTT 服務(wù)器

支持 Hex, Base64, JSON, Plaintext 等 Payload 格式轉(zhuǎn)換

自定義腳本支持模擬 MQTT 發(fā)布/訂閱測(cè)試

提供完整的日志記錄功能

多語(yǔ)言支持:簡(jiǎn)體中文、英語(yǔ)、日語(yǔ)、土耳其語(yǔ)及匈牙利語(yǔ)

自由切換 Light、Dark、Night 三種主題模式

打開(kāi) MQTTX 客戶端進(jìn)入創(chuàng)建頁(yè)面,首先,你需要填寫(xiě)客戶端的相關(guān)信息,包括clientId,MQTT服務(wù)器地址,用戶名和密碼。然后,點(diǎn)擊右上角連接按鈕建立MQTT連接。

你可以給指定的Topic發(fā)送一條消息。

你也可以訂閱指定的Topic。

回到EMQX 控制臺(tái),你會(huì)看到當(dāng)前連接的客戶端Id、用戶名、狀態(tài)、以及 MQTT CONNECT 報(bào)文配置參數(shù)。

進(jìn)入設(shè)備詳情頁(yè)面,你可以查看消息發(fā)送和接收情況,當(dāng)前訂閱消息主題列表。

至此,你已經(jīng)成功的在樹(shù)莓派上部署了 EMQX 服務(wù),并通過(guò) MQTTX 工具模擬了物聯(lián)網(wǎng)設(shè)備和云端 MQTT 服務(wù)器通信的過(guò)程。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
TJA1051T/E,118 1 NXP Semiconductors TJA1051 - High-speed CAN transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$0.3 查看
BT121-A-V2 1 Silicon Laboratories Inc Telecom Circuit, 1-Func, MODULE-33

ECAD模型

下載ECAD模型
$27.77 查看
KSZ8995MAI 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP128

ECAD模型

下載ECAD模型
$12.3 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜