0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用GoKit和GC211来实现4G网络的开发?

9GxC_IoTMaker 来源:机智云开发者 作者:机智云开发者 2021-03-30 14:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

简介

本案例主要讲述了使用GoKit和GC211(4G模块)来实现4G网络的开发。囊括模块接入、设备控制、数据采集、APP开发等方面内容。难度较低,适合新手入门。另外本次内容篇幅较长,将分成五部分来连载。主要是以图文形式呈现,如在实践过程中有疑问,可以加入机智云QQ群一起沟通探讨。

连载教程内容:

gokit2/3 实现 4G 网络模块 GC211 的接入

STM32作为主控实现GOKIT全功能控制和采集

Arduino作为主控实现GOKIT全功能控制和采集

新版本APP快速开发

网页控制GOKIT开发板

进入正文

STM32代码移植编写

通过这一步骤,我们要了解驱动下载地址、如何移植代码,如电机控制、颜色变化、函数初始化等,移植好代码后,为后续的APP应用开发奠定基础。

1.下载STM32驱动文件。

在机智云下载中心下载相应型号的驱动文件。

本次以STM32为例

2.复制STM32驱动文件里面的STM32F103C8x.ioc到下载的代码文件中替换该文件。

2bb7d570-8e06-11eb-8b86-12bb97331649.png

3.复制驱动库代码_CubeMX版文件夹里面的驱动文件到下载代码的Hal文件夹。

4.使用Cubemx,生成Keil代码

打开下载代码里面的STM32F103C8x.ioc,需要在电脑上安装CUBEMX,安装方法自行百度。打开之后如下图所示。

个人建议,任何软件创建项目,不要包含中文路径,否则将会导致很多不可控问题,包括此软件。

2ef6ad4c-8e06-11eb-8b86-12bb97331649.png

5.点击右上角generate code生成keil代码。

6.生成代码之后用keil打开代码,添加驱动文件到项目

2f9405a6-8e06-11eb-8b86-12bb97331649.png

7. gizwits_product.c文件修改

添加相关的头文件

2fd0207c-8e06-11eb-8b86-12bb97331649.png

gizwitsEventProcess函数修改,包含各个传感器的驱动。

对RGB LED开启红色的控制。

if(0x01 == currentDataPoint.valueLED_OnOff)

{

ledRgbControl(254,0, 0);

}

else

{

ledRgbControl(0, 0,0);

}

break;

其他颜色和电机的修改

case EVENT_LED_Color:

currentDataPoint.valueLED_Color = dataPointPtr-》valueLED_Color;

GIZWITS_LOG(“Evt: EVENT_LED_Color %d ”, currentDataPoint.valueLED_Color);

switch(currentDataPoint.valueLED_Color)

{

case LED_Color_VALUE0:

ledRgbControl(currentDataPoint.valueLED_R,currentDataPoint.valueLED_G,currentDataPoint.valueLED_B);

break;

case LED_Color_VALUE1:

ledRgbControl(254, 254, 0);

break;

case LED_Color_VALUE2:

ledRgbControl(254,0, 70);

break;

case LED_Color_VALUE3:

ledRgbControl(238,30, 30);

break;

default:

break;

}

break;

case EVENT_LED_R:

currentDataPoint.valueLED_R = dataPointPtr-》valueLED_R;

GIZWITS_LOG(“Evt:EVENT_LED_R %d ”,currentDataPoint.valueLED_R);

ledRgbControl(currentDataPoint.valueLED_R,currentDataPoint.valueLED_G,currentDataPoint.valueLED_B);

break;

case EVENT_LED_G:

currentDataPoint.valueLED_G = dataPointPtr-》valueLED_G;

GIZWITS_LOG(“Evt:EVENT_LED_G %d ”,currentDataPoint.valueLED_G);

ledRgbControl(currentDataPoint.valueLED_R,currentDataPoint.valueLED_G,currentDataPoint.valueLED_B);

break;

case EVENT_LED_B:

currentDataPoint.valueLED_B = dataPointPtr-》valueLED_B;

GIZWITS_LOG(“Evt:EVENT_LED_B %d ”,currentDataPoint.valueLED_B);

ledRgbControl(currentDataPoint.valueLED_R,currentDataPoint.valueLED_G,currentDataPoint.valueLED_B);

break;

case EVENT_Motor_Speed:

currentDataPoint.valueMotor_Speed = dataPointPtr-》valueMotor_Speed;

GIZWITS_LOG(“Evt:EVENT_Motor_Speed %d ”,currentDataPoint.valueMotor_Speed);

motorStatus(currentDataPoint.valueMotor_Speed);

break;

如使用wifi方案,在WIFI_CON_ROUTER加上关灯操作。

case WIFI_CON_ROUTER:

ledRgbControl(0, 250, 0);

userInit函数修改,增加各个驱动函数的初始化,数据点初始化

memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));

delay_init(72); // 延时 初始化

rgbLedInit(); // RGB LED 初始化

dht11Init(); // 温湿度初始化

irInit(); // 红外初始化

motorInit(); // 电机初始化

motorStatus(0); // 电机转速初始化

