找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 22271|回復(fù): 42
打印 上一主題 下一主題
收起左側(cè)

使用stm32和esp8266制作一個(gè)網(wǎng)絡(luò)授時(shí)的時(shí)鐘

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:212149 發(fā)表于 2018-3-11 17:52 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
采用stm32f103c8t6制作了一個(gè)網(wǎng)絡(luò)時(shí)鐘,通過連接esp8266獲得網(wǎng)絡(luò)上的北京時(shí)間。這里提供一個(gè)數(shù)據(jù)的接口地址,如果大家有興趣學(xué)習(xí)一下的話,可以打開這個(gè)地址注冊一下申請一個(gè)接口:nowapicom/api
這里簡要的說一下制作這個(gè)網(wǎng)絡(luò)授時(shí)時(shí)鐘的思路,大概就是先使用串口調(diào)試助手調(diào)試好esp8266的波特率、工作模式等,然后將其連接入家庭的路由器,或者開啟手機(jī)熱點(diǎn)讓esp8266連接進(jìn)去。我這里設(shè)置其波特率為115200,工作模式為AP模式。設(shè)置好這些基本的參數(shù)之后,就是開啟單連接模式,連接入遠(yuǎn)程的tcp服務(wù)器,開啟透傳模式,發(fā)送get+數(shù)據(jù)商提供的key,獲得北京時(shí)間的信息,通過串口接收再數(shù)據(jù)處理獲得準(zhǔn)確的北京時(shí)間。之后通過stm32自帶的rtc時(shí)鐘進(jìn)行走時(shí),不需要實(shí)時(shí)接收,只需要在開機(jī)的時(shí)候接收即可。


注意:程序中使用了中文的顯示,可能oled也和各位的不匹配,如有用到的麻煩自己進(jìn)行修改調(diào)試。同時(shí)注意供電的穩(wěn)定!

stm32單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "oled.h"
  5. #include "key.h"
  6. #include "flash.h"
  7. #include "malloc.h"
  8. #include "usart.h"
  9. #include "text.h"
  10. #include "esp8266.h"
  11. #include "RTC.h"
  12. extern _calendar_obj calendar;
  13. void display_week(void);
  14. int main(void)
  15. {
  16.         delay_init();                     //延時(shí)函數(shù)初始化         
  17.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級(jí)分組2
  18.         uart_init(115200);                 //串口初始化為9600               
  19.         OLED_Init();                        //初始化液晶
  20.         LED_Init();         //LED初始化                                                                                                                     
  21.         KEY_Init();                                //按鍵初始化                                 
  22.         mem_init();                                //初始化內(nèi)存池           
  23.         OLED_Init();                        //初始化OLED  
  24.         OLED_Clear();
  25.         esp8266_init();
  26.         esp8266_get_shijian();
  27.         esp8266_get_time();
  28.         dispose_time_data();
  29.         RTC_Init();
  30.         while(font_init())                                //字體初始化
  31.         {
  32.                 OLED_ShowString(0,0,"chinese init error!!",16);
  33.         }
  34.         Show_Str(32,0,"年",16,0);
  35.         Show_Str(64,0,"月",16,0);
  36.         Show_Str(96,0,"日",16,0);
  37.         Show_Str(0,2,"日一二三四五六",16,0);
  38.         Show_Str(16,4,":  :",16,0);
  39.         display_week();
  40.         while(1)
  41.         {
  42.                 OLED_ShowNum(0,0,calendar.w_year,4,16);//年
  43.                 OLED_ShowNum(48,0,calendar.w_month,2,16);//月
  44.                 OLED_ShowNum(80,0,calendar.w_date,2,16);//日
  45.                 OLED_ShowNum(0,4,calendar.hour,2,16);//時(shí)
  46.                 OLED_ShowNum(24,4,calendar.min,2,16);//分
  47.                 OLED_ShowNum(48,4,calendar.sec,2,16);//秒
  48.                 if((calendar.hour==0)&&(calendar.min==0)&&(calendar.sec==0))
  49.                 {
  50.                         calendar.week+=1;
  51.                         if(calendar.week==8) calendar.week=1;
  52.                         display_week();
  53.                 }
  54.         }
  55. }


  56. void display_week(void)
  57. {
  58.         switch(calendar.week)
  59.                 {
  60.                         case(1):Show_Str(16,2,"一",16,1);break;
  61.                         case(2):Show_Str(32,2,"二",16,1);break;
  62.                         case(3):Show_Str(48,2,"三",16,1);break;
  63.                         case(4):Show_Str(64,2,"四",16,1);break;
  64.                         case(5):Show_Str(80,2,"五",16,1);break;
  65.                         case(6):Show_Str(96,2,"六",16,1);break;
  66.                         case(7):Show_Str(0,2,"日",16,1);break;
  67.                 }
  68. }
