完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
EDP协议
服务器登录 登录流程: (1)客户端发送连接请求(CONN_REQ) (2)服务器验证请求的合法性 (3)服务器发送一个回执(CONN_RESP)给客户端 Onenet 上的EDP、HTTP、MQTT服务器地址和端口号如下: E D P: 183.230.40.39 PORT: 876 HTTP: 183.230.40.33 PORT: 80 MQTT: 183.230.40.39 PORT: 6002 其中请求包含三部分:消息头、选项和消息体。 1、消息头 包括消息的类型和剩余消息长度。 2、选项 包括协议名称、协议版本、连接标志、保持连接时间。 3、消息体 可能包含设备ID、用户ID(可选)、鉴权信息(看采取什么方式登录)。 设备ID、用户ID(可选)、鉴权信息,这三项内容都为长度+内容的字符串格式。 设备ID必须传递,若认证方式中不使用设备ID,应将设备ID长度设置为0;用户ID和鉴权信息,根据标志位若存在必须按顺序出现。 (绿色为消息头部分,黄色为可选的多个选项部分和蓝色为可选的消息体) 各部分具体如下图 登录方式 方式1: 设备ID+鉴权信息(api-key) 设备ID:申请设备时平台返回的ID; 鉴权信息:在平台申请的可以操作该设备的api-key字符串; 方式2: 产品ID + 鉴权信息(auth_info) 产品ID:在平台添加产品时平台生成的ID; 鉴权信息:在平台申请设备时填写设备的auth_info属性(json对象字符串),该属性需要产品内具备唯一性 onenet初始化程序 论坛里面有很详细的资料哦,几乎都是稍微修改以下就可以用的了。 OV7670摄像头模块 引脚定义及连线 OV7670初始化程序 ov7670.h #ifndef _OV7670_H #define _OV7670_H #include “stm32f4xx.h” #define OV7670_RST_PW_RCC RCC_AHB1Periph_GPIOG #define OV7670_RST_PW_Pin GPIO_Pin_8|GPIO_Pin_9 #define OV7670_RST_PW_GPIO GPIOG #define OV7670_PWDN_H GPIO_SetBits(GPIOG,GPIO_Pin_9) //POWER DOWN控制信号 #define OV7670_PWDN_L GPIO_ResetBits(GPIOG,GPIO_Pin_9) //POWER DOWN控制信号 #define OV7670_RST_H GPIO_SetBits(GPIOG,GPIO_Pin_8) //复位控制信号 #define OV7670_RST_L GPIO_ResetBits(GPIOG,GPIO_Pin_8) //复位控制信号 #define PIC_START_X 0 //起始坐标x #define PIC_START_Y 0 //起始坐标y #define PIC_WIDTH 320 //照片长度 #define PIC_HEIGHT 200 //照片高度 extern uint16_t camera_buffer[PIC_WIDTH*PIC_HEIGHT+27]; // #define OV7670_MID 0X7FA2 #define OV7670_PID 0X7673 / u8 OV7670_Init(void); void OV7670_Light_Mode(u8 mode); void OV7670_Color_Saturation(u8 sat); void OV7670_Brightness(u8 bright); void OV7670_Contrast(u8 contrast); void OV7670_Special_Effects(u8 eft); void OV7670_Window_Set(u16 sx,u16 sy,u16 width,u16 height); void set_cif(void); #endif ov7670.c部分函数 void OV7670_RST_PW_Init(void) { //设置IO GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(OV7670_RST_PW_RCC, ENABLE); //RESET,PWDN初始化设置 GPIO_InitStructure.GPIO_Pin = OV7670_RST_PW_Pin;//RESET,PWDN推挽输出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //推挽输出 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//100MHz GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉 GPIO_Init(OV7670_RST_PW_GPIO, &GPIO_InitStructure);//初始化 } //初始化OV7670 //返回0:成功 //返回其他值:错误代码 u8 OV7670_Init(void) { u16 i=0; u16 reg=0; OV7670_RST_PW_Init(); OV7670_PWDN_L; //POWER ON delay_ms(100); OV7670_RST_L; //复位OV7670 delay_ms(100); OV7670_RST_H; //结束复位 SCCB_Init(); //初始化SCCB 的IO口 SCCB_WR_Reg(0X12, 0x80); //软复位OV7670 delay_ms(50); reg=SCCB_RD_Reg(0X1c); //读取厂家ID 高八位 reg《《=8; reg|=SCCB_RD_Reg(0X1d); //读取厂家ID 低八位 if(reg!=OV7670_MID) { printf(“rnMID:%drn”,reg); return 1; } reg=SCCB_RD_Reg(0X0a); //读取厂家ID 高八位 reg《《=8; reg|=SCCB_RD_Reg(0X0b); //读取厂家ID 低八位 if(reg!=OV7670_PID) { printf(“HID:%drnrn”,reg); return 2; } //初始化 OV7670,采用QVGA分辨率(320*240) for(i=0;i《sizeof(ov7670_init_reg_tbl)/sizeof(ov7670_init_reg_tbl[0]);i++) { SCCB_WR_Reg(ov7670_init_reg_tbl[i][0],ov7670_init_reg_tbl[i][1]); } OV7670_Window_Set(PIC_START_X,PIC_START_Y,PIC_WIDTH,PIC_HEIGHT); OV7670_Light_Mode(0); OV7670_Color_Saturation(2); OV7670_Brightness(1); OV7670_Contrast(2); My_DCMI_Init(); DCMI_DMA_Init((uint32_t)&camera_buffer+54,(sizeof(camera_buffer)-54)/4,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Enable);//DCMI DMA return 0x00; //ok } } ESP8266_WIFI模块 AT固件 用出厂自带的固件即可,当然已经刷过其他固件的小伙伴也可以在官网下载: 出厂默认 AT 固件 AT 指令集 WIFI模块初始化部分程序 From wifi.c。 void WIFI_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStruct; USART_InitTypeDef USART_InitStructure; RCC_AHB1PeriphClockCmd(RCC_IO_WIFI,ENABLE); RCC_APB1PeriphClockCmd(RCC_USART_WIFI,ENABLE); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /* USART3 GPIO口配置 */ GPIO_InitStructure.GPIO_Pin=PIN_WIFI; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIO_WIFI, &GPIO_InitStructure); GPIO_PinAFConfig(GPIO_WIFI,AF_WIFI_TX,GPIO_AF_USART3); GPIO_PinAFConfig(GPIO_WIFI,AF_WIFI_RX,GPIO_AF_USART3); //USART3 IRQ NVIC_InitStruct.NVIC_IRQChannel = WIFI_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0; NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); USART_InitStructure.USART_BaudRate = BAUDRATE_WIFI; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(WIFI_IO, &USART_InitStructure); USART_Cmd(WIFI_IO,ENABLE); USART_ITConfig(WIFI_IO, USART_IT_IDLE, ENABLE); USART_ITConfig(WIFI_IO, USART_IT_RXNE, ENABLE); } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1820 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1634 浏览 1 评论
1104 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
740 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1692 浏览 2 评论
1951浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
756浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
587浏览 3评论
605浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
569浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 00:30 , Processed in 0.942937 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号