0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用GoKit和GC211來實(shí)現(xiàn)4G網(wǎng)絡(luò)的開發(fā)?

9GxC_IoTMaker ? 來源:機(jī)智云開發(fā)者 ? 作者:機(jī)智云開發(fā)者 ? 2021-03-30 14:14 ? 次閱讀

簡介

本案例主要講述了使用GoKit和GC211(4G模塊)來實(shí)現(xiàn)4G網(wǎng)絡(luò)的開發(fā)。囊括模塊接入、設(shè)備控制、數(shù)據(jù)采集、APP開發(fā)等方面內(nèi)容。難度較低,適合新手入門。另外本次內(nèi)容篇幅較長,將分成五部分來連載。主要是以圖文形式呈現(xiàn),如在實(shí)踐過程中有疑問,可以加入機(jī)智云QQ群一起溝通探討。

連載教程內(nèi)容:

gokit2/3 實(shí)現(xiàn) 4G 網(wǎng)絡(luò)模塊 GC211 的接入

STM32作為主控實(shí)現(xiàn)GOKIT全功能控制和采集

Arduino作為主控實(shí)現(xiàn)GOKIT全功能控制和采集

新版本APP快速開發(fā)

網(wǎng)頁控制GOKIT開發(fā)板

進(jìn)入正文

STM32代碼移植編寫

通過這一步驟,我們要了解驅(qū)動(dòng)下載地址、如何移植代碼,如電機(jī)控制、顏色變化、函數(shù)初始化等,移植好代碼后,為后續(xù)的APP應(yīng)用開發(fā)奠定基礎(chǔ)。

1.下載STM32驅(qū)動(dòng)文件。

在機(jī)智云下載中心下載相應(yīng)型號的驅(qū)動(dòng)文件。

本次以STM32為例

2.復(fù)制STM32驅(qū)動(dòng)文件里面的STM32F103C8x.ioc到下載的代碼文件中替換該文件。

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

3.復(fù)制驅(qū)動(dòng)庫代碼_CubeMX版文件夾里面的驅(qū)動(dòng)文件到下載代碼的Hal文件夾。

4.使用Cubemx,生成Keil代碼

打開下載代碼里面的STM32F103C8x.ioc,需要在電腦上安裝CUBEMX,安裝方法自行百度。打開之后如下圖所示。

個(gè)人建議,任何軟件創(chuàng)建項(xiàng)目,不要包含中文路徑,否則將會導(dǎo)致很多不可控問題,包括此軟件。

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

5.點(diǎn)擊右上角generate code生成keil代碼。

6.生成代碼之后用keil打開代碼,添加驅(qū)動(dòng)文件到項(xiàng)目

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

7. gizwits_product.c文件修改

添加相關(guān)的頭文件

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

gizwitsEventProcess函數(shù)修改,包含各個(gè)傳感器的驅(qū)動(dòng)。

對RGB LED開啟紅色的控制。

if(0x01 == currentDataPoint.valueLED_OnOff)

{

ledRgbControl(254,0, 0);

}

else

{

ledRgbControl(0, 0,0);

}

break;

其他顏色和電機(jī)的修改

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加上關(guān)燈操作。

case WIFI_CON_ROUTER:

ledRgbControl(0, 250, 0);

userInit函數(shù)修改,增加各個(gè)驅(qū)動(dòng)函數(shù)的初始化,數(shù)據(jù)點(diǎn)初始化

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

delay_init(72); // 延時(shí) 初始化

rgbLedInit(); // RGB LED 初始化

dht11Init(); // 溫濕度初始化

irInit(); // 紅外初始化

motorInit(); // 電機(jī)初始化

motorStatus(0); // 電機(jī)轉(zhuǎn)速初始化

