找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1996|回复: 0
收起左侧

基于机智云的物联网程序

[复制链接]
ID:336043 发表于 2020-2-17 22:06 | 显示全部楼层 |阅读模式
经过多次努力,用STM32F103ZET6开发板+ESP8266+0.96OLED显示屏(获取NTP网络时间)做的物联网实验终于调试成功,效果如图所示,程序见附件。

制作出来的实物图:
IMG_20200205_215820.jpg IMG_20200205_212023.jpg

TIM图片20200217215957.png

单片机源程序如下:
#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;        //上传所有机智云平台上设置的数据
char string_date[50]={0};        //获取网络上的日期,如2020-2-5
char string_time[50]={0};        //获取网络上的事件,如21:31:56


void key_scan()                //按键用来配网
{
        if(KEY_UP==1)
        {
                delay_ms(10);
                if(KEY_UP==1)
                {
                        gizwitsSetMode(WIFI_AIRLINK_MODE);        //配网
                        printf("WIFI_AIRLINK_MODE is OK\r\n"); //配网完成打印出来
                }
                while(KEY_UP);
        }
}


void Hardware_Init()                //所有的硬件初始化
{
        SysTick_Init(72);                //系统时钟72M
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
        LED_Init();                //led初始化
        KEY_Init();                //按键初始化
        WWDG_Init();        //窗口看门狗
        TIM3_CH1_PWM_Init(500,72-1);        //定时器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()                //机智云初始化
{
        TIM4_Init(9,7199);        //定时器4->1ms
        USART3_Init(9600);        //串口3波特率9600(必须)
        memset((uint8_t*)&currentDataPoint, 0, sizeof(dataPoint_t));        //清除数据
        gizwitsInit();        //机智云初始化
}

/*******************************************************************************
* 函 数 名         : main
* 函数功能                   : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
int main()
{
        u8 ii=0;
        Hardware_Init();
        Gizwits_Init();
        TIM5_Init(9999,7199);
        printf("初始化完成!!!\r\n");
        while(1)
        {
                ii++;
                userHandle();        //用户数据,这里就是adc电压值
                key_scan();                //按键配网
                gizwitsHandle((dataPoint_t *)&currentDataPoint);//协议处理,数据上传
                if(ii>=4)
                {
                        ii=0;
                        OLED_ShowStr(32,0,string_date,2);        //显示屏显示日期
                        OLED_ShowStr(0,4,string_time,3);        //显示事件
                }
        }
}

……由于实验代码太多,这里只展示main.c里面的函数,具体程序见附件。
IMG_20200205_212508.jpg

机智云平台《测试服》实验.7Z

3.43 MB, 下载次数: 28, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表