上一篇:温湿度采集并上传到服务器,并通过网络显示
这次使用蓝牙,用安卓App显示
思路同样简单:
首先,使用DHT11温湿度传感器,单片机根据其特定时序读取数据,显示到液晶屏上;
然后,通过串口发送到蓝牙模块,手机连接蓝牙模块;
再然后,写安卓程序接受数据,并显示。
这次不一样的是,自己做硬件。
Demo如下:
DHT11读取温湿度
uint8_t DHT11_ReadTempAndHumi(float *temp,float *humi)
{
uint8_t buf[5];
uint8_t i;
DHT11_Reset();
if(DHT11_IsOnline() =/= 0)
{
//四位数据位 1位检验位
//第一位为湿度整数位 第二位为湿度小数位
//第三位为温度整数位 第四位为温度小数位 第五位为检验位
for(i = 0; i < 5; i ++)
{
buf[i] = DHT11_ReadByte();
}
if((buf[0] + buf[1] + buf[2] + buf[3]) == buf[4])
{
*humi = (float)buf[0];
*temp = (float)buf[2];
}
}
else
{
return 1;
}
return 0;
}
液晶屏显示 液晶屏用的tft1.44 spi传输数据(网上很多例程)
至于蓝牙传输数据,就是将单片机和蓝牙模块的TX,RX交叉连起来。单片机程序往串口写数据即可。
再通过串口助手发AT指令配置蓝牙模块,手机直接搜索、配对连接。手机下载App蓝牙串口,即可收到数据
至于自己的安卓App,目前还在学,到时候偶写好了再贴
前面都是热身,硬件才是重点
硬件说简单也简单,单片机最小系统+传感器+蓝牙模块,模块都是现成的直接买,但是要做好还是比较难。
我不甘心只做个最小系统(实际上还是个最小系统,哈哈),所以还得画图,让别个加工板子,焊接,最后再调。
先上个原理图
PCB图 图二为手动布线,图一为自动布线,手动布线还是好看很多哈,毕竟花了七八个小时。
这是我第三次画图,前面两次都没成功,这次应该可以,不行也得行
明天再检查一下,覆个铜,调下丝印,然后下单做板子。中间这些时间就拿来做安卓程序。
铺铜OK,然后做了电器检查,然后输出制造文件,前往嘉立创下单,备齐元器件,等待板子回来
OK,等了几天板子终于回来了,元器件也差不多了。
然后板子我也焊接好了,调试也通过了
在这儿总结一下
板子上留了超级多GPIO,但是排针的封装搞错了,,,,以至于闲置了大部分面积,排针我连焊的心情都没了,买的USB的封装跟画的也不一样。
当然板子会再改一次,哎呀就是最小系统。。
MCU使用的Stm32F103RCT6 然后买成了Stm32F030RCT6 对比一下一两个数字之差,程序下不了,调了两个小时。
最开始画板子是想着尽可能的多花点自己接触过的传感器,芯片啥子,现在实际上看来没多大作用,还是要做什么画什么的好。。
嘿嘿,又重新画了一个,修改了封装,部分电路,我觉得还可以。
最终效果
接下来还剩下安卓的蓝牙程序,目前安卓刚刚入门,会点简单的界面了。没有找到例程,只有自己慢慢学了。
感觉这下算是真正理解到了单片机为何物了,也不枉画了这么多钱。