/** 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函數(shù)的修改,各個(gè)數(shù)據(jù)點(diǎn)的上傳,傳感器采集。

uint8_t ret = 0;

static uint32_t thLastTimer = 0;

///《 新添加代碼: 紅外傳感器數(shù)據(jù)獲取

currentDataPoint.valueInfrared = irHandle();

///《 新添加代碼: 溫濕度傳感器數(shù)據(jù)獲取

if((gizGetTimerCount()- thLastTimer) 》 2000) //上報(bào)間隔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下面的各個(gè)sensor驅(qū)動(dòng)之中,否則sensor將會提示沒有引腳定義報(bào)錯(cuò)。

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( ) 函數(shù)與 key2LongPress( ) 函數(shù)中添

加長/短按key2時(shí)的LED點(diǎn)亮代碼。

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文件。魔術(shù)棒→user→$KARMARMCCinfromelf.exe --bin --output=@L.bin !L

11.編譯項(xiàng)目

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

12.燒錄

STM32開發(fā)板集成串口下載,打開串口燒錄軟件mcuisp.exe,附件中可下載。

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

選擇開發(fā)板串口

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

將如圖所示開關(guān)拔到system

選擇生成的固件文件

點(diǎn)擊開始編程

燒錄完成。

燒錄完成之后將開關(guān)拔回flash,復(fù)位模組,就可以正常運(yùn)行程序。

13.檢驗(yàn)燒錄是否成功

打開 串口調(diào)試助手.exe ,附件中可以下載。監(jiān)聽串口出現(xiàn)如下圖所示日志代表程序燒錄成功。

14.驗(yàn)證設(shè)備和云端是否互聯(lián)互通

接上功能板和4G模組(插上普通4G卡)。云端設(shè)備上線。

15.打開機(jī)智云串口調(diào)試助手.exe,附件中或者官網(wǎng)下載中心可以下載。工具,二設(shè)備二維碼,按照如圖生成二維碼。

16.下載機(jī)智云APP,驗(yàn)證智能設(shè)備和APP是否互聯(lián)互通。

使用機(jī)智云App掃碼即可綁定設(shè)備,官網(wǎng)下載中心可以下載APP

到此STM32移植完成。

基本上硬件部分全部完成,接下來,我要做APP了。當(dāng)然在這之前,我也會把Arduino版本的如何進(jìn)行移植,告知大家。

原文標(biāo)題:【4G 開發(fā)】基于GOKIT+GC211的開發(fā)指南2,STM32代碼移植

文章出處:【微信公眾號:機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 4G
    4G
    +關(guān)注

    關(guān)注

    15

    文章

    5454

    瀏覽量

    118321
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352542

原文標(biāo)題:【4G 開發(fā)】基于GOKIT+GC211的開發(fā)指南2,STM32代碼移植

文章出處:【微信號:IoTMaker,微信公眾號:機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    4G模塊聯(lián)網(wǎng)問題

    最近在調(diào)試4G模塊,4G模塊驅(qū)動(dòng)調(diào)試成功,也可以ping通外網(wǎng)(比如www.baidu.com)。我的電腦連接路由器,也可以上網(wǎng),但是用4G模塊ping不通電腦,不知道該問題出在哪里,該怎么解決
    發(fā)表于 08-01 19:01

    帶DTU串口透傳功能的工業(yè)4G路由器:4G DTU模塊路由器串口RS232/485轉(zhuǎn)4G網(wǎng)絡(luò)數(shù)據(jù)雙向透傳

    4G網(wǎng)絡(luò)數(shù)據(jù)
    深圳市博晶網(wǎng)絡(luò)科技有限公司
    發(fā)布于 :2024年07月31日 17:10:51

    嵌入式設(shè)備中的4G/5G模塊管理

    自管理工具,旨在以更智能化的管理策略和更靈活的配置方式為用戶帶來更加便捷的網(wǎng)絡(luò)管理體驗(yàn)。 01功能簡介 模塊層面 4G/5G網(wǎng)卡自管理工具在功能設(shè)計(jì)上實(shí)現(xiàn)了深度與廣度的結(jié)合。在模塊層
    發(fā)表于 07-13 16:45

    請問mesh的root節(jié)點(diǎn)能否通過4G撥號實(shí)現(xiàn)聯(lián)網(wǎng)?

    請問能實(shí)現(xiàn)網(wǎng)絡(luò)中有若干設(shè)備,支持通過4G模塊連接外網(wǎng),當(dāng)在用的4G模塊斷網(wǎng)后,由其它可以聯(lián)網(wǎng)的4G節(jié)點(diǎn)充當(dāng)ROOT, 繼續(xù)完成所有節(jié)點(diǎn)與外網(wǎng)
    發(fā)表于 06-28 13:16

    廣泛用于4G/5G小基站、4G/5G直放站的GC080X收發(fā)機(jī)芯片

    廣泛用于4G/5G小基站、4G/5G直放站的GC080X收發(fā)機(jī)芯片
    的頭像 發(fā)表于 05-14 09:51 ?365次閱讀
    廣泛用于<b class='flag-5'>4G</b>/5<b class='flag-5'>G</b>小基站、<b class='flag-5'>4G</b>/5<b class='flag-5'>G</b>直放站的<b class='flag-5'>GC</b>080X收發(fā)機(jī)芯片

    4G路由器——節(jié)省網(wǎng)絡(luò)費(fèi)用,降低成本

    4G路由器是一種便捷的上網(wǎng)設(shè)備,可以通過4G網(wǎng)絡(luò)信號實(shí)現(xiàn)高速、穩(wěn)定、便捷的上網(wǎng)體驗(yàn)。
    的頭像 發(fā)表于 02-23 13:40 ?217次閱讀

    什么是4G Cat.1?4G Cat.1與4G有什么區(qū)別?

    4G的區(qū)別和具體特點(diǎn)。 首先,4G是一種第四代移動(dòng)通信技術(shù),也稱為LTE網(wǎng)絡(luò)。它能夠提供高速數(shù)據(jù)傳輸,讓用戶能夠更快地瀏覽互聯(lián)網(wǎng),下載和上傳大文件。而4G Cat.1則是
    的頭像 發(fā)表于 02-03 11:38 ?2951次閱讀

    安卓4G智能模塊的開發(fā)能用在哪些方面?

    的數(shù)據(jù)傳輸則通過無線 4G 網(wǎng)絡(luò),傳輸?shù)竭h(yuǎn)端的控制中心,并從控制中心通過 4G 安卓智能模塊遠(yuǎn)程對工業(yè)設(shè)備進(jìn)行數(shù)據(jù)通信。從而實(shí)現(xiàn)工業(yè)設(shè)備通過無線 4
    的頭像 發(fā)表于 01-24 09:40 ?440次閱讀
    安卓<b class='flag-5'>4G</b>智能模塊的<b class='flag-5'>開發(fā)</b>能用在哪些方面?

    【飛騰派4G版免費(fèi)試用】飛騰派4G開發(fā)板套裝測試及環(huán)境搭建

    先簡單介紹一下這款飛騰派4G開發(fā)板套裝; 飛騰派是由中電港螢火工場研發(fā)的一款面向行業(yè)工程師、學(xué)生和愛好者的開源硬件。主板處理器采用飛騰嵌入式四核處理器,兼容ARM V8架構(gòu),包含2個(gè)FTC664核
    發(fā)表于 01-22 00:47

    【飛騰派4G版免費(fèi)試用】更多的了解飛騰派4G開發(fā)板!

    飛騰派4G開發(fā)板是由中電港螢火工場與飛騰合作推出的飛騰派,搭載飛騰定制嵌入式芯片,采用飛騰自主研發(fā)的高能效異構(gòu)多核處理器技術(shù),具有模塊化、易上手、全開源、低成本的特點(diǎn),大大降低了國產(chǎn)處理器的開發(fā)
    發(fā)表于 01-22 00:34

    【飛騰派4G版免費(fèi)試用】飛騰派開發(fā)板運(yùn)行Ubuntu系統(tǒng)

    支持國內(nèi)OpenKylin、OpenHarmony、SylixOS、RT-Thread等國產(chǎn)操作系統(tǒng)。 飛騰派4G開發(fā)板上運(yùn)行Ubuntu系統(tǒng),來自于網(wǎng)絡(luò)的資料,給大家整理,方便下載
    發(fā)表于 01-08 22:40

    【飛騰派4G版免費(fèi)試用】大家來了解飛騰派4G開發(fā)

    今天把收到的飛騰派4G開發(fā)板做各視頻,讓大家直觀的了解一下做工精細(xì),布線合理,做工扎實(shí)的飛騰派4G開發(fā)板。 關(guān)于飛騰: 飛騰信息技術(shù)有限公司是國內(nèi)領(lǐng)先的自主核心芯片提供商,致力于飛
    發(fā)表于 01-02 22:43

    【飛騰派4G版免費(fèi)試用】初步認(rèn)識飛騰派4G開發(fā)

    這幾天收到飛騰派 4G 基礎(chǔ)套件,給大家做個(gè)介紹,讓大家可以了解一下這塊開發(fā)板, 飛騰派 4G 基礎(chǔ)套件單板+電源+風(fēng)扇 開源開發(fā)板 支持Ubuntu SylixOS OpenKyli
    發(fā)表于 01-02 22:23

    4G藍(lán)牙網(wǎng)關(guān)M1000功能及產(chǎn)品介紹

    支持4G移動(dòng)網(wǎng)絡(luò),能夠快速、穩(wěn)定地連接到互聯(lián)網(wǎng),實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)傳輸和設(shè)備控制。 藍(lán)牙通信:M1000支持藍(lán)牙通信,可以與各種藍(lán)牙設(shè)備進(jìn)行連接和數(shù)據(jù)傳輸,如智能手機(jī)、平板電腦、智能手表等。 遠(yuǎn)程管理:通過
    發(fā)表于 12-22 14:38

    5G4G的區(qū)別 5g網(wǎng)絡(luò)4g網(wǎng)絡(luò)耗電嗎?5g功耗是4g的多少倍?

    通信體驗(yàn)帶來巨大的變化。那么,5G4G有哪些區(qū)別?5G網(wǎng)絡(luò)4G網(wǎng)絡(luò)耗電嗎?5
    的頭像 發(fā)表于 10-19 17:08 ?2976次閱讀