项目简介
本项目是适用于Raspberry Pico设备的LwM2M客户端应用示例,基于开源Anjay库和Raspberry Pi Pico SDK开发。它实现了基本的CoAP通信,可与远程服务器建立连接,支持安全通信,还具备温度数据远程监控的功能。
项目的主要特性和功能
- WiFi连接:利用Raspberry Pi Pico SDK和CYW43库初始化设备的WiFi连接,使其接入指定网络。
- CoAP通信:通过Anjay库配置设备,实现与远程服务器的CoAP通信。
- 安全通信:支持PSK模式的安全通信方式。
- 温度监控:集成DS18B20和MPL3115A2温度传感器,实现温度数据的读取与远程监控。
- 多任务处理:采用FreeRTOS操作系统,实现主任务、温度更新任务等多任务处理。
- 稳定可靠:具备日志和错误处理机制,保障程序稳定运行。
安装使用步骤
环境准备
复制Raspberry Pi Pico SDK和FreeRTOS内核到基础目录,与本项目并行。示例命令如下:
mkdir pico
cd pico
cd pico-sdk/ && git submodule update --init && cd ..
最终目录结构如下:
$ ls -1
Anjay-pico-client
FreeRTOS-Kernel
pico-sdk
安装编译工具
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib
编译项目
进入Anjay-pico-client
目录,执行以下命令,将<ssid>
和<pass>
分别替换为你的WiFi名称和密码,<endpoint_name>
为LwM2M客户端端点名称:
cd Anjay-pico-client
git submodule update --init --recursive
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DWIFI_SSID="<ssid>" -DWIFI_PASSWORD="<pass>" -DENDPOINT_NAME="<endpoint_name>" .. && make -j
若编译启用安全功能的示例(安全通信和温度对象),需提供PSK身份和密钥,将<identity>
和<psk>
替换为在Coiote LwM2M Server中输入的值:
cmake -DCMAKE_BUILD_TYPE=Debug -DWIFI_SSID="<ssid>" -DWIFI_PASSWORD="<pass>" -DENDPOINT_NAME="<endpoint_name>" -DPSK_IDENTITY="<identity>" -DPSK_KEY="<psk>" .. && make -j
编译完成后会生成包含.uf2
和.hex
文件的目录。
烧录程序
通过引导加载器烧录时,在通过USB线连接Raspberry Pi Pico W时按住BOOTSEL
按钮,设备会被识别为大容量存储设备,将.uf2
文件复制到该设备,Pico将完成编程、复位并开始运行代码。
运行项目
运行程序后,设备会初始化WiFi连接、配置Anjay库,并开始与远程服务器进行CoAP通信。
注意:编译和运行时,需根据项目main.c
文件说明提供正确的WiFi信息和其他参数。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】