外设移植 安信可Ai-WB2-32S开发板+TM1637 NTP时钟

描述

以下作品由安信可社区用户

King6688制作

产品说明

Ai-WB2-32S 是由深圳市安信可科技有限公司开发的 Wi-Fi&BT 模组,该模组搭载BL602芯片作为核心处理器,支持 Wi-Fi 802.11b/g/n 协议和 BLE 5.0 协议。BL602 芯片内置低功耗的 32 位 RISC CPU,276KB RAM 和丰富的外围接口,包括SDIO,SPI,UART,I2C,IR remote,PWM,ADC,DAC,PIR 和 GPIO 等。可广泛应用于物联网(IoT)、移动设备、可穿戴电子设备、智能家居等领域。

TM1637 是由天微电子开发的一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良,质量可靠。主要应用于电磁炉、微波炉及小家电产品的显示屏驱动。采用DIP/SOP20的封装形式。

功能特点

●采用功率CMOS 工艺

●显示模式(8 段×6 位),支持共阳数码管输出

●键扫描(8×2bit),增强型抗干扰按键识别电路

●辉度调节电路(占空比 8 级可调)

●两线串行接口(CLK,DIO)

●振荡方式:内置RC 振荡(450KHz+5%)

●内置上电复位电路

●内置自动消隐电路

●封装形式:DIP20/SOP20

说明:

本次移植参考了WangChong的论坛帖子进行更改,对原有的部分命名做了规范化,参考帖子地址:【外设移植】TM1637 + M61-32S:https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44420&fromuid=13055&_dsign=6ac131ea

使用:

本次我使用的是AI-WB2-32S开发板,自己画了一个板子整合TM1637和舵机、BLE(舵机、BLE的将会在另外2篇帖子介绍),对应的接线方式如下:

NTP

移植过程:

根据参考帖子以及TM1637的规格书进行更改,时序图上方帖子里已经有了,TM1637支持5V电压,原贴用是的AI-M61-32S 3V3的供电,本次需要更改为AI-WB2支持的方式并用5V供电,主要是更改io以及时间的设置,本来移植到这步已经完成了园长的要求了,但是!笔者想着既然都用1637了,干脆直接改一个能与NTP服务器同步时间的时钟出来吧,于是又整合了wifi和ntp的部分,然后根据算法处理第1~4位和时间点、日期的显示,显示时间5S,日期显示2S,关键代码如下:

void sntp_task()

{

tcpip_callback(_startup_sntp, NULL);

vTaskDelay(5000 / portTICK_PERIOD_MS);

while(1)

{

for(int i=0;i<5;i++){

uint32_t seconds = 0, frags = 0;

sntp_get_time(&seconds, &frags);

blog_info("[NTP] time is %lu:%lurn", seconds, frags);

utils_time_date_from_epoch(seconds+UTC*60*60, &date);

blog_info("Date & time is: %u-%02u-%02u %02u:%02u:%02u (Day %u of week, Day %u of Year)rn",

date.ntp_year,

date.ntp_month,

date.ntp_date,

date.ntp_hour,

date.ntp_minute,

date.ntp_second,

date.ntp_week_day,

date.day_of_year

);

uint32_t hour = date.ntp_hour;

uint32_t minute = date.ntp_minute;

uint32_t second = date.ntp_second;

//tm1637 显示时间

int digit4 = 0;

int digit3 = 0;

int digit2 = 0;

int digit1 = 0;

digit4 = floor(hour/10);

digit3 = floor(hour%10);

digit2 = floor(minute/10);

digit1 = floor(minute%10);

sendDisplayData(digit4, digit3, digit2, digit1, dotFlag);

vTaskDelay(1000 / portTICK_RATE_MS);

dotFlag=!dotFlag;

}

//tm1637

//显示日期

int digit4 = 0;

int digit3 = 0;

int digit2 = 0;

int digit1 = 0;

digit4 = floor(date.ntp_month/10);

digit3 = floor(date.ntp_month%10);

digit2 = floor(date.ntp_date/10);

digit1 = floor(date.ntp_date%10);

dotFlag = 0;

sendDisplayData(digit4, digit3, digit2, digit1, dotFlag);

vTaskDelay(2000 / portTICK_RATE_MS);

}

}

烧录验证效果:

由于画的板子没有注意TM1637与AI-WB2-32S的排母的间距,所以焊接的时候只能把1637的排母掰弯了一些,各位大佬看看就好~~

效果图:

NTP

 

NTP

原贴地址:

【外设移植】Ai-WB2+TM1637 NTP时钟:https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45246&highlight=NTP%E6%97%B6%E9%92%9F&_dsign=4fb83a50

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分