还有一个网关的代码也上传了

网关代码链接

项目概况

目的在于定位农场中的畜牧牲畜,监控牛羊的健康状况。定位功能通过GPS定位芯片实现,健康状况通过牛羊的步数累计检测。

一、项目框架搭建

1.HAL库生成

开启串口通信,使用HAL库搭建一个基础代码

2.DEBUG调试

  • 重写fputc()函数
  • 使用宏定义输出日志,实现开关输出调试

代码在Com_Debug.h中

#define DEBUG_ENABLE
#ifdef DEBUG_ENABLE
 // 可以在输出结果前显示出代码所在的文件位置
#define FILE__NAME (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)
#define __FILE__NAME__ (strrchr(FILE__NAME, '/') ? strrchr(FILE__NAME, '/') + 1 : FILE__NAME)
// 定义debug_printf,debug_println函数的输出
#define debug_printf(format, ...) printf("[%s:%d]" format, __FILE__NAME__, __LINE__, ##__VA_ARGS__)
#define debug_println(format, ...) printf("[%s:%d]" format "\r\n", __FILE__NAME__, __LINE__, ##__VA_ARGS__)

// 定义空宏定义,防止代码编译错误
#else

#define FILE__NAME
#define __FILE__NAME__
#define debug_printf(format, ...)
#define debug_println(format, ...)

3.Tool工具

  • 编写延迟函数
  • 基础的宏定义

代码在Com_Tool.c中

//延迟函数,用for循环占用主控来实现延迟
//需要根据实际情况进行调试
//修改除数,多数为9-7
void Com_Delay_us(uint16_t us)
{
    uint32_t tmp = (us * 72) / 9;

    while (tmp--)
    {
        __NOP();
    }
}

二、GPS定位

1.硬件接口层Int编写

  • 初始化方法:利用串口使用命令和芯片交互
  • 读取GPS定位信息:存储到GPS_FULL_BUFF中

代码在Int_AT6558R.c中

三、记步芯片

1.硬件接口层Int编写

  • 使用I2C1通信
  • 通过I2C1写入USER_SET修改芯片参数
  • 通过读取STEP_CNT_L/M/H 3个寄存器的值拼接得到运动步数

代码在Int_DS3553.c中

四、广域网低功耗通信

1.硬件接口层Int编写

  • 复制官方启动文件
  • 补全官方文件中缺失的SPI相关函数
  • 根据官方案例编写自己的Int文件
  • 初始化收发数据的方法(默认一直是接收模式)

编写的代码在Int_LoRa.c中
移植的代码在lora文件夹中
补全函数在driver_llcc68_interface.c中需要补全的是:

  • llcc68_interface_spi_deinit
  • llcc68_interface_spi_write_read
  • llcc68_interface_reset_gpio_write
  • llcc68_interface_busy_gpio_read
  • llcc68_interface_delay_ms
  • llcc68_interface_debug_print

2.实现LoRa双端通信

  • 双端驱动移植实现

需要两个stm32主控

五、网络通信

1.以太网

  • 移植需要的API文件
  • 实现驱动文件中部分函数
  • 实现网关和电脑服务端的连接通信

移植的文件在网关代码程序中eth和w5500文件夹里
需要链接有线网进行发送

2.IOT卡

  • 使用串口发送AT指令
  • 初始化方法
    • 唤醒芯片
    • 软重启芯片
  • 发送数据
    • 判断能否连接外网
    • 创建本地客户端
    • 连接远程服务端
    • 发送数据
    • 关闭客户端

硬件接口代码在Int_QS100.c中

六、芯片低功耗模式

  • AT6558R断开电源进入低功耗
  • QS100进入休眠模式
  • 主控芯片进入待机模式

代码在App_Low_Power.c中

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