精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于STM32的WiFi聯網自動校準時鐘設計

電子電路開發學習 ? 來源:電子電路開發學習 ? 2024-10-15 13:39 ? 次閱讀

以下文章來源于電子電路開發學習 ,作者wcc149

項目概述:

之前在uFUN試用群里看到管理員說試用活動快結束了,要抓緊完成評測總結,看大家的評測總結也都寫了,我也不能落后啊!正好最近做的擴展板到手了,于是趕緊進行調試,做了一個不用校準的時鐘,時鐘這種小設計應該說是爛大街了吧!

我一開始學習51的時候做了個可按鍵校準,帶鬧鐘功能的時鐘,學習STM32的時候做。了個可以手機藍牙APP校準的時鐘,現在又用uFUN開發板做了個時鐘。不過,時鐘這個的英文聯網校準的由于之前做過桌面天氣預報時鐘,如下圖所示:

所以,這個聯網校準時鐘的小項目實現起來還是很順利的,底板是使用的uFUN開發板,擴展板是自己設計的,使用PCIe的接口和uFUN開發板進行通訊。使用ESP8266 WiFi模塊獲取北京標準時間,然后對STM32內部的RTC進行校準,再通過OLED顯示出來。

我知道,這個小項目無論是PCB的設計,還是控制程序的編寫,對于論壇里一些有著多年經驗的大佬來說,這個小項目簡直不值一提,我只不過是班門弄斧罷了。有不對的地方,歡迎各位大佬拍磚!

擴展板資源簡介:

0.96寸OLED屏,IIC接口,128 * 64像素,通過外部電路的修改,可支持8080并口,SPI接口。

W25Q128,SPI接口,可以用來存儲字庫,配合uFUN開發板的SD卡功能,可以實現字庫的更新

AT24C02,EEPROM,IIC接口,掉電不丟失,可以用來保存一些用戶數據

SHT20,IIC接口溫濕度傳感器

5個LED,1個電源指示,4個用戶LED,這四個LED都連接到了定時器的通道,可通過PWM占空比控制亮度

1個光敏電阻,把光照強度轉換為AD電壓值,可以實現根據外界亮度控制OLED屏的亮度。

1個OLED模塊接口,可外插IIC接口的OLED模塊

藍牙/ WiFi的模塊兼容接口設計,可支持HC-05藍牙模塊,或者是原子的ESP8266模塊。

1個DHT11溫濕度傳感器模塊接口

擴展板原理圖設計:

wKgZoWcOAFmAMrm8AAGVhg_XgI4296.jpg

電源電路

從uFUN的原理圖可以看出,的PCIe擴展口中有5V電源,數字地,模擬3.3V,模擬地,而沒有引出數字3.3V電源,為了不干擾模擬3.3V,擴展板的3.3V電源來自5V經過AMS117穩壓,AMS117-3.3是一款比較常用的LDO電源芯片,最大可提供1A的輸出電流,對于擴展板來說是足夠用了。

OLED電路

OLED外圍電路,參考中景園官方推薦的電路,使用的是IIC接口,因為之前沒用過IIC總線掛載多個從機,為了避免調不通,所以OLED的IIC接口使用了獨立的管教,同時上拉4.7K電阻

W25Q128電路

W25Q128是采用的SPI通訊協議,正好擴展接口中有SPI接口,所以就用了STM32的硬件SPI2接口,當然也可以軟件模擬。

AT24C02電路

實際上焊接的是ST公司的M24C64,目前讀寫還沒調通,和底板的LIS3DH共用一組IIC總線。

SHT20電路

正好上次做板子,買的SHT20還剩幾片,所以在這個擴展板上,也使用了這款傳感器,這款數字溫濕度傳感器體積非常小,只有3 * 3 * 1.1mm,和底板的LIS3DH共用一組IIC總線,后面調試正常,可以獲取到溫濕度數據。

無線藍牙兼容接口

偶然發現HC-05和原子的ESP8266模塊接口幾乎一樣,所以這部分設計成了兼容兩種模塊的接口,如下圖所示:

