无线技术

一、概览

技术 频率 速率 距离 功耗 场景
Wi-Fi 2.4/5/6 GHz 11Mbps-9.6Gbps 100m 局域网
BLE 2.4 GHz 1-2 Mbps 10-100m 极低 可穿戴、健康
LoRa 433/868/915 MHz 0.3-50 kbps 2-15 km 极低 远距离 IoT
NB-IoT 蜂窝 26 kbps 10km+ 蜂窝 IoT
Zigbee 2.4 GHz 250 kbps 10-100m 智能家居
Thread 2.4 GHz 250 kbps 30m 智能家居
Z-Wave 908/916 MHz 100 kbps 30m 智能家居
5G RedCap 蜂窝 150 Mbps 广 工业 IoT
LTE-M 蜂窝 1 Mbps 广 资产追踪

二、Wi-Fi

1. 模式

2. 工具

# 主机端:hostapd + wpa_supplicant + iw
apt install wpasupplicant hostapd iw

# 扫描
iw dev wlan0 scan | grep SSID
iwlist wlan0 scan

# 连接
wpa_passphrase "SSID" "password" > /etc/wpa_supplicant.conf
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
udhcpc -i wlan0                # busybox DHCP
dhclient wlan0                 # 一般 DHCP

3. 嵌入式库

4. AP 模式

hostapd /etc/hostapd/hostapd.conf
# 配置信道、SSID、加密

5. 设备树

&usdhc2 {
    pinctrl-0 = <&pinctrl_usdhc2>;
    #address-cells = <1>;
    #size-cells = <0>;
    non-removable;
    bus-width = <4>;
    status = "okay";

    brcmf: wifi@1 {
        reg = <1>;
        compatible = "brcm,bcm4329-fmac";
    };
};

三、BLE(蓝牙低功耗)

1. 协议栈

2. 工具

bluetoothctl
hciconfig hci0 up
hcitool lescan
gatttool -b MAC -I

3. 库

4. GATT 服务示例

// gatt-server.c
#include <bluetooth/bluetooth.h>
#include <bluetooth/gatt.h>

static gatt_service_t *thermometer;
static uint8_t temp_value[2] = { 0x00, 0x00 };

static ssize_t read_temp(struct bt_conn *conn,
                         const struct bt_gatt_attr *attr,
                         void *buf, uint16_t len, uint16_t offset)
{
    return bt_gatt_attr_read(conn, attr, buf, len, offset, temp_value, 2);
}

static struct bt_gatt_attr attrs[] = {
    BT_GATT_PRIMARY_SERVICE(BT_UUID_THERMOMETER_HEALTH_THERMOMETER),
    BT_GATT_CHARACTERISTIC(BT_UUID_TEMPERATURE, BT_GATT_CHRC_READ,
                           BT_GATT_PERM_READ, read_temp, NULL, NULL),
};

bt_gatt_service_register(&thermometer);

4. 嵌入式 BLE

四、LoRa

1. 特点

2. 芯片

3. Linux 驱动

五、Zigbee

嵌入式栈

六、NB-IoT / LTE-M

AT 命令

echo -e "AT+CFUN=1\r" > /dev/ttyUSB2
echo -e "AT+CEREG?\r" > /dev/ttyUSB2
echo -e "AT+CSQ\r" > /dev/ttyUSB2

七、GPS / GNSS

cat /dev/ttyUSB0 | head -50
$GPGSV,3,1,11,18,87,050,46,22,56,250,49,21,55,122,49 ...

八、嵌入式天线

FCC/CE 认证时天线有要求。

九、调试工具