本帖最后由 lcofjp 于 2017-4-16 12:56 编辑
我最近又是闲的蛋疼,开始折腾电子时钟了,这个电子时钟在电子界估计是属于难度倒数第二,倒数第一就是点灯啦,所以本文并没啥科技含量。今天的主角之一是Particle Photon,如图:
这是一块为物联网(IoT)而生的开发板,其板载了一个P0模块(P-zero),模块集成了一个M3内核MCU(STM32F205)和wifi芯片,板子的主要参数:
- Particle PØ Wi-Fi module
- Broadcom BCM43362 Wi-Fi chip
- 802.11b/g/n Wi-Fi
- STM32F205RGY6 120Mhz ARM Cortex M3
- 1MB flash, 128KB RAM
- On-board RGB status LED (ext. drive provided)
- 18 Mixed-signal GPIO and advanced peripherals
- Open source design
- Real-time operating system (FreeRTOS)
- Soft AP setup
- FCC, CE and IC certified
作为一块物联网开发板,它的使命就是联网,其板载wifi功能并不能证明他的强大之处,其真正强悍之处在于它提供一整套互联网平台,云端服务器和软件开发的框架。通过这套体系,我们只要连着网,就能通过手机app或者网页与板子进行通信,设备与设备之间也可以进行通信。其软件开发与Arduino类似,提供了一套易于使用的API,使开发者可以集中精力专注应用的开发。具体功能我就不啰嗦了,可以参考其官网:
https://particle.io
本文要实现的功能非常简单,就是一个显示时间和日期的时钟,不过这个时钟需要联网,主要硬件组成为:
1. Particle Photon
2. MSP430G2553
3. LCD模块(128*32)
其实只要使用1和3便能完成这个功能,不过这块LCD在每次使用的时候,都需要接很多条线,接线麻烦浪费时间且容易出错,因此我打算把MSP430和它集成在一起,改造成一块串口LCD。
首先来规划一下原理框图(绘图软件:
fritzing):
不过在实际搭建的时候却成了这样:
经过集成整理后,清新多了:
Particle Photon的实现代码非常简洁,因为Photon需要联网,所以在联网的时候会同步时间,只要把板子的系统时间格式化一下就可以显示了:
- unsigned long tick, pretick;
- void setup() {
- Serial1.begin(115200);
- Time.zone(+8);
- tick = 0;
- pretick = 0;
- }
- void loop() {
- tick = millis();
- if (tick - pretick >= 1000) {
- pretick = tick;
- Serial1.println(Time.format(Time.now(), "{1 %m-%d %H:%M:%S}"));
- }
- }
复制代码
本来是打算实现一些高级的功能来着,例如增加天气的显示,可以通过http的API接口来获取天气信息,但是都遇到了一些问题,比如
https://darksky.net提供的API是https协议的,在单片机上实现https难度非常大,不过https肯定是未来的方向,而中国天气网注册账号需要填写申请,看了下申请单也明显不是针对普通老百姓的,所以放弃了。
就写到这里吧,由于430的程序太乱了,我整理一下再发出来。
————————————————————————————————————
430的代码在这里:
https://bbs.eeworld.com.cn/thread-527870-1-1.html
此内容由EEWORLD论坛网友lcofjp原创,如需转载或用于商业用途需征得作者同意并注明出处