Blinker 語音控制 51單片機 點燈


Blinker 語音控制 51單片機 點燈

Blinker

在這里插入圖片描述
blinker是一套跨硬件、跨平台的物聯網解決方案,提供APP端、設備端、服務器端支持,使用公有雲服務進行數據傳輸存儲。可用於智能家居、數據監測等領域,可以幫助用戶更好更快地搭建物聯網項目。

blinker特性

●其由服務器端、app端、設備端組成,可以部署到幾乎所有物聯網平台
●ap端支持ios、android
●設備端可以使用藍牙、WiFi、MQTT等方式接入,支持Arduino、freeRTOS、mbed OS、Linux等開發平台
●服務器端可以部署到阿里雲、騰訊雲、OneNET、百度雲、AWS、google cloud等平台
●通過界面布局器,DIY用戶可自己拖拽布局設備控制界面,自由打造你的物聯網設備●通過專屬SDK,認證用戶可以使用Blinker開發自己的產品,並用於商業用途blinker

應用場景

●快速開發物聯網/智能家居/無線遙控項目
●手機/語音助手控制設備
●藍牙ble/局域網WiFi/遠程MQTT接入設備

Arduino

Arduino是一款便捷靈活、方便上手的開源電子原型平台。包含硬件(各種型號的Arduino板)和軟件(ArduinoIDE)。由一個歐洲開發團隊於2005年冬季開發。其成員包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。
它構建於開放原始碼simple I/O介面版,並且具有使用類似Java、C語言的Processing/Wiring開發環境。主要包含兩個的部分:硬件部分是可以用來做電路連接的Arduino電路板;另外一個則是Arduino IDE,你的計算機中的程序開發環境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板后,程序便會告訴Arduino電路板要做些什么了。
Arduino能通過各種各樣的傳感器來感知環境,通過控制燈光、馬達和其他的裝置來反饋、影響環境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進制文件,燒錄進微控制器。對Arduino的編程是通過 Arduino編程語言 (基於 Wiring)和Arduino開發環境(基於 Processing)來實現的。基於Arduino的項目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運行的軟件,他們之間進行通信 (比如 Flash, Processing, MaxMSP)來實現。
在這里插入圖片描述

學習過程

步驟

  1. 注冊點燈科技賬號,注冊米家賬號
  2. 米家綁定其他設備平台點燈科技blinker
  3. 點燈科技blinker平台創建一個設備選擇為Arduino,獲取密鑰
  4. 使用arduino ide 使用nodemcu(esp8266模塊) 下載代碼(串口發送數據)
  5. 51單片機進行進行串口操作,串口接收數據,進行操作。
  6. ArduinoIDE 開發esp8266

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

軟件部分

Arduino 代碼

* *****************************************************************
 * 
 * Blinker 庫下載地址:
 * https://github.com/blinker-iot/blinker-library/archive/master.zip
 * 
 * Blinker 是一套跨硬件、跨平台的物聯網解決方案,提供APP端、設備端、
 * 服務器端支持,使用公有雲服務進行數據傳輸存儲。可用於智能家居、
 * 數據監測等領域,可以幫助用戶更好更快地搭建物聯網項目。
 * 
 * 如果使用 ESP8266 接入 Blinker,
 * 請確保安裝了 2.5.0 或更新的 ESP8266/Arduino 支持包。
 * https://github.com/esp8266/Arduino/releases
 * 
 * 如果使用 ESP32 接入 Blinker,
 * 請確保安裝了 1.0.2 或更新的 ESP32/Arduino 支持包。
 * https://github.com/espressif/arduino-esp32/releases
 * 
 * 文檔: https://doc.blinker.app/
 *       https://github.com/blinker-iot/blinker-doc/wiki
 * 
 * *****************************************************************/

#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT

#include <Blinker.h>

char auth[] = "ff07996779a7";//設備密鑰//很重要的
char ssid[] = "MERCURY_3DE2";//你的wifi或者熱點名稱
char pswd[] = "88888888";//你的wifi或者熱點密碼


#define LED D1


void miotPowerState(const String & state)
{
  BLINKER_LOG("need set power state: ", state);

  if (state == BLINKER_CMD_ON) 
  {
    digitalWrite(LED, LOW);
    Serial.print(1);

    BlinkerMIOT.powerState("on");
    BlinkerMIOT.print();
  }
  else if (state == BLINKER_CMD_OFF)
  {
    digitalWrite(LED, HIGH);

    BlinkerMIOT.powerState("off");
    BlinkerMIOT.print();
    Serial.print(0);
  }
}

void setup()
{
    Serial.begin(9600);   

    pinMode(LED, OUTPUT);
    digitalWrite(LED, LOW);

    Blinker.begin(auth, ssid, pswd);
    
    BlinkerMIOT.attachPowerState(miotPowerState);
}

void loop()
{
    Blinker.run();
}

STC89C51代碼

#include <reg52.h>

sbit LED =P2^0;

unsigned char a;

void ConfigUART(unsigned int baud)  //串口配置函數,baud為波特率
{
    SCON = 0x50;   //配置串口為模式1
	
    TMOD= 0x21;  //配置T1為模式2
		
    TH1 = 256 - (11095200/12/32) / baud;  //計算T1重載值
    TL1 = TH1;     //初值等於重載值
	
    ET1 = 0;       //禁止T1中斷
 
    ES = 1;   //打開串口中斷
	
    EA = 1;   //打開總中斷
	
	  TR1 = 1;       //啟動T1
}

void main ()
{
    ConfigUART(9600);  //配置波特率為9600

    while(1);
}


void InterruptUART() interrupt 4
{
	if (RI)  //接收到字節
	{
		RI = 0;  //手動清零接收中斷標志
				
		a=SBUF;
				
		if(a =='1')
		    P2=0x00;//全部亮
		else 
		    P2=0xff;//全部滅
				
		SBUF=a;
   }
	
    if (TI)  //字節發送完畢
    {
      TI = 0;  //手動清零發送中斷標志位
    }  
}

硬件部分

  1. STC89C5x系列單片機
  2. nodemcu esp8266 WIFI模塊
  3. 串口連接部分
    nodemcu ---- STC89C5x單片機
    RX --> TX
    TX --> RX

參考資料

  1. Arduino ESP8266 學習 單片機菜鳥的博客
    https://blog.csdn.net/dpjcn1990?t=1
  2. 嗶哩嗶哩-UP主–雅痞1900
    https://space.bilibili.com/397351217?spm_id_from=333.788.b_765f7570696e666f.2
    (這個東西不不是我搞的,我只是把這個東西寫成了一個筆記,畢竟一個渣渣,只能靠白嫖維持)
  3. 視頻學習(主要還是嗶哩嗶哩UP主提供的資料–嗶哩嗶哩)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM