TA的每日心情 | 慵懒 2016-10-17 12:07 |
---|
签到天数: 306 天 连续签到: 1 天 [LV.8]以坛为家I
|
LinkIt ONE 是一个面向 IoT 的开发板。可以外接 3.7V 电池供电。LinkIt ONE 开发板的盒子里带了一个 Li-ion 电池。
下面就简单的介绍下,如何使用LinkIt ONE 的电池和RTC时钟的功能。
一、 Battery
Battery 相对比较简单,系统自带了两个函数 API 进行调用,
电池 level API 返回当前的电池电量 从 0~100 。(其实只能反回0, 33, 66, 100 这四个值 )
电池状态 API 返回当前的电池充电与否。 是一个boolean 型,true 代表充电 ,false 代表未充电
使用电池API 的时候,要包含电池的文件,,,
#include <LBattery.h>bat_level = LBattery.level();如上方法,进行调用。
图1:电池电量返回
图2:充电中
图3:未充电
核心代码如下,关于OLED显示的部分,请查看上一篇文章:
unsigned char dis1[] = "LinkIt ONE";unsigned char dis2[] = "Battery:";unsigned char dis3[] = "eeboard";unsigned char bat_ch[] = "charging";unsigned char bat_nch[] = "not charging";unsigned char bat[4] = "100"; int bat_level = 0; //level();datetimeInfo date;void setup() { pinMode(OLED_DC,OUTPUT); pinMode(OLED_RST,OUTPUT); SPI.begin(); SPI.setBitOrder(MSBFIRST); LCD_Init(); delayMicroseconds(10); LCD_Fill(0xff); LCD_Fill(0xff); LCD_Fill(0x00); OLED_6x8Str(0, 0, dis1); OLED_6x8Str(0, 3, dis2); OLED_6x8Str(64,3,bat); OLED_6x8Str(80, 7, dis3); }void loop() { //LDateTime.getTime(&date); //bat_level =date.mon; bat_level = LBattery.level(); bat[0] = bat_level/100 + '0'; bat[1] = (bat_level0)/10 + '0'; bat[2] = bat_level + '0'; OLED_6x8Str(64,3,bat); if(LBattery.isCharging()) OLED_6x8Str(32,5,bat_ch); else OLED_6x8Str(32,5,bat_nch); // LDateTime.year = 0; }二、RTC
时间以及日期这个对于IoT 设备也是很重要的一个功能。当然LinkIt ONE开发板中不会把这个功能漏掉的。
首先包括一下的文件。
#include <LDateTime.h>主要有三个函数:int getRtc( unsigned int * rtc);int getTime( datetimeInfo * time);int setTime( datetimeInfo * time);时间和日期被存储在如下结构体中:
typedef struct { int year; int mon; int day; int hour; int min; int sec;} datetimeInfo;简单的例程如下:
#include <LDateTime.h>datetimeInfo t;void setup(){}void loop(){ LDateTime.getTime(&t); LDateTime.setTime(&t); delay(1000);} |
|