/** Warning !!! DataPoint Variables Init , Must Within The Data Range **/

currentDataPoint.valueLED_OnOff = 0;

currentDataPoint.valueInfrared = 0;

currentDataPoint.valueAlert_1 = 0;

currentDataPoint.valueAlert_2 = 0;

currentDataPoint.valueFault_LED = 0;

currentDataPoint.valueFault_Motor = 0;

currentDataPoint.valueFault_TemHum = 0;

currentDataPoint.valueFault_IR = 0;

currentDataPoint.valueLED_Color = 0;

currentDataPoint.valueLED_R = 0;

currentDataPoint.valueLED_G = 0;

currentDataPoint.valueLED_B = 0;

currentDataPoint.valueMotor_Speed = 0;

currentDataPoint.valueTemperature = 0;

currentDataPoint.valueHumidity = 0;

userHandle函数的修改,各个数据点的上传,传感器采集。

uint8_t ret = 0;

static uint32_t thLastTimer = 0;

///《 新添加代码: 红外传感器数据获取

currentDataPoint.valueInfrared = irHandle();

///《 新添加代码: 温湿度传感器数据获取

if((gizGetTimerCount()- thLastTimer) 》 2000) //上报间隔2S

{

ret = dht11Read((uint8_t *)¤tDataPoint.valueTemperature,(uint8_t*)¤tDataPoint.valueHumidity);

if(ret != 0)

{

GIZWITS_LOG(“Failedto read DHT11 [%d] ”, ret);

}

thLastTimer = gizGetTimerCount();

}

8.将#include “main.h” 添加到hal下面的各个sensor驱动之中,否则sensor将会提示没有引脚定义报错。

9. main.c修改,增加头文件

#include “hal_temp_hum.h”

#include “hal_rgb_led.h”

#include “hal_motor.h”

#include “Hal_infrared.h”

#include “delay.h”

main.c 文件的 key2ShortPress( ) 函数与 key2LongPress( ) 函数中添

加长/短按key2时的LED点亮代码。

void key2ShortPress(void)

{

GIZWITS_LOG(“KEY2 PRESS ,Soft APmode ”);

#if !MODULE_TYPE

gizwitsSetMode(WIFI_SOFTAP_MODE);

#endif

//Soft AP mode,RGB 红灯

ledRgbControl(250,0, 0);

}

void key2LongPress(void)

{

//AirLink mode

GIZWITS_LOG(“KEY2PRESS LONG ,AirLink mode ”);

#if !MODULE_TYPE

gizwitsSetMode(WIFI_AIRLINK_MODE);

#endif

//AirLink mode,RGB 绿灯

ledRgbControl(0,250, 0);

},

10.生成bin文件。魔术棒→user→$KARMARMCCinfromelf.exe --bin --output=@L.bin !L

11.编译项目

354a4460-8e06-11eb-8b86-12bb97331649.png

12.烧录

STM32开发板集成串口下载,打开串口烧录软件mcuisp.exe,附件中可下载。

35b9b0a2-8e06-11eb-8b86-12bb97331649.png

选择开发板串口

36013bfc-8e06-11eb-8b86-12bb97331649.png

将如图所示开关拔到system

选择生成的固件文件

点击开始编程

烧录完成。

烧录完成之后将开关拔回flash,复位模组,就可以正常运行程序。

13.检验烧录是否成功

打开 串口调试助手.exe ,附件中可以下载。监听串口出现如下图所示日志代表程序烧录成功。

14.验证设备和云端是否互联互通

接上功能板和4G模组(插上普通4G卡)。云端设备上线。

15.打开机智云串口调试助手.exe,附件中或者官网下载中心可以下载。工具,二设备二维码,按照如图生成二维码。

16.下载机智云APP,验证智能设备和APP是否互联互通。

使用机智云App扫码即可绑定设备,官网下载中心可以下载APP

到此STM32移植完成。

基本上硬件部分全部完成,接下来,我要做APP了。当然在这之前,我也会把Arduino版本的如何进行移植,告知大家。

原文标题:【4G 开发】基于GOKIT+GC211的开发指南2,STM32代码移植

文章出处:【微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 4G
    4G
    +关注

    关注

    15

    文章

    5607

    浏览量

    123251
  • STM32
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371164

原文标题:【4G 开发】基于GOKIT+GC211的开发指南2,STM32代码移植

文章出处:【微信号:IoTMaker,微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    实战Air780EPM:构建4G共享网关,服务WiFi与有线设备!

    通过Air780EPM开发板,我们可以轻松实现4G网络作为数据出口,为周边的WiFi设备和以太网设备提供互联网共享,适用于移动办公、远程部署等场景。 一、多网融合概述   Air780
    的头像 发表于 09-30 16:03 875次阅读
    实战Air780EPM:构建<b class='flag-5'>4G</b>共享网关,服务WiFi与有线设备!

    4G网络AT模块:ml307A 总是连接失败,为什么?

    使用 AT client 连接 ml307A 4G网络,在多个地方使用网络,然后就经常出现连接失败或关闭失败: [E/at.skt.ml307] ml307 device(ml3070
    发表于 09-11 07:05

    基于 4G 技术的物流车车载监控系统解决方案设计与实现

    基于 4G 技术的物流车车载监控系统解决方案,旨在通过 4G 网络的高速数据传输能力,实现对物流车辆的实时监控、数据采集与远程管理,为供应链运输环节提供全链路的可视化与智能化支撑。其设
    的头像 发表于 08-22 15:53 645次阅读
    基于 <b class='flag-5'>4G</b> 技术的物流车车载监控系统解决方案设计与<b class='flag-5'>实现</b>

    如何使用IR915L-TL00-W-S通过4G网络实现远程上下载三菱Q03UDEPLC程序?

    如题通过通过4G网络实现远程上下载三菱Q03UDEPLC程序
    发表于 08-06 06:56

    工业物联网平台可以支持5G/4G通信吗

    工业物联网平台可以支持5G/4G通信 ,且5G/4G通信是工业物联网中实现远程监控与分布式设备连接的关键技术手段,其应用场景、技术
    的头像 发表于 07-25 15:28 447次阅读
    工业物联网平台可以支持5<b class='flag-5'>G</b>/<b class='flag-5'>4G</b>通信吗

    工业物联网4G无线网络转串口模块

    4G无线网络转串口模块是一种工业通信设备,通过4G网络将串口(如RS232/RS485)设备接入互联网,实现远程数据传输与控制。适用于物联网
    的头像 发表于 06-25 11:11 564次阅读
    工业物联网<b class='flag-5'>4G</b>无线<b class='flag-5'>网络</b>转串口模块

    4G全网通网关是什么?有什么功能?

    4G全网通网关是一种能够接入4G网络,并将4G网络信号转换为其他网络信号(如WiFi、以太网等)
    的头像 发表于 06-17 15:43 871次阅读
    <b class='flag-5'>4G</b>全网通网关是什么?有什么功能?

    温度采集模块 4G全网通

    4G全网通温度采集模块是一种基于4G移动网络的物联网终端模块,通过内置温度传感器(或外接传感器)实时监测环境温度,并通过4G网络将数据上传至
    的头像 发表于 06-06 14:40 481次阅读

    4G DTU 无线数传模块:RS232/485转4G,稳定不宕机

    4G DTU(Data Transfer Unit)是一种工业级物联网数据传输设备,主要用于将串口(如RS232/RS485)数据通过4G网络无线传输到远程服务器或云平台。它是工业自动化、远程监控
    的头像 发表于 05-29 14:58 830次阅读

    4G工业路由器:工业物联网的核心连接器与技术演进

    一、技术原理与核心功能 4G工业路由器是工业物联网(IIoT)中的关键设备,其核心功能是将4G蜂窝网络与有线以太网无缝衔接,实现工业设备、传感器与云端或企业
    的头像 发表于 04-18 15:51 589次阅读

    4G DTU设备选型指南:2025主流厂商品牌盘点与选购

    随着工业物联网(IIoT)的快速发展和数字化转型的持续推进,4G DTU(数据终端单元)设备在远程监控、数据采集、工业控制等领域的应用日益广泛。4G DTU设备通过蜂窝网络(如 4G
    的头像 发表于 04-17 15:51 1677次阅读

    雷卯收集4G/WIFI无线传输产品开发

    电磁兼容整改能力。欢迎联系。 雷卯收集增强现实4G/WIFI无线传输产品开发板明细如下: 以下是4G/WIFI无线传输产品开发板介绍: 无线传输产品基于
    的头像 发表于 04-08 18:21 395次阅读
    雷卯收集<b class='flag-5'>4G</b>/WIFI无线传输产品<b class='flag-5'>开发</b>板

    4G核心板_4G智能模组_联发科MTK|高通|紫光展锐4G模块开发

    4G核心板是一种集成了处理器、内存与存储、射频模块、接口等主要组件的小型电路板。它采用开放式的智能Android操作系统,并内置4G通信功能,专为嵌入式系统的核心功能实现而设计。由于核心板本身需要通过底板提供支持,无法单独运行,
    的头像 发表于 03-04 20:15 988次阅读
    <b class='flag-5'>4G</b>核心板_<b class='flag-5'>4G</b>智能模组_联发科MTK|高通|紫光展锐<b class='flag-5'>4G</b>模块<b class='flag-5'>开发</b>

    工业4G路由器实现电力领域监控视频数据无线传输

    工业4G路由器在电力监控领域凭借强大网络连接能力,能适应不同网络环境,快速接入互联网。丰富接口可连接各类电力设备,具备工业级硬件设计,能在恶劣环境稳定运行,还有多重安全防护。在电力监控数据传输中
    的头像 发表于 02-24 17:51 959次阅读
    工业<b class='flag-5'>4G</b>路由器<b class='flag-5'>实现</b>电力领域监控视频数据无线传输

    【正点原子STM32H7R3开发套件试用体验】4G联网工业设备控制网关

    这次有幸参加 正点原子STM32H7R3开发套件 的评测,计划使用 正点原子STM32H7R3开发套件,完成一个 4G联网工业设备控制网关。 评测计划: 1. 通过正点原子
    发表于 12-18 14:14