久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 715|回復: 2
打印 上一主題 下一主題
收起左側

C51解析天貓精靈隊友的協議用于改裝語音控制開關 附單片機程序

[復制鏈接]
跳轉到指定樓層
樓主
事情是這樣的,某魚淘了一些一兩塊錢的天貓精靈隊友香薰機主板,
可以用天貓精靈控制,但是只能噴霧用,噴霧呢,又是間歇的,間隔幾分鐘噴一次。
想用他這個噴霧信號來改裝排插開關是不可能了。
于是用電腦抓了一下他的串口協議
發現每次開關都會先發一串FF 00 00 06 82 開頭的指令
研究了一下發現是有規律的
當FF 00 00 06 82 02 xx=00的時候是關機, 當xx=01的時候是開機。

知道了這個就好辦了,找個51單片機掛在串口這里,解析他的指令就可以 了。
當我收到FF 00 00 06 82 02 01時候,就把排插電源接通。
當我收到FF 00 00 06 82 02 00時候,就把排插電源斷開。

這樣我就可以通過天貓精靈的自定義場景功能來實現語音開關插座了。
在天貓精靈APP里面自定義場景,
當我對天貓精靈說:打開插座時,打開香薰電源;
當我對天貓精靈說:關閉插座時,關閉香薰電源;

這樣就可以制作丐版的智能排查了,當然也可以通過香薰機的預約功能進行預約排查開啟時間。

小白_SCH.pdf

151.88 KB, 下載次數: 5, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:512651 發表于 2024-11-5 17:30 | 只看該作者
代碼寫的比較爛,湊合也能用,見笑了 N79E8132天貓精靈解析開關執行UART.zip (69.98 KB, 下載次數: 4)
  1. #define Uart_Port_Sel   0x00
  2. #include <stdio.h>
  3. #include "N79E81x.h"
  4. #include "Typedef.h"
  5. #include "Define.h"
  6. #include "Common.h"
  7. #include "Delay.h"
  8. #include "Version.h"

  9. UINT8 u8Uart_Data;

  10. u8 RxBuf[16];
  11. u8 TxBuf[16];
  12. u8 StuNum[] = "201918060210";
  13. bit bRxFlag = 0;
  14. u8 RxLth = 0;
  15. u8 TxLth = 0;
  16. u8 Rxcounter = 0;
  17. u8 Txcounter = 0;
  18. u8 RxStus = 0;
  19. u8 RxFunc = 0;


  20. void Delay_ms(u16 ms)
  21. {
  22.         unsigned char i, j;

  23.         while(ms--)
  24.         {
  25.                 ;;//_nop_();
  26.                 i = 2;
  27.                 j = 199;
  28.                 do
  29.                 {
  30.                         while (--j);
  31.                 } while (--i);
  32.         }
  33. }

  34. //-----------------------------------------------------------------------------------------------------------
  35. void main (void)
  36. {
  37.     AUXR1 |= Uart_Port_Sel;             // Select P10/P11 as UART pin(default)
  38.     InitialUART0_Timer1(9600);          // 9600 Baud Rate @ 11.0592MHz
  39.        
  40.                 TxBuf[0] = 0x4a;                //前導    0x4a  
  41.                 TxBuf[1] = 0x43;                //前導    0x43
  42.                 TxBuf[2] = 0x0a;                //地址    0x0a        學號:10
  43.                 TxBuf[3] = 0x01;                //功能號  1
  44.                 TxBuf[4] = 0x01;                //長度    1
  45.        
  46.     Show_Version_Number_To_PC();
  47.     printf ("\n*===================================================================");
  48.     printf ("\n*  Name: N79E84x Series UART Sample Code.");
  49.     printf ("\n*===================================================================");
  50.     printf ("\n UART receive a byte and transmit the same byte to PC.\n");
  51.     ES = 1;                             // Enable serial interrupt
  52.     EA = 1;                             // Enable global interrupt

  53.     while(1);                          // Endless

  54. }

  55. //開
  56. //FF 00 00 06 82 02 01 CE 41 00 9A
  57. //關
  58. //FF 00 00 06 82 02 00 CF 41 00 9A

  59. void UART_ISR(void) interrupt 4
  60. {
  61.         u8 tmp;
  62.         static u8 sum = 0;
  63.         if(RI){
  64.                 RI = 0;
  65.                 tmp = SBUF;
  66.                 switch(RxStus){
  67.                         case 0 :        //前導
  68.                                 if(tmp == 0xFF)
  69.                                         RxStus = 1;
  70.                                 break;
  71.                         case 1 :        //前導
  72.                                 if(tmp == 0x0)
  73.                                         RxStus = 2;
  74.                                 break;
  75.                         case 2 :        //地址
  76.                                 if(tmp == 0x0){       
  77.                                         RxStus = 3;
  78.                                         sum = tmp;
  79.                                 }
  80.                                 break;
  81.                         case 3 :        //功能號
  82.                                 if(tmp == 0x06){
  83.                                         RxStus = 4;
  84.                                         sum = tmp;
  85.                                 }
  86.                                 break;
  87.                         case 4 :        //長度
  88.                                 if(tmp == 0x82){       
  89.                                         RxStus = 5;
  90.                                         sum = tmp;
  91.                                 }
  92.                                 break;
  93.                         case 5 :        //數據
  94.                                 if(tmp == 0x02){
  95.                                         RxStus = 6;
  96.                                         sum = tmp;
  97.                                 }
  98.                                 break;
  99.                         case 6 :        //校驗
  100.                                 if(tmp == 0x01)        P02=0;                       
  101.                                 else if(tmp == 0x00)P02=1;
  102.                                
  103.                                 RxStus = 7;
  104.                                 sum = tmp;
  105.                                
  106.                                 break;
  107.                                
  108.                                
  109.                         default :
  110.                                 RxStus = 0;
  111.                                 Rxcounter = 0;
  112.                                 break;
  113.                 }
  114.         }
  115.        
  116.        
  117.         if(TI){
  118.                 TI = 0;
  119.                 if(Txcounter < TxLth){
  120.                         SBUF = TxBuf[Txcounter++];
  121.                 }
  122.                 else{
  123.                         Txcounter = 0;
  124.                         TxLth = 0;
  125.                 }
  126.         }
  127. }
復制代碼




回復

使用道具 舉報

板凳
ID:433219 發表于 2024-11-6 10:05 | 只看該作者
  分析協議,找出規律,,,好玩的DIY
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97视频在线观看网站 | 国产日韩欧美精品一区二区 | 一区二区三区视频在线 | 国产成人综合网 | 欧美日韩三区 | www.夜夜骑 | 成人欧美一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 欧美激情一区 | 久久国产精彩视频 | 鲁一鲁资源影视 | 国产高清久久 | 国产欧美精品一区二区色综合朱莉 | 欧美成视频 | 精品久久国产老人久久综合 | 国内精品久久久久 | 天天激情综合 | 天天色综 | 久久久不卡网国产精品一区 | 91免费在线看| 午夜爽爽男女免费观看hd | 国户精品久久久久久久久久久不卡 | 久久精品亚洲 | 国产日韩视频 | 欧洲亚洲精品久久久久 | 羞羞视频免费观看 | 99精品在线| 国产欧美视频一区二区三区 | 亚洲精品国产电影 | 高清久久 | 黄色三级免费网站 | 夜夜摸天天操 | 日韩网站在线 | 一区二区三区在线 | 人人看人人搞 | 国产精品一区二区久久精品爱微奶 | 欧洲毛片 | 成人精品一区二区 | 日韩欧美亚洲一区 | 激情欧美日韩一区二区 | 超碰av在线 |