找传奇、传世资源到传世资源站!

自制环境监测手表——”E

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

自制环境监测手表——”E-watch“# Nwatch-Stm32f103

本文参考:

[WatchX-Nwatch-stm32](https://github.com/Soysauce007/WatchX-Nwatch-stm32)

[自制环境监测手表——”E-watch“,亲身开发才知道一个产品要做好有多难,怪不得科技产品卖那么贵](https:www.bilibili.com/video/BV1XJ411M7yT/?spm_id_from=333.788.videocard.0)

[自制基于stc8单片机的oled屏手表](https:www.bilibili.com/video/BV1eE411j76K/?spm_id_from=333.788.videocard.0)

# 硬件介绍

主控:stm32f103c8t6

屏幕:1.3寸oled屏 ssd1306

实时时钟:PCF8563 

锂电池充电芯片:XT4054 

# 设计缺陷

- 由于当时想将蓝牙与这个结合在一起,所以预留usart1给蓝牙模块了,所以没有设计TTL转串口芯片,需要st-link或者j-link下载程序(但是!我的蓝牙芯片烧了,肉痛!)

- 没设计电源按键和硬件复位,如果程序死机,要么选择程序刷固件,要么等待电池狗带,或者取下电源线。

- 程序下载时,保证单片机正常供电,我使用的st-link不供电。

- 板子设计的时候没有考虑外接的mpu6050和pw02的高度,所以存在结构缺陷。

- 时钟芯片的封装大了一号,但是也能焊上去。(懒得换了)

- 为了考虑手工焊接,大部分元器件使用的都是0805封装,所以相对紧凑一点。(其中包含了两个0603的贴片led)

- 在未焊接好按键的时候测试程序的时候,建议注释掉以下两句:(不然就只能用按键在亮屏时刻烧写固件,因为停机模式所以时钟停止工作!)

  ```
       WWDG_Init(0x7F,0X5F,WWDG_Prescaler_8);//窗口卡门狗,  算是弥补上文未设置硬件复位和电源键的缺陷吧     
       pwrmgr_update();  //  内部开启了停机模式
  ```

  

- 蜂鸣器带有一丝杂音,硬件缺陷啊。抄的板子,不会改,但是在开启停机模式后可弥补。

- usb插入无法检测

- 音量调节无法实现 本以为pwm可以实现该功能,但是还是太年轻,预留的PA1死活开启不了,只能折中开启一个定时器模拟pwm,但是问题是很占用资源。

- 时钟不太准,建议自己调节PCF8563 的旁路电容,我设计的不是很合理。

- 电量检测不准确

- 蜂鸣器的焊盘有点小了,但是能怼上去

# 源码及其PCB展示

![原理图](https://upload-images.jianshu.io/upload_images/7994561-1402356f23bdb024.png?imageMogr2/auto-orient/strip|imageView2/2/w/1194/format/webp)

![主控PCB](https://upload-images.jianshu.io/upload_images/7994561-955556b7e0086f82.png?imageMogr2/auto-orient/strip|imageView2/2/w/989/format/webp)

![源码](https://upload-images.jianshu.io/upload_images/7994561-cccff528bd0663fc.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)

![焊接好的硬件](https://upload-images.jianshu.io/upload_images/7994561-2ca558370dc05215.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)

![测试效果](https://upload-images.jianshu.io/upload_images/7994561-c03f7c26aca4a77d.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)

# 购买记录

![元器件购买记录](https://upload-images.jianshu.io/upload_images/7994561-7daabe04a1ad2dca.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/1080)

以上是购买元器件记录,我本身自己有两块stm32f103c8t6,所以并未记录于其内部。

另外请忽略我购买的几个络铁头!

因为还有很多设计缺陷,感觉入不了大佬们的法眼。也没啥意思去得瑟,既然你看到了这里,那么我就将它赠与有缘人,喜欢玩的就拿去玩吧。当然如果你们有其它更好的想法,请务必在下方留言,让我瞻仰一波。

能力实在有限,希望各位大佬批评指正!!!

下载链接:

github:   https://github.com/Soysauce007/Nwatch-Stm32f103.git

百度云:链接:https://pan.baidu.com/s/1QRo6dB6eNtfuYiOQnF_FOA 
               提取码:y2z9
from clipboard
.
├── LICENSE
├── PCB
│   ├── Mid.PcbDoc
│   ├── Mid.SchDoc
│   ├── Nwatch.PcbDoc
│   ├── Nwatch.SchDoc
│   ├── Top.PcbDoc
│   ├── __Previews
│   │   ├── Mid.SchDocPreview
│   │   └── Nwatch.SchDocPreview
│   └── 打样
│       ├── STM32_Nwatch.zip
│       ├── test.zip
│       └── 直接上传嘉立创打样,test需要自己切割一下.txt
├── README.md
├── WatchX-Nwatch stm32f1
│   ├── CORE
│   │   ├── core_cm3.c
│   │   ├── core_cm3.h
│   │   ├── startup_stm32f10x_hd.s
│   │   └── startup_stm32f10x_md.s
│   ├── HARDWARE
│   │   ├── ADC
│   │   │   ├── ADC.c
│   │   │   └── ADC.h
│   │   ├── BEEP
│   │   │   ├── beep.c
│   │   │   └── beep.h
│   │   ├── IIC
│   │   │   ├── iic.c
│   │   │   ├── iic.h
│   │   │   ├── pcf8563_cfg.c
│   │   │   └── pcf8563_cfg.h
│   │   ├── KEY
│   │   │   ├── key.c
│   │   │   └── key.h
│   │   ├── LED
│   │   │   ├── led.c
│   │   │   └── led.h
│   │   ├── OLED
│   │   │   ├── bmp.h
│   │   │   ├── oled.c
│   │   │   ├── oled.h
│   │   │   └── oledfont.h
│   │   ├── RTC
│   │   │   ├── rtc.c
│   │   │   └── rtc.h
│   │   ├── STMFLASH
│   │   │   ├── stmflash.c
│   │   │   └── stmflash.h
│   │   └── WWDG
│   │       ├── wwdg.c
│   │       └── wwdg.h
│   ├── OBJ
│   │   ├── Nwatch.axf
│   │   ├── Nwatch.build_log.htm
│   │   ├── Nwatch.hex
│   │   ├── Nwatch.htm
│   │   ├── Nwatch.lnp
│   │   ├── Nwatch.sct
│   │   ├── Nwatch_Nwatch.dep
│   │   ├── adc.crf
│   │   ├── adc.d
│   │   ├── adc.o
│   │   ├── alarm.crf
│   │   ├── alarm.d
│   │   ├── alarm.o
│   │   ├── alarms.crf
│   │   ├── alarms.d
│   │   ├── alarms.o
│   │   ├── animation.crf
│   │   ├── animation.d
│   │   ├── animation.o
│   │   ├── appconfig.crf
│   │   ├── appconfig.d
│   │   ├── appconfig.o
│   │   ├── battery.crf
│   │   ├── battery.d
│   │   ├── battery.o
│   │   ├── beep.crf
│   │   ├── beep.d
│   │   ├── beep.o
│   │   ├── buttons.crf
│   │   ├── buttons.d
│   │   ├── buttons.o
│   │   ├── core_cm3.crf
│   │   ├── core_cm3.d
│   │   ├── core_cm3.o
│   │   ├── delay.crf
│   │   ├── delay.d
│   │   ├── delay.o
│   │   ├── diag.crf
│   │   ├── diag.d
│   │   ├── diag.o
│   │   ├── display.crf
│   │   ├── display.d
│   │   ├── display.o
│   │   ├── draw.crf
│   │   ├── draw.d
│   │   ├── draw.o
│   │   ├── game1.crf
│   │   ├── game1.d
│   │   ├── game1.o
│   │   ├── game2.crf
│   │   ├── game2.d
│   │   ├── game2.o
│   │   ├── game3.crf
│   │   ├── game3.d
│   │   ├── game3.o
│   │   ├── games.crf
│   │   ├── games.d
│   │   ├── games.o
│   │   ├── global.crf
│   │   ├── global.d
│   │   ├── global.o
│   │   ├── iic.crf
│   │   ├── iic.d
│   │   ├── iic.o
│   │   ├── key.crf
│   │   ├── key.d
│   │   ├── key.o
│   │   ├── led.crf
│   │   ├── led.d
│   │   ├── led.o
│   │   ├── m_display.crf
│   │   ├── m_display.d
│   │   ├── m_display.o
│   │   ├── m_main.crf
│   │   ├── m_main.d
│   │   ├── m_main.o
│   │   ├── m_rtc.crf
│   │   ├── m_rtc.d
│   │   ├── m_rtc.o
│   │   ├── main.crf
│   │   ├── main.d
│   │   ├── main.o
│   │   ├── menu.crf
│   │   ├── menu.d
│   │   ├── menu.o
│   │   ├── millis.crf
│   │   ├── millis.d
│   │   ├── millis.o
│   │   ├── misc.crf
│   │   ├── misc.d
│   │   ├── misc.o
│   │   ├── normal.crf
│   │   ├── normal.d
│   │   ├── normal.o
│   │   ├── oled.crf
│   │   ├── oled.d
│   │   ├── oled.o
│   │   ├── pcf8563_cfg.crf
│   │   ├── pcf8563_cfg.d
│   │   ├── pcf8563_cfg.o
│   │   ├── pwrmgr.crf
│   │   ├── pwrmgr.d
│   │   ├── pwrmgr.o
│   │   ├── resources.crf
│   │   ├── resources.d
│   │   ├── resources.o
│   │   ├── rtc.crf
│   │   ├── rtc.d
│   │   ├── rtc.o
│   │   ├── settings.crf
│   │   ├── settings.d
│   │   ├── settings.o
│   │   ├── sleep.crf
│   │   ├── sleep.d
│   │   ├── sleep.o
│   │   ├── sound.crf
│   │   ├── sound.d
│   │   ├── sound.o
│   │   ├── startup_stm32f10x_hd.d
│   │   ├── startup_stm32f10x_hd.o
│   │   ├── startup_stm32f10x_md.d
│   │   ├── startup_stm32f10x_md.o
│   │   ├── stm32f10x_adc.crf
│   │   ├── stm32f10x_adc.d
│   │   ├── stm32f10x_adc.o
│   │   ├── stm32f10x_bkp.crf
│   │   ├── stm32f10x_bkp.d
│   │   ├── stm32f10x_bkp.o
│   │   ├── stm32f10x_can.crf
│   │   ├── stm32f10x_can.d
│   │   ├── stm32f10x_can.o
│   │   ├── stm32f10x_cec.crf
│   │   ├── stm32f10x_cec.d
│   │   ├── stm32f10x_cec.o
│   │   ├── stm32f10x_crc.crf
│   │   ├── stm32f10x_crc.d
│   │   ├── stm32f10x_crc.o
│   │   ├── stm32f10x_dac.crf
│   │   ├── stm32f10x_dac.d
│   │   ├── stm32f10x_dac.o
│   │   ├── stm32f10x_dbgmcu.crf
│   │   ├── stm32f10x_dbgmcu.d
│   │   ├── stm32f10x_dbgmcu.o
│   │   ├── stm32f10x_dma.crf
│   │   ├── stm32f10x_dma.d
│   │   ├── stm32f10x_dma.o
│   │   ├── stm32f10x_exti.crf
│   │   ├── stm32f10x_exti.d
│   │   ├── stm32f10x_exti.o
│   │   ├── stm32f10x_flash.crf
│   │   ├── stm32f10x_flash.d
│   │   ├── stm32f10x_flash.o
│   │   ├── stm32f10x_fsmc.crf
│   │   ├── stm32f10x_fsmc.d
│   │   ├── stm32f10x_fsmc.o
│   │   ├── stm32f10x_gpio.crf
│   │   ├── stm32f10x_gpio.d
│   │   ├── stm32f10x_gpio.o
│   │   ├── stm32f10x_i2c.crf
│   │   ├── stm32f10x_i2c.d
│   │   ├── stm32f10x_i2c.o
│   │   ├── stm32f10x_it.crf
│   │   ├── stm32f10x_it.d
│   │   ├── stm32f10x_it.o
│   │   ├── stm32f10x_iwdg.crf
│   │   ├── stm32f10x_iwdg.d
│   │   ├── stm32f10x_iwdg.o
│   │   ├── stm32f10x_pwr.crf
│   │   ├── stm32f10x_pwr.d
│   │   ├── stm32f10x_pwr.o
│   │   ├── stm32f10x_rcc.crf
│   │   ├── stm32f10x_rcc.d
│   │   ├── stm32f10x_rcc.o
│   │   ├── stm32f10x_rtc.crf
│   │   ├── stm32f10x_rtc.d
│   │   ├── stm32f10x_rtc.o
│   │   ├── stm32f10x_sdio.crf
│   │   ├── stm32f10x_sdio.d
│   │   ├── stm32f10x_sdio.o
│   │   ├── stm32f10x_spi.crf
│   │   ├── stm32f10x_spi.d
│   │   ├── stm32f10x_spi.o
│   │   ├── stm32f10x_tim.crf
│   │   ├── stm32f10x_tim.d
│   │   ├── stm32f10x_tim.o
│   │   ├── stm32f10x_usart.crf
│   │   ├── stm32f10x_usart.d
│   │   ├── stm32f10x_usart.o
│   │   ├── stm32f10x_wwdg.crf
│   │   ├── stm32f10x_wwdg.d
│   │   ├── stm32f10x_wwdg.o
│   │   ├── stmflash.crf
│   │   ├── stmflash.d
│   │   ├── stmflash.o
│   │   ├── stopwatch.crf
│   │   ├── stopwatch.d
│   │   ├── stopwatch.o
│   │   ├── sys.crf
│   │   ├── sys.d
│   │   ├── sys.o
│   │   ├── system_stm32f10x.crf
│   │   ├── system_stm32f10x.d
│   │   ├── system_stm32f10x.o
│   │   ├── time.crf
│   │   ├── time.d
│   │   ├── time.o
│   │   ├── timedate.crf
│   │   ├── timedate.d
│   │   ├── timedate.o
│   │   ├── torch.crf
│   │   ├── torch.d
│   │   ├── torch.o
│   │   ├── tune.crf
│   │   ├── tune.d
│   │   ├── tune.o
│   │   ├── tunemaker.crf
│   │   ├── tunemaker.d
│   │   ├── tunemaker.o
│   │   ├── tunes.crf
│   │   ├── tunes.d
│   │   ├── tunes.o
│   │   ├── ui.crf
│   │   ├── ui.d
│   │   ├── ui.o
│   │   ├── usart.crf
│   │   ├── usart.d
│   │   ├── usart.o
│   │   ├── watchface.crf
│   │   ├── watchface.d
│   │   ├── watchface.o
│   │   ├── wwdg.crf
│   │   ├── wwdg.d
│   │   └── wwdg.o
│   ├── STM32F10x_FWLib
│   │   ├── inc
│   │   │   ├── misc.h
│   │   │   ├── stm32f10x_adc.h
│   │   │   ├── stm32f10x_bkp.h
│   │   │   ├── stm32f10x_can.h
│   │   │   ├── stm32f10x_cec.h
│   │   │   ├── stm32f10x_crc.h
│   │   │   ├── stm32f10x_dac.h
│   │   │   ├── stm32f10x_dbgmcu.h
│   │   │   ├── stm32f10x_dma.h
│   │   │   ├── stm32f10x_exti.h
│   │   │   ├── stm32f10x_flash.h
│   │   │   ├── stm32f10x_fsmc.h
│   │   │   ├── stm32f10x_gpio.h
│   │   │   ├── stm32f10x_i2c.h
│   │   │   ├── stm32f10x_iwdg.h
│   │   │   ├── stm32f10x_pwr.h
│   │   │   ├── stm32f10x_rcc.h
│   │   │   ├── stm32f10x_rtc.h
│   │   │   ├── stm32f10x_sdio.h
│   │   │   ├── stm32f10x_spi.h
│   │   │   ├── stm32f10x_tim.h
│   │   │   ├── stm32f10x_usart.h
│   │   │   └── stm32f10x_wwdg.h
│   │   └── src
│   │       ├── misc.c
│   │       ├── stm32f10x_adc.c
│   │       ├── stm32f10x_bkp.c
│   │       ├── stm32f10x_can.c
│   │       ├── stm32f10x_cec.c
│   │       ├── stm32f10x_crc.c
│   │       ├── stm32f10x_dac.c
│   │       ├── stm32f10x_dbgmcu.c
│   │       ├── stm32f10x_dma.c
│   │       ├── stm32f10x_exti.c
│   │       ├── stm32f10x_flash.c
│   │       ├── stm32f10x_fsmc.c
│   │       ├── stm32f10x_gpio.c
│   │       ├── stm32f10x_i2c.c
│   │       ├── stm32f10x_iwdg.c
│   │       ├── stm32f10x_pwr.c
│   │       ├── stm32f10x_rcc.c
│   │       ├── stm32f10x_rtc.c
│   │       ├── stm32f10x_sdio.c
│   │       ├── stm32f10x_spi.c
│   │       ├── stm32f10x_tim.c
│   │       ├── stm32f10x_usart.c
│   │       └── stm32f10x_wwdg.c
│   ├── SYSTEM
│   │   ├── delay
│   │   │   ├── delay.c
│   │   │   └── delay.h
│   │   ├── sys
│   │   │   ├── sys.c
│   │   │   └── sys.h
│   │   └── usart
│   │       ├── usart.c
│   │       └── usart.h
│   ├── USER
│   │   ├── DebugConfig
│   │   │   ├── NWatch_STM32F103C8.dbgconf
│   │   │   └── Nwatch_STM32F103C8_1.0.0.dbgconf
│   │   ├── EventRecorderStub.scvd
│   │   ├── JLinkSettings.ini
│   │   ├── Listings
│   │   │   ├── Nwatch.map
│   │   │   ├── startup_stm32f10x_hd.lst
│   │   │   └── startup_stm32f10x_md.lst
│   │   ├── Nwatch.BAT
│   │   ├── Nwatch.uvguix.Administrator
│   │   ├── Nwatch.uvguix.M6800
│   │   ├── Nwatch.uvguix.Yummy
│   │   ├── Nwatch.uvoptx
│   │   ├── Nwatch.uvprojx
│   │   ├── main.c
│   │   ├── stm32f10x.h
│   │   ├── stm32f10x_conf.h
│   │   ├── stm32f10x_it.c
│   │   ├── stm32f10x_it.h
│   │   ├── system_stm32f10x.c
│   │   └── system_stm32f10x.h
│   ├── Watch
│   │   ├── alarm.c
│   │   ├── alarm.h
│   │   ├── alarms.c
│   │   ├── alarms.h
│   │   ├── animation.c
│   │   ├── animation.h
│   │   ├── appconfig.c
│   │   ├── appconfig.h
│   │   ├── battery.c
│   │   ├── battery.h
│   │   ├── buttons.c
│   │   ├── buttons.h
│   │   ├── common.h
│   │   ├── config.h
│   │   ├── debug.h
│   │   ├── diag.c
│   │   ├── diag.h
│   │   ├── display.c
│   │   ├── display.h
│   │   ├── draw.c
│   │   ├── draw.h
│   │   ├── english.h
│   │   ├── functions.h
│   │   ├── game1.c
│   │   ├── game1.h
│   │   ├── game2.c
│   │   ├── game2.h
│   │   ├── game3.c
│   │   ├── game3.h
│   │   ├── games.c
│   │   ├── games.h
│   │   ├── global.c
│   │   ├── global.h
│   │   ├── lang.h
│   │   ├── m_display.c
│   │   ├── m_display.h
│   │   ├── m_main.c
│   │   ├── m_main.h
│   │   ├── m_rtc.c
│   │   ├── m_rtc.h
│   │   ├── m_rtc_funcs.h
│   │   ├── menu.c
│   │   ├── menu.h
│   │   ├── millis.c
│   │   ├── millis.h
│   │   ├── normal.c
│   │   ├── normal.h
│   │   ├── pwrmgr.c
│   │   ├── pwrmgr.h
│   │   ├── resources.c
│   │   ├── resources.h
│   │   ├── settings.c
│   │   ├── settings.h
│   │   ├── sleep.c
│   │   ├── sleep.h
│   │   ├── sound.c
│   │   ├── sound.h
│   │   ├── stopwatch.c
│   │   ├── stopwatch.h
│   │   ├── time.c
│   │   ├── time.h
│   │   ├── timedate.c
│   │   ├── timedate.h
│   │   ├── torch.c
│   │   ├── torch.h
│   │   ├── tune.c
│   │   ├── tune.h
│   │   ├── tunemaker.c
│   │   ├── tunemaker.h
│   │   ├── tunes.c
│   │   ├── tunes.h
│   │   ├── typedefs.h
│   │   ├── ui.c
│   │   ├── ui.h
│   │   ├── util.h
│   │   ├── watchface.c
│   │   └── watchface.h
│   └── keilkilll.bat
├── debug.log
└── 自制环境监测手表——”E-watch“.rar

27 directories, 423 files

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复