wKgaoWcOAFmAP-8dAAEKlnHK4Pk123.jpg

其他電路

4路LED都連接到了STM32的定時器輸出通道,可以用來控制亮度,另外也充分利用了擴展口留出的模擬電源和模擬地,通過簡單的分壓原理,可以把光照強度轉換為AD電壓值,還增加了OLED模塊接口和DHT11溫濕度傳感器接口。

擴展板PCB設計

結構的設計

SHT20官方推薦的放置方式是在板子邊緣挖個島出來,然后把傳感器放進去,這樣能最大程度的減少板子熱量的傳遞,從而提高精度,但是,由于擴展板面積較小,再挖個島出來,看著太難看了,就沒有挖。

wKgZoWcOAFmAdTX3AABAXJPcyFo576.jpg

板子的整體結構圖來自于前一段時間,@張進東張工在uFUN試用群里分享的AD版本的PCB圖,那個圖是這樣的:

wKgaoWcOAFmAegjIAAHJ-zluOP8601.jpg

我進行了稍微的修改,把安裝孔右邊多余的部分去掉了,而且為了和底板一致,我把擴展板改成了圓角,但是接口和安裝孔的相對位置沒動,板子的TOP面:

wKgaoWcOAFmAAI0EAAIChNsdnm0814.jpg

封裝的選擇

電阻電容封裝的選擇上,一開始覺得板子空間比較小,怕放不下所有的元器件,幾乎所有的電阻和電容都選擇了0402封裝,同時也出現了一個比較尷尬的事,就是有1種電容和1種電阻,嘉立創SMT的基礎庫里沒有,擴展庫里才有,而如果使用擴展庫里的元件,需要加每種20元的換料費,所以最終打板多花了40元,這一點也是我沒有考慮到的。等投板之后,我又嘗試著把所有的電阻電容封裝都換成0603的,發現也能放得下。

元件的布局布線

元件布局方面,為了防止元器件放在背面和底板的部分元件沖突,同時也為了滿足嘉立創只能單面貼片的工藝要求,我把所有的元件都放在了TOP面,BOTTOM面只放了OLED裸屏的接口,為了方便連接外部的模塊,把接口都放在了板子的邊緣,LED也放在了板子邊緣,由于SHT20是DFN封裝,為了方便后面使用風槍進行焊接,周圍留出了一點空間。

板子的BOTTOM面:

wKgZoWcOAFmAEy4vAAIUI4IyCPc360.jpg

3D效果顯示:

wKgZoWcOAFmAAExtAAHRwv0yFW0324.jpg

wKgaoWcOAFmAac-hAAEhX8_l35E408.jpg

我用的是AD9版本,3D效果渲染的還是挺不錯的。

PCB的打樣和調試:

不知道今年是不是板材降價了,各大PCB板廠都在降價,去年做畢業設計的板子時還是50元5片1010cm以內,今年就是30元5片1010以內,而且連彩色油墨費都不收了。PCB打樣和SMT貼片還是選擇了之前用過的嘉立創,5片全貼,一共花了191大洋

生產工藝方面時,由于嘉立創只支持綠油進行SMT,所以只能用看著比較LOW的綠色油墨,其實我更喜歡藍色油墨,而且和底板很搭!其他的工藝如過孔蓋油、有鉛噴錫,由于只是樣板,就沒有選擇鍍金工藝了,所以金手指成了錫手指,外加倒斜邊,倒斜邊是金手指板卡常用的一種工藝,是為了能夠方便的插到插槽里面。

還要注意非常非常重要的一點:PCB板的厚度,其實這個我一開始設計的時候就考慮過,使用之前做的1.6mm的板子試著往里面插了一下,發現根本插不進,網上也沒搜到PCIe的板子應該做多厚,所以就選擇了比1.6稍微薄一點的1.2mm厚度。詳細的生產工藝:

wKgZoWcOAFmAGxpcAACVBe3--yI440.jpg

PCB生產進度和SMT進度:

wKgZoWcOAFmAMMpfAAEBWI8F4pc863.jpg

由于板子比較簡單,從下單到發貨大概用了3天的時間吧,實際的樣板圖片:

wKgaoWcOAFmAb3_3AAGeTBJllS4633.jpg

板子拿回來一插,發現還是稍微厚了點,不能完全插進PCIe座里面,而且底板的銅柱還不能對準擴展板的安裝孔。

wKgaoWcOAFmAGfzzAAEYPtyMtrs010.jpg

后來請教了 @張進東 張工,原來只需要1.0mm就夠了,斜著插進去往下一壓,再用銅柱固定就行。不過我用暴力手段解決了一下,直接用剪刀剪掉了一段金手指,還好金手指上面的銅箔沒有掉,這樣才勉強能用一個螺絲固定好,安裝效果如文章第一張圖:

wKgZoWcOAFmALi_uAAHn1wyz6vE562.jpg

就這么不完美的解決了,不過還是有幾個管腳接觸不良,如DHT11接口的那個引腳,稍微松動一點就不能用,不過已經板載了溫濕度傳感器,倒也影響不大。然后就試著點亮了OLED屏,先顯示個uFUN的LOGO吧:

wKgaoWcOAFmAMlWBAAEN4Zukvwk789.jpg

到這里覺得應該沒啥問題了吧,開始調試WiFi接口,使用的是引出的串口3來和WiFi模塊進行通訊,由于之前的程序是用的串口2,所以又稍微改了一下,調了半天,還是不通,就把同樣的程序下載到其他板子上,沒問題啊!難道是接觸不好,最后一查,是uFUN的原理圖中PB10和PB11的網絡標號也反了,導致擴展板的TX和RX反了,這可怎么辦呢?

wKgZoWcOAFmAVZQ8AADwv8V0PQ0711.jpg

又舍不得浪費板子啊!所以把原來TX和RX連接的兩根線割斷,重新飛了兩根線,完美解決!這線飛的可沒有uFUN開發板上的那根飛線漂亮!

wKgZoWcOAFmAbC-CAAGGWyk8NAw045.jpg

另外,擴展板IIC總線上的24C02讀寫一直沒調通,不知道是物料的問題還是讀寫時序的問題,而同是IIC總線上的SHT20溫濕度傳感器就沒問題。另外由于本項目中沒有用到過多的中文,所以SPI Flash也沒用到。

控制程序的設計:

可能是由于字庫文件沒有進行精簡,所以整個程序占用了非常多的空間,總是報內存不足的錯誤,為了能跑起來,我把單片機型號改成了STM32F103RE系列,由于RE系列比RC系列的存儲空間要大的多,并沒有報錯誤,而且程序可以正常運行,雖然都是大容量產品,程序可以兼容,但這是一種非常不推薦的方式。

實現思路:

實現原理就是:STM32驅動ESP8266 GET北京時間的接口,得到一串JSON數據,然后STM32調用cJSON庫進行解析,獲取到時間信息,然后把這個時間信息寫入到RTC寄存器,STM32內部RTC從當前時間開始運行,然后顯示到OLED屏上,程序中設置的是每隔10分鐘,獲取一次時間。北京標準時間的來源使用了K780數據的API接口,地址:

http://api.k780.com:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json

這是JSON格式的,數據的解析使用了開源的JSON解析庫cJSON,只有兩個文件,使用起來還是比較簡單的。

主要功能:

STM32 RTC的使用。

OLED的驅動,支持68 ASCII碼顯示,816 ASCII碼顯示,16*32數字0-9和冒號:的顯示,漢字“周一二三四五六日”的顯示。

ESP8266的驅動,和北京標準時間服務器接口建立TCP連接。

cJSON庫解析接收的JSON數據,獲取北京時間,年月日,時分秒。

關于JSON格式的說明和cJSON庫的使用,可以參考我之前寫的兩篇文章:

使用cJSON庫解析JSON

JSON簡介