復(fù)制代碼

由于某些原因附件中的程序源碼已經(jīng)刪掉部分內(nèi)容,不能直接使用,僅供學(xué)習(xí)參考:
代碼片段下載: 程序源碼.rar (373.47 KB, 下載次數(shù): 513)

評分

參與人數(shù) 2黑幣 +108 收起 理由
stkh + 8 絕世好帖!
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏18 分享淘帖 頂4 踩
回復(fù)

使用道具 舉報(bào)

來自 42#
ID:501544 發(fā)表于 2019-11-17 22:53 | 只看該作者
你的這個(gè)函數(shù)在哪里????esp8266_get_shijian();
回復(fù)

使用道具 舉報(bào)

來自 41#
ID:189862 發(fā)表于 2020-8-26 17:07 | 只看該作者
esp8266_get_shijian();
沒有這個(gè)函數(shù)文件。
回復(fù)

使用道具 舉報(bào)

40#
ID:911286 發(fā)表于 2022-2-10 18:07 | 只看該作者
剛?cè)腴T一個(gè)月,根據(jù)里面的天氣函數(shù),腦補(bǔ)了代碼。原程序有一個(gè)bug,網(wǎng)絡(luò)沒有回應(yīng)的話,會(huì)卡死,導(dǎo)致
  1. void esp8266_get_shijian(void)
  2. {
  3. printf("GET http://apik780com:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json&HTTP/1.1\r\n");
  4. delay_ms(2000);
  5. }
復(fù)制代碼

RTC的時(shí)間也不顯示。正在解決。
回復(fù)

使用道具 舉報(bào)

39#
ID:781556 發(fā)表于 2020-8-27 08:47 | 只看該作者
樓主的是代碼片段,不應(yīng)稱為源碼,源開與不開都值得尊重,誤導(dǎo)難免招怨。
回復(fù)

使用道具 舉報(bào)

38#
ID:378732 發(fā)表于 2020-8-26 19:51 | 只看該作者
這個(gè)PCB厲害,還是雙層的?怎么做的?是不是孔鉆大點(diǎn),兩邊加焊錫?
回復(fù)

使用道具 舉報(bào)

37#
ID:119642 發(fā)表于 2020-4-1 21:00 | 只看該作者
這個(gè)真是純手工。電路板都是自己蝕的。
回復(fù)

使用道具 舉報(bào)

36#
ID:119642 發(fā)表于 2020-4-1 21:00 | 只看該作者
你這個(gè)是純手工啊。電路板都是自蝕的。這個(gè)牛了。
回復(fù)

使用道具 舉報(bào)

35#
ID:641608 發(fā)表于 2019-11-23 16:11 來自手機(jī) | 只看該作者
謝謝,學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

34#
ID:300101 發(fā)表于 2019-11-17 09:10 | 只看該作者
牛,很有用!感謝樓主的無私貢獻(xiàn)
回復(fù)

使用道具 舉報(bào)

33#
ID:119642 發(fā)表于 2019-11-16 20:50 | 只看該作者
真的很牛啊。板子都自己做了。
回復(fù)

使用道具 舉報(bào)

32#
ID:220020 發(fā)表于 2019-11-5 16:09 | 只看該作者
有原理圖嗎
回復(fù)

使用道具 舉報(bào)

31#
ID:633992 發(fā)表于 2019-11-1 18:48 | 只看該作者
不錯(cuò),很好
回復(fù)

使用道具 舉報(bào)

30#
ID:626134 發(fā)表于 2019-10-18 14:53 | 只看該作者
正是我想找的,參考下代碼
回復(fù)

使用道具 舉報(bào)

