蓝牙低功耗存在检测器的制作教程

电子说

1.3w人已加入

描述

步骤1:零件

我正在使用ESP32 Feather,但其他任何功能都可以使用

1 5v继电器

1 TIP31C转换器

1个BLE服务器设备(任何信标设备)

由于ESP32的3V3数字输出电压和电流不足,因此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步:完成

然后您完成了!

您可以使用此代码打开门,或控制其他事情

责任编辑:wv 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分