思路决定出路:ESP32 客流量统计,查找我的手机,车流量统计

31 篇文章 2 订阅
28 篇文章 2 订阅

 看到一个思路:利用手机蓝牙信号的采集判断客流量

用ESP32采集一下蓝牙信号的Mac地址,统计总数,时间段,重复频率等等,基本可以准确的判断一个地方客流量,这比找个人去数人头来的靠谱得多,也不用装个摄像头折腾一个人性物体识别(当然视频识别有更广泛的意义,例如性别和年龄段)。

虽然esp32折腾了很久,但是蓝牙模块很少直接用,注意调库不算用。

出于好奇就折腾了一番,原本是好奇这个蓝牙信号采集到底能收集到那些信息,最后却折腾到另外一个事情上了:蓝牙信号强度。

利用一个ESP32模块去采集另外一个模块的蓝牙信号强度。

这是一米五距离的强度

这是0.5米内的信号强度

当然这里采集双方都是esp32模块,注意信号强度是通过负值来体现的。 -59>-70 也确实体现了信号更强。

这个思路的拓展就是可以通过信号强度来大概判断设备的位置:

举例,我手机不知道放哪里了,又找不到第二个手机拨打一下,于是就可以通过这个设备查找手机蓝牙,然后依照蓝牙设备的信号强度判断手机的距离:

#include <Arduino.h>
#include <TFT_eSPI.h>
#include "xfont.h"
#include <BluetoothSerial.h>
#include <BTScan.h>


TFT_eSPI tft;
BluetoothSerial BtSerial;

int scanTime = 5; // In seconds

void setup()
{
   

    Serial.begin(115200);
    Serial.println("Scanning...");
       tft.begin();
    tft.setRotation(1);
    tft.fillScreen(TFT_BLACK);
    tft.setTextColor(TFT_GREEN);
    DrawStr2(tft, 10, 50, "开始扫描。。。", TFT_GREEN);
    // BtSerial.
    BtSerial.begin("ESP32蓝牙");
    if (BtSerial.available())
    {
        Serial.print("蓝牙已经启动");
    }

 
}
#define BT_DISCOVER_TIME	4000
void loop()
{
     BTScanResults *pResults = BtSerial.discover(BT_DISCOVER_TIME);
     
     pResults->getCount();
    int bcnt = pResults->getCount();
    if(bcnt>0)tft.fillScreen(TFT_BLACK);
    for (int i = 0; i < bcnt; i++)
    {
        BTAdvertisedDevice *dev = pResults->getDevice(i);
        String r = String(dev->getRSSI());
        String n = String(dev->getName().c_str());
        // if(n=="乌龙大法师")continue;
        String display = "设备:" + n + " 强度:" + r;
        DrawStr2(tft, 2, 2 + i * 18, display, TFT_GREEN);
    }
    BtSerial.discoverClear();
    delay(20);
}

上面这段代码使用了自定义中文字库:

https://github.com/StarCompute/tftziku

扩展的思路就是可以用esp32 来做一个手机防丢设备,只要手机和esp模块信号丢失就可以蜂鸣报警,甚至可以不搜身的方式判断别人是否携带了我的手机。

如果做个APP也可以在手机反向查找esp32和其他蓝牙模块在哪里,触发一定条件后报警。

我靠,在写上面内容的时候,突然一下意识到 这可以做车辆计数啊,压根不用什么视频拍摄后用yolo来分析车辆和进行跟踪,要知道为了统计准确还需要划定区域。而现在你只要折腾一块esp32站到天桥上,等车辆经过采集其蓝牙设备信息就可以统计出车辆流量啊!

人类啊,你真可笑。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值