很多API接口的數據格式都是JSON格式的,如我之前做的桌面天氣預報時鐘,使用的是心知天氣的數據源,就是JSON格式,網上也有很多免費的API接口,可以做出很多好玩的東西,就看你的想象力了!

不足之處:

斷電不能走時

這算是這個程序最大的一個BUG吧,雖然uFUN開發板有超級電容備用電池接著,但一直沒調通斷電走時的功能,這種情況帶來的一個問題就是,如果不插WiFi模塊的情況下重新上電,是不能從上次保存的時間繼續運行的。

程序不夠精簡

為了能讓程序運行起來,把單片機改成大容量型號,應該從根本上精簡字庫,優化程序大小。

GET請求偶爾會失敗

偶爾會出現發送GET請求,接收不到數據的情況,可能是內存分配的問題。

總結:

這個小項目總得來說,硬件調試方面比較坎坷,又是飛線,又是割板子的。而軟件調試方面,由于之前做過類似的設計,所以還是比較順利的。由于評測活動的時間關系,本次評測的大作業我只做了這個簡單的聯網校準時鐘。

其實,有了WiFi/藍牙模塊接口和OLED屏,就可以做很多好玩的東西了,比如選擇一個開放的云平臺,如中移OneNET等等,然后和云臺進行一些交互,如采集溫濕度上傳到云平臺做個溫濕度遠程監測系統,或者是遠程控制LED或者蜂鳴器,桌面天氣預報等。

下面這幾個界面是我去年在學校時,使用中移OneNET云平臺做的一些界面:

wKgaoWcOAFqAaur5AAET5M6B3VI366.jpg

wKgaoWcOAFqACJNIAADRhuNA0qk553.jpg

wKgZoWcOAFqAAiQIAADr_-4-OfM594.jpg

對于uFUN開發板的整體評測過程來說,雖然配套的文檔存在一些瑕疵,在之前的評測文章中,我也都有提到,但是不影響新手入門STM32,況且論壇里還有那么多的入門教程,也希望我的這些評測文章能對那些剛入門STM32的小伙伴們有一些幫助,少走一些彎路。據說2.0版本的開發板已經在進行緊鑼密鼓的開發中了,當然,如果能有幸得到2.0版本開發板的使用機會,我會試著做一些遠程控制相關的小項目。期待ing。。。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2266

    文章

    10876

    瀏覽量

    354922
  • 時鐘
    +關注

    關注

    10

    文章

    1721

    瀏覽量

    131377
  • WIFI
    +關注

    關注

    81

    文章

    5291

    瀏覽量

    203314
  • 擴展板
    +關注

    關注

    0

    文章

    53

    瀏覽量

    11381

原文標題:基于STM32的WiFi聯網自動校準時鐘

文章出處:【微信號:mcu149,微信公眾號:電子電路開發學習】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于at89c51單片機的6位可校準時鐘

    本帖最后由 eehome 于 2013-1-5 10:08 編輯 基于at89c51單片機的6位可校準時鐘電路proteus
    發表于 11-24 14:39

    CS101校準時為什么要用0.5歐姆

    請問有知道的么?為什么CS101校準時要用0.5歐姆的電阻啊?
    發表于 07-26 22:06

    數碼管校準時閃爍案例——附帶proteus仿真

    個人網上查找資料,然后自己修改總結的。希望對那些需要的人有所幫助。數碼管校準時閃爍案例——附帶proteus仿真
    發表于 09-14 22:15

    stm32使用外部精準時鐘

    使用外部精準時鐘#include "rcc_driver.h"http://1.硬件初始化:72MHzvoid rcc_init(void){//0.將RCC設置為缺省狀態
    發表于 08-19 06:30

    STM32U5 ADC在校準時掛起的原因?如何解決?

    我有一個 nucleo-U575ZI-Q,可以很好地運行 ADC 的示例。但是,當我嘗試使用 STM32CubeMX 制作自己的項目時,代碼在 ADC 校準時掛起。我已經檢查了十幾次設置并將它們與示例進行比較,但找不到任何不同之處。任何見解都會有所幫助。謝謝
    發表于 02-02 06:38

    STM32F2實時時鐘RTC

    RTC系統框圖和組件? 時鐘源和分頻器? 硬件日歷和警報? 自動喚醒定時器? 特色功能? 數字粗略校準? 參考時鐘? 外部引腳上的導出和導入功能? 輸出:警報、定時信號、
    發表于 09-13 07:07

    采用GPS測量監控技術校準高精度晶振時鐘的設計方案介紹

    圖1是一個應用于通信系統的GPS校準時鐘原理結構。本文采用的是10MHz帶電壓調節的恒溫晶振,通過時鐘芯片產生61. 44MHz的信號。但僅由晶振和時鐘芯片產生的時鐘信號的精度不能滿足
    的頭像 發表于 11-16 08:09 ?3725次閱讀
    采用GPS測量監控技術<b class='flag-5'>校準</b>高精度晶振<b class='flag-5'>時鐘</b>的設計方案介紹

    時控開關怎么自動校準時間,具體操作步驟的介紹

    之所以要校準時間,是為了確保定時的準確性,(老式按鍵式)時控開關進行校時,一般都是手動的,先連按取消/恢復鍵4次,解鎖屏幕。按校時按鈕校對小時,校分按鈕校對分鐘,校星期按鈕校對星期(不同品牌
    發表于 10-10 12:01 ?6052次閱讀

    基于STM32 ESP8266的WIFI TFT自動校時天氣預報設計

    本設計使用stm32作為主控,采用esp8266作為網絡接入模組,可實現自動校準時間以及獲取天氣信息等功能! 該項目成本低廉,主要功能為自動校時與天氣預報,改方案解決了現有電子
    的頭像 發表于 12-07 11:09 ?5354次閱讀

    基于STM32WiFi網絡授時時鐘方案設計

    電路設計上增加了儲能電容可以在斷電一個月后保持時間數據不丟失; ? ? 責任編輯:xj 原文標題:基于STM32WiFi網絡授時時鐘設計(包含原理圖、PCB程序) 文章出處:【微信公眾號:電路設計技能】歡迎添加關注!文章轉載請
    的頭像 發表于 01-27 14:07 ?4365次閱讀
    基于<b class='flag-5'>STM32</b>的<b class='flag-5'>WiFi</b>網絡授時<b class='flag-5'>時鐘</b>方案設計

    尋找合適的基準時鐘分配

    尋找合適的基準時鐘分配
    發表于 03-20 17:11 ?7次下載
    尋找合適的基<b class='flag-5'>準時鐘</b>分配

    基于uFUN開發板和擴展板的聯網校準時鐘

    小設計應該說是爛大街了吧!我一開始學習51的時候做了個可按鍵校準、帶鬧鐘功能的時鐘,學習STM32的時候做了個可以手機藍牙APP校準時鐘
    發表于 12-08 15:06 ?11次下載
    基于uFUN開發板和擴展板的<b class='flag-5'>聯網校準時鐘</b>

    為什么儀器校準時總會產生誤差?存在哪些影響因素?

    儀器校準是一項繁瑣的工作,根據不同的儀器所需要校準的方法和規劃也會不同,使用的校準儀器更是各種各樣,因此即便是專業的儀器校準機構,在校準時
    的頭像 發表于 07-25 14:16 ?2084次閱讀

    怎樣才可以讓wifi時鐘聯網

    要讓WiFi時鐘聯網,可以按照以下步驟進行操作: 一、準備工作 確保WiFi環境穩定 :首先,確保你的家庭或工作環境中有穩定的WiFi網絡,
    的頭像 發表于 09-07 09:23 ?1534次閱讀

    準時鐘科普:關于北斗衛星同步時鐘的那些事?

    準時鐘科普:關于北斗衛星同步時鐘的那些事?
    的頭像 發表于 10-29 09:28 ?232次閱讀
    京<b class='flag-5'>準時鐘</b>科普:關于北斗衛星同步<b class='flag-5'>時鐘</b>的那些事?