步驟1:零件
我正在使用ESP32 Feather,但其他任何功能都可以使用
1 5v繼電器
1 TIP31C轉(zhuǎn)換器
1個BLE服務(wù)器設(shè)備(任何信標設(shè)備)
由于ESP32的3V3數(shù)字輸出電壓和電流不足,因此TIP31C用于控制繼電器的方式
繼電器控制120V燈光,腕帶可檢測到人的存在。
步驟2:電路
此很簡單,ESP32的引腳號33到達晶體管的基極,因此我們可以添加5V VCC信號,并通過3V3電壓輸出控制更大的電壓,然后,通過繼電器我們可以控制120V
步驟3:代碼
#include “BLEDevice.h”
int Lampara = 33;
int Contador = 0; static BLEAddress *pServerAddress;
BLEScan* pBLEScan;
BLEClient* pClient;
bool deviceFound = false;
bool Encendida = false;
bool BotonOff = false; String knownAddresses[] = { “your:device:mac:address”};
unsigned long entry; static void notifyCallback(
BLERemoteCharacteristic* pBLERemoteCharacteristic,
uint8_t* pData,
size_t length,
bool isNotify) {
Serial.print(“Notify callback for characteristic ”);
Serial.print(pBLERemoteCharacteristic-》getUUID().toString().c_str());
Serial.print(“ of data length ”);
Serial.println(length);
} class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice Device){
//Serial.print(“BLE Advertised Device found: ”);
//Serial.println(Device.toString().c_str());
pServerAddress = new BLEAddress(Device.getAddress());
bool known = false;
bool Master = false;
for (int i = 0; i 《 (sizeof(knownAddresses) / sizeof(knownAddresses[0])); i++) {
if (strcmp(pServerAddress-》toString().c_str(), knownAddresses[i].c_str()) == 0)
known = true;
}
if (known) {
Serial.print(“Device found: ”);
Serial.println(Device.getRSSI());
if (Device.getRSSI() 》 -85) {
deviceFound = true;
}
else {
deviceFound = false;
}
Device.getScan()-》stop();
delay(100);
}
}
}; void setup() {
Serial.begin(115200);
pinMode(Lampara,OUTPUT);
digitalWrite(Lampara,LOW);
BLEDevice::init(“”);
pClient = BLEDevice::createClient();
pBLEScan = BLEDevice::getScan();
pBLEScan-》setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan-》setActiveScan(true);
Serial.println(“Done”);
} void Bluetooth() {
Serial.println();
Serial.println(“BLE Scan restarted.。..。”);
deviceFound = false;
BLEScanResults scanResults = pBLEScan-》start(5);
if (deviceFound) {
Serial.println(“Encender Lamara”);
Encendida = true;
digitalWrite(Lampara,HIGH);
Contador = 0;
delay(10000);
}
else{
digitalWrite(Lampara,LOW);
delay(1000);
}
} void loop() {
Bluetooth();
}
步驟4:用于燈光控制的PCB
我在原型PCB上制作了這個電路,以使事情變得更干凈。
第5步:完成
然后您完成了!
您可以使用此代碼打開門,或控制其他事情
責(zé)任編輯:wv
-
檢測器
+關(guān)注
關(guān)注
1文章
866瀏覽量
47721 -
藍牙
+關(guān)注
關(guān)注
114文章
5835瀏覽量
170617
發(fā)布評論請先 登錄
相關(guān)推薦
評論