找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2076|回復(fù): 0
收起左側(cè)

基于機(jī)智云的物聯(lián)網(wǎng)程序

[復(fù)制鏈接]
ID:336043 發(fā)表于 2020-2-17 22:06 | 顯示全部樓層 |閱讀模式
經(jīng)過多次努力,用STM32F103ZET6開發(fā)板+ESP8266+0.96OLED顯示屏(獲取NTP網(wǎng)絡(luò)時(shí)間)做的物聯(lián)網(wǎng)實(shí)驗(yàn)終于調(diào)試成功,效果如圖所示,程序見附件。

制作出來(lái)的實(shí)物圖:
IMG_20200205_215820.jpg IMG_20200205_212023.jpg

TIM圖片20200217215957.png

單片機(jī)源程序如下:
#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "adc.h"
#include "OLED_I2C.h"
#include "pwm.h"
#include "wwdg.h"
#include "time.h"
#include "key.h"
#include "gizwits_protocol.h"
#include "gizwits_product.h"


dataPoint_t currentDataPoint;        //上傳所有機(jī)智云平臺(tái)上設(shè)置的數(shù)據(jù)
char string_date[50]={0};        //獲取網(wǎng)絡(luò)上的日期,如2020-2-5
char string_time[50]={0};        //獲取網(wǎng)絡(luò)上的事件,如21:31:56


void key_scan()                //按鍵用來(lái)配網(wǎng)
{
        if(KEY_UP==1)
        {
                delay_ms(10);
                if(KEY_UP==1)
                {
                        gizwitsSetMode(WIFI_AIRLINK_MODE);        //配網(wǎng)
                        printf("WIFI_AIRLINK_MODE is OK\r\n"); //配網(wǎng)完成打印出來(lái)
                }
                while(KEY_UP);
        }
}


void Hardware_Init()                //所有的硬件初始化
{
        SysTick_Init(72);                //系統(tǒng)時(shí)鐘72M
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中斷優(yōu)先級(jí)分組 分2組
        LED_Init();                //led初始化
        KEY_Init();                //按鍵初始化
        WWDG_Init();        //窗口看門狗
        TIM3_CH1_PWM_Init(500,72-1);        //定時(shí)器3通道1PWM初始化 2khz的頻率
        USART1_Init(115200);        //串口1波特率115200初始化
        ADCx_Init();        //adc初始化
        I2C_Configuration();        //I2C配置
        OLED_Init();        //oled屏初始化
        OLED_CLS();//清屏
        delay_ms(500);
}

void Gizwits_Init()                //機(jī)智云初始化
{
        TIM4_Init(9,7199);        //定時(shí)器4->1ms
        USART3_Init(9600);        //串口3波特率9600(必須)
        memset((uint8_t*)&currentDataPoint, 0, sizeof(dataPoint_t));        //清除數(shù)據(jù)
        gizwitsInit();        //機(jī)智云初始化
}

/*******************************************************************************
* 函 數(shù) 名         : main
* 函數(shù)功能                   : 主函數(shù)
* 輸    入         : 無(wú)
* 輸    出         : 無(wú)
*******************************************************************************/
int main()
{
        u8 ii=0;
        Hardware_Init();
        Gizwits_Init();
        TIM5_Init(9999,7199);
        printf("初始化完成。!\r\n");
        while(1)
        {
                ii++;
                userHandle();        //用戶數(shù)據(jù),這里就是adc電壓值
                key_scan();                //按鍵配網(wǎng)
                gizwitsHandle((dataPoint_t *)&currentDataPoint);//協(xié)議處理,數(shù)據(jù)上傳
                if(ii>=4)
                {
                        ii=0;
                        OLED_ShowStr(32,0,string_date,2);        //顯示屏顯示日期
                        OLED_ShowStr(0,4,string_time,3);        //顯示事件
                }
        }
}

……由于實(shí)驗(yàn)代碼太多,這里只展示main.c里面的函數(shù),具體程序見附件。
IMG_20200205_212508.jpg

機(jī)智云平臺(tái)《測(cè)試服》實(shí)驗(yàn).7Z

3.43 MB, 下載次數(shù): 28, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表