29#
ID:476785 發(fā)表于 2019-9-3 14:17 | 只看該作者
絕世好帖!!非常感謝樓主分享
回復(fù)

使用道具 舉報(bào)

28#
ID:606403 發(fā)表于 2019-9-2 16:37 | 只看該作者
學(xué)到了,謝謝分享
回復(fù)

使用道具 舉報(bào)

27#
ID:177900 發(fā)表于 2019-8-30 17:07 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

26#
ID:586417 發(fā)表于 2019-7-18 15:57 | 只看該作者
很有用“!感謝樓主的無私貢獻(xiàn)
回復(fù)

使用道具 舉報(bào)

25#
ID:582610 發(fā)表于 2019-7-11 21:40 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

24#
ID:228360 發(fā)表于 2019-7-2 17:25 | 只看該作者
謝謝分享,學(xué)習(xí)學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

23#
ID:138008 發(fā)表于 2019-5-7 14:36 | 只看該作者
厲害,把最重要的源碼部分給刪去........
回復(fù)

使用道具 舉報(bào)

22#
ID:524562 發(fā)表于 2019-4-29 16:32 | 只看該作者
好帖,學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

21#
ID:410945 發(fā)表于 2019-4-7 09:56 | 只看該作者

下載學(xué)習(xí),謝謝分享
回復(fù)

使用道具 舉報(bào)

20#
ID:305375 發(fā)表于 2019-3-17 22:20 | 只看該作者

謝謝分享
回復(fù)

使用道具 舉報(bào)

19#
ID:353239 發(fā)表于 2019-2-25 10:02 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

18#
ID:474696 發(fā)表于 2019-2-8 18:03 | 只看該作者
感謝分享!
回復(fù)

使用道具 舉報(bào)

17#
ID:345352 發(fā)表于 2019-2-7 13:13 來自手機(jī) | 只看該作者
還是網(wǎng)絡(luò)授時(shí)比較實(shí)際,GPS跟電波在室內(nèi)都收不到信號(hào)
回復(fù)

使用道具 舉報(bào)

16#
ID:463459 發(fā)表于 2019-1-7 10:56 | 只看該作者
不錯(cuò)不錯(cuò)
回復(fù)

使用道具 舉報(bào)

15#
ID:432865 發(fā)表于 2018-11-25 15:33 | 只看該作者
學(xué)習(xí)學(xué)習(xí),感謝分享
回復(fù)

使用道具 舉報(bào)

14#
ID:430257 發(fā)表于 2018-11-20 22:44 | 只看該作者
好東西
回復(fù)

使用道具 舉報(bào)

13#
ID:430197 發(fā)表于 2018-11-20 21:07 | 只看該作者
大佬   膜拜
回復(fù)

使用道具 舉報(bào)

12#
ID:430197 發(fā)表于 2018-11-20 21:06 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

11#
ID:430112 發(fā)表于 2018-11-20 19:35 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

10#
ID:158812 發(fā)表于 2018-11-9 10:29 | 只看該作者
這只使用ESP8266就 可以解決了,用ESP-12E這樣的模塊,本身就可以通過I2C驅(qū)動(dòng)OLED 了。
回復(fù)

使用道具 舉報(bào)

9#
ID:420325 發(fā)表于 2018-11-4 00:41 | 只看該作者
好東西 正在研究這方面 幫大忙了
回復(fù)

使用道具 舉報(bào)

8#
ID:411542 發(fā)表于 2018-10-24 11:17 | 只看該作者
贊!小白正在學(xué)習(xí)中......
回復(fù)

使用道具 舉報(bào)

7#
ID:307643 發(fā)表于 2018-10-18 21:14 | 只看該作者
網(wǎng)絡(luò)受時(shí)沒玩過。接口nowapi
回復(fù)

使用道具 舉報(bào)

6#
ID:411378 發(fā)表于 2018-10-17 21:18 | 只看該作者
學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

5#
ID:312383 發(fā)表于 2018-5-3 07:33 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

地板
ID:312383 發(fā)表于 2018-5-3 07:32 | 只看該作者
下載學(xué)習(xí),謝謝分享
回復(fù)

使用道具 舉報(bào)

板凳
ID:311588 發(fā)表于 2018-4-19 12:46 | 只看該作者
下載學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表