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

发布者:Huanle最新更新时间:2024-07-10 来源: elecfans关键字:GoKit  4G网络 手机看文章 扫描二维码
随时随地手机看文章

简介

本案例主要讲述了使用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?imageView2/2/w/1000

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

4.使用Cubemx,生成Keil代码

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

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

2ef6ad4c-8e06-11eb-8b86-12bb97331649.png?imageView2/2/w/1000

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

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

2f9405a6-8e06-11eb-8b86-12bb97331649.png?imageView2/2/w/1000

7. gizwits_product.c文件修改

添加相关的头文件

2fd0207c-8e06-11eb-8b86-12bb97331649.png?imageView2/2/w/1000

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?imageView2/2/w/1000

12.烧录

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

35b9b0a2-8e06-11eb-8b86-12bb97331649.png?imageView2/2/w/1000

选择开发板串口

36013bfc-8e06-11eb-8b86-12bb97331649.png?imageView2/2/w/1000

将如图所示开关拔到system


选择生成的固件文件

点击开始编程

烧录完成。

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

13.检验烧录是否成功

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


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

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

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

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

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

到此STM32移植完成。


关键字:GoKit  4G网络 引用地址:如何使用GoKit和GC211来实现4G网络的开发?

上一篇:探究用双定时器控制单片机输出固定的数量的PWM脉冲!
下一篇:D32VF103控制器的定位是什么?

推荐阅读最新更新时间:2026-03-24 13:12

如何使用GoKitGC211来实现4G网络的开发?
简介 本案例主要讲述了使用GoKit和GC211(4G模块)来实现4G网络的开发。囊括模块接入、设备控制、数据采集、APP开发等方面内容。难度较低,适合新手入门。另外本次内容篇幅较长,将分成五部分来连载。主要是以图文形式呈现,如在实践过程中有疑问,可以加入机智云QQ群一起沟通探讨。 连载教程内容: gokit2/3 实现 4G 网络模块 GC211 的接入 STM32作为主控实现GOKIT全功能控制和采集 Arduino作为主控实现GOKIT全功能控制和采集 新版本APP快速开发 网页控制GOKIT开发板 进入正文 STM32代码移植编写 通过这一步骤,我们要了解驱动下载地址、如何移植代码,如电机控制、颜色变化、函数初始化等,
[单片机]
如何使用<font color='red'>GoKit</font>和<font color='red'>GC211</font>来实现<font color='red'>4G网络</font>的开发?
不会对4G网络降速!中国电信详解5G网络那些事
1月14日消息,中国电信近日发表长文,详细解答了消费者最关心的15个关于5G网络的问题,我们一起来看看。 Q1:怎么才能使用5G服务呢? 答:用户更换5G手机后,在5G网络覆盖区域,即可享受5G基础服务。如订购5G套餐,可享受更快的5G上网体验。 图片来源:微博 Q2:现在都什么地方有5G网络呢?我在的地方是不是有5G网络呢? 答:目前全国所有地级市和部分重点县城已经实现5G网络覆盖,消费者可通过运营商客服热线、掌上营业厅或营业厅查询身边的5G网络覆盖情况。 Q3:使用5G手机是否需要更换原有手机卡? 答:运营商推出了5G快捷服务,4G用户更换5G手机后,打开5G开关,不换卡、不换号,即可接入5G网络。订购5G套餐后,可享受更
[手机便携]
不会对<font color='red'>4G网络</font>降速!中国电信详解5G网络那些事
微软发布Surface Pro 7 Plus:升级11代酷睿 支持4G网络
1月11日晚间消息,微软刚刚在线上发布了Surface Pro 7的升级产品—Surface Pro 7 Plus,外观没有变化,主要是升级了英特尔11代酷睿,续航大幅提升,还有可拆卸的SSD固硬盘以及支持4G网络,售价6588元起。微软表示,这是一款只面向企业和学校的机型。   每年的10月都是Surface系列更新的时候,今年由于疫情的原因,微软只在10月悄然上线了新品类Surface Laptop Go,重磅产品Surface Pro系列则缺席。   在2021年1月,微软终于更新了Surface Pro 7,这是微软第一次使用“Plus”这个名称,中文命名为Surface Pro 7+商用版。   配置部分,Surf
[手机便携]
诺基亚联手NASA在月球打造4G网络:各地可互相通信
近日,诺基亚获得了一份在月球上建立 4G 网络的合同。 据外媒报道,NASA 近日授予诺基亚公司 1410 万美元在月球上部署蜂窝网络,这笔拨款是 NASA“临界点”选拔项目下签署的价值 3.7 亿美元合同的一部分。 这笔合同已授予诺基亚在美国的子公司,据美国宇航局航天局副局长 Jim Reuter 称,这项蜂窝服务将使宇航员,漫游者,登月者和栖息地之间能够相互通信。 诺基亚将建立的 4G 网络将远远超过早期登月任务所使用的通信形式。诺基亚的计划是建立一个 4G/LTE 网络,并最终过渡到 5G。 这不是诺基亚首次在月球上启动 LTE 网络的尝试。它曾计划在 2018 年与德国航天公司 PTScientists 和
[手机便携]
湖北高校4G网络5G化 网速真快了!
今天开学人这么多,但感觉学校的移动网络更快了。”华中农业大学开学第一天,不少学生发现手机上网速度没受影响。下面就随网络通信小编一起来了解一下相关内容吧。 湖北移动联合华为公司在华中农业大学、武汉大学等数十所高校的教学楼、宿舍等人群比较密集区域部署了81个3D MIMO站点,用户不需更换终端即可享受更优质、畅快的4G网络。 湖北移动相关负责人介绍,3D MIMO是5G技术4G化关键产品,通过多天线空分复用大幅提升频谱效率,相对传统基站,下行容量提升5倍,上行容量提升6倍,是高话务保障的关键手段之一。去年在湖北进行试验性部署以来,3D MIMO有效提升了“三高一限”场景(高话务、高楼、高干扰、上行受限)下的用户体验。 大学开学季,4
[网络通信]
仅仅是提升网速? 5G网络相比4G网络有哪些区别
智能手机已经成为现代社会不可或缺的电子产品,手机所使用的移动网络也成为像水/电一样的基础设施,目前全球商用的主流网络是4G LTE,而到了2020年,电信运营商将会开始部署5G网络。手机网络制式一路走来经历了多代技术的发展,那么5G网络跟现在商用的4G网络有何区别呢?   先来说说什么是4G、5G网络,4G网络 百度百科 给出的解释是“第四代移动电话行动通信标准,指的是第四代移动通信技术,外语缩写:4G。该技术包括TD-LTE和FDD-LTE两种制式”。4G网络的伴随着个人移动数据使用量越来越高而诞生的解决网络带宽的通信技术。   5G叫IMT-2020,业界预计2020年前后正式商用,是下一代移动通信标准,5G决不会是像3G
[手机便携]
仅仅多个4G网络,小米笔记本凭啥贵了这么多?
小米 在今年7月份发布旗下第一款 笔记本 ,自发布上市以来,根据官方给出的销量数据已经超过22万台,时隔五个月后,小米再一次举办笔记本发布会,这次是发布了支持移动 4G 网络的小米笔记本。   从产品上,两款小米笔记本的配置、外观均没有改变,变化只是增加移动4G网络这一特性,并非承诺用户免费上网一年,实则是每月4G流量,一年共48G流量而已。   但是在售价在上,从原来3499元变成4699元起售价,直接提高1200元,怎么感觉是在抢钱。仅仅增加支持4G网络这一项就贵了1200元。     就想对小米说一句话,想圈钱得玩创新。   首先,笔记本支持数据连接,本来都是过时技术,而且不受待见。   笔记本支持蜂窝数据,一直没有得到
[嵌入式]
传iPhone 6国行支持双4G网络/三网通用
   昨日微博用户@GeekBar创始人磊哥发表文章称苹果iPhone 6的基带芯片组已经确认,采用的是高通MDM9625系列芯片,搭配的基带电源管理IC为PM8019。此芯片可支持FDD LTE和TDD LTE网络以及LTE Cat.4标准,能够提供150Mbps的下行峰值数据速率。   之后有消息源称,iPhone 6的国行版通用版将同时支持联通、移动双4G网络,而iPhone 6国行电信版将不再锁网,这意味着电信版能够实现三网通用,不过该版本iPhone 6初期将屏蔽LTE 4G网络。如果此消息为真,对用户来说将是一个利好消息。 传iPhone 6国行通用版支持双4G网络 电信版三网通用   另外中国移动董事长奚国华此前在
[手机便携]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved