原创 【富芮坤物联网开发板评测】ESP8266+FR8016基于贝壳物联的网络时钟与温湿度计

2020-7-6 14:17 6706 56 10 分类: 物联网
首先感谢富芮坤对这次活动提供的大力支持,感谢面包板社区提供这次宝贵的试用机会,感谢贝壳物联提供优质的免费平台!
话不多说,上才艺。。。
效果图:

温湿度远程记录:

功能简介:

1、esp8266通过透传连接至贝壳物联,FR8016通过串口0与esp8266通讯,获得网络时间并显示到TFT显示屏上;

2、读取SHT30的温湿度在TFT屏幕上显示,并上传到贝壳物联实现远程记录;

具体实现:

1、在贝壳物联官网 https://www.bigiot.net/ 注册账号并添加智能设备(获得设备ID和APIKEY)、添加接口(上传数据的ID);

2、ESP8266模块设置透传模式,具体教程 https://www.bigiot.net/talk/1.html

3、根据通讯协议 https://www.bigiot.net/help/1.html 在程序中增加登陆、查询时间、上传数据的代码:

//登陆贝壳物联
  • void timer_biglot_login_fun(void *arg){
  • uint8_t *temp;
  • uint8_t buff[] = "{"M":"checkin","ID":"智能设备ID号","K":"智能设备APIKEY"}\n";
  • uart_write(UART0,buff,sizeof(buff));
  • }
  • //上传实时数据
  • void timer_biglot_update_fun(void *arg){
  • uint8_t *RH_ID = "111111"; //湿度接口ID
  • uint8_t *TEMP_ID = "111111"; //温度接口ID
  • uint8_t buff[1024];
  • uint16_t i;
  • i = sprintf(buff,"{"M":"update","ID":"智能设备ID号","V":{"%s":"%0.1f","%s":"%0.1f"}}\n",TEMP_ID,temperature/1000.0,RH_ID,humidity/1000.0);
  • uart_write(UART0,buff,i);
  • }
  • //查询服务器时间
  • void timer_biglot_checkTime_fun(void *arg){
  • uint8_t buff[] = "{"M":"time","F":"Y-m-d H:i:s"}\n";
  • uart_write(UART0,buff,sizeof(buff));
  • }
  • 复制代码

    系统初始化后创建三个定时任务:

    ①.每隔10秒发送登陆指令(心跳包,要求40~50秒内必须发送一次,以维持设备在线)

    ②.每隔25秒查询服务器时间(最短5秒查询一次)

    ③.每隔15秒上传一次温湿度数据

    然后在每秒刷新一次的定时器中设置时间自加,实现秒钟实时加1:

    time_s++;
  • if(time_s >= 60){
  • time_s =0;
  • time_m++;
  • }
  • if(time_m >= 60){
  • time_m = 0;
  • time_h++;
  • }
  • if(time_h >= 24){
  • time_h = 0;
  • time_D++;
  • }
  • 复制代码

    最关键的,为了串口能够一次性收到全部的数据,需要修改串口中断函数的内容:

    __attribute__((weak)) __attribute__((section("ram_code"))) void uart0_isr_ram(void)
  • {
  • uint8_t int_id;
  • uint8_t c;
  • volatile struct uart_reg_t *uart_reg = (volatile struct uart_reg_t *)UART0_BASE;
  • int_id = uart_reg->u3.iir.int_id;
  • //co_printf("uart0 in isr\r\n");
  • if(int_id == 0x04 || int_id == 0x0c ) /* Receiver data available or Character time-out indication */
  • {
  • while(uart_reg->lsr & 0x01){<span style="white-space:pre"> </span>//这是重点,持续读完数据
  • rev_buff[flags] = uart_reg->u1.data;
  • if(rev_buff[flags] == '\n'){<span style="white-space:pre"> </span>
  • //处理收到的时间数据
  • if(strstr((char *)rev_buff,"time")){
  • time_Y = (rev_buff[19]-0x30)*10+(rev_buff[20]-0x30);
  • time_M = (rev_buff[22]-0x30)*10+(rev_buff[23]-0x30);
  • time_D = (rev_buff[25]-0x30)*10+(rev_buff[26]-0x30);
  • time_h = (rev_buff[28]-0x30)*10+(rev_buff[29]-0x30);
  • time_m = (rev_buff[31]-0x30)*10+(rev_buff[32]-0x30);
  • time_s = (rev_buff[34]-0x30)*10+(rev_buff[35]-0x30);
  • }
  • flags =0;
  • }else{
  • flags++;
  • }
  • }
  • }
  • else if(int_id == 0x06)
  • {
  • volatile uint32_t line_status = uart_reg->lsr;
  • }
  • }
  • 复制代码

    至此,程序已实现查询时间和上传温湿度数据,剩下的就是改改LCD屏的函数,或者再添加三个按键的其他功能,更多玩法等待我们去解锁~!

    博客上传不了附件,只能存放在网盘里分享链接出来了,有需要参考的朋友可以下载看看~

    工程下载 https://cloud.189.cn/t/6nERfyINJVza

    作者: 随遇而安1992, 来源:面包板社区

    链接: https://mbb.eet-china.com/blog/uid-me-3913932.html

    版权声明:本文为博主原创,未经本人允许,禁止转载!

    PARTNER CONTENT

    文章评论8条评论)

    登录后参与讨论

    随遇而安1992 2020-7-11 14:08

    whik: 工程里有AT指令配置的代码吗?没有找到
    没有在工程里设置,是单独先对8266设置好再插到板子上的

    whik 2020-7-11 12:49

    随遇而安1992: 原厂就行,按照教程设置透传
    工程里有AT指令配置的代码吗?没有找到

    随遇而安1992 2020-7-10 22:57

    whik: ESP8266的固件是出厂的AT固件,还是贝壳物联的定制固件?
    原厂就行,按照教程设置透传

    whik 2020-7-10 21:24

    随遇而安1992: 已上传云盘
    ESP8266的固件是出厂的AT固件,还是贝壳物联的定制固件?

    随遇而安1992 2020-7-10 20:08

    lyyinhe_xi: 我烧录了固件,文字左右全反了,哪里问题?1.3版本的开发板
    lcd.c文件的头部
    #define DEV_V_1_4  (1)  //FR8016H DEV1.4
    改为
    #define DEV_V_1_4  (0)  //FR8016H DEV1.4
    就好了,两个版本的初始化设置不同

    lyyinhe_xi 2020-7-10 18:31

    我烧录了固件,文字左右全反了,哪里问题?1.3版本的开发板

    随遇而安1992 2020-7-10 11:49

    whik: 工程能分享一下吗?
    已上传云盘

    whik 2020-7-9 17:51

    工程能分享一下吗?
    相关推荐阅读
    随遇而安1992 2021-01-08 00:05
    【机智云Gokit2.0开发板】快速创建远程监控的温湿度计
    拿到Gokit2已经有些天,这次来实际操作下,自己如何快速的创建一个可以远程监控的温湿度计!第一步:在机智云开发者中心创建新产品创建好产品以后注意阅读开发向导,要一步步来。我们需要先定义数据点,数据点...
    随遇而安1992 2020-12-19 17:33
    【机智云Gokit2.0开发板】让智能产品开发要像写《hello world》一样简单
    “智能硬件,或者说大家所讲的物联网,纵向方向涉及到的行业知识很多,从下到上大概有传感器、 MCU、通讯模组(BLE、ZigBee、WiFi 等)、APP、M2M 服务、数据存储、报表分析、数据挖掘、云...
    随遇而安1992 2020-07-23 13:41
    【SHT31智能小表】SHT31与SHT35一致性对比
    本来想引出SHT31的引脚出来用其他板子来读取温湿度,一直没有成功,刚好实验室有个SHT35的温湿度记录仪,索性就来对比一下他俩的一致性,测试地点选在办公室,避免空调风直接吹到,并且将SHT35的探头...
    随遇而安1992 2020-07-10 20:04
    【SHT31智能小表】板子上手及精度测试
    首先感谢盛思锐对本次试用提供样品支持,感谢面包板社区提供这次宝贵的试用机会!收到样品后第一时间开箱:包装正面包装背面(醒目的SHT31)打开之后1.主板一枚;2.说明书一份;3.底板一块;掰开底板插入...
    随遇而安1992 2020-06-14 22:52
    【富芮坤物联网开发板评测】1.4版SDK演示与天猫精灵的初次交互
    首先,感谢富芮坤提供这次机会让我体验这个FR8016开发板,我收到的是一块1.4版本的板子;跟1.3稍微有些不同,其中OLED的驱动配置有改动,导致一开始烧录1.3版的演示固件一直发现显示不对,好在官...
    我要评论
    8
    56
    关闭 站长推荐上一条 /3 下一条