1. #include "ESP8266WiFi.h"
  2.  
  3. #include "math.h"
  4. //d = 10^(A-(abs(rssi)) / (10 * n)) 信号强度
  5. #define N 45 //N = 10 * n ,其中n为环境衰减因子,3.25-4.5
  6. #define A -35 //接收机和发射机间隔1m时的信号强度
  7.  
  8. void setup() {
  9. Serial.begin(115200);
  10. WiFi.mode(WIFI_STA);
  11. // WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
  12. // WiFi.softAP("215-wifi","1234567890");
  13.  
  14. WiFi.disconnect();
  15. delay(100);
  16. Serial.println("Setup done");
  17.  
  18. }
  19.  
  20. void loop() {
  21. Serial.println("scan start");
  22. // WiFi.scanNetworks will return the number of networks found
  23. int n = WiFi.scanNetworks();
  24. Serial.println("scan done");
  25.  
  26. if (n == 0) {
  27. Serial.println("no networks found");
  28. } else {
  29. Serial.print(n);
  30. Serial.println(" networks found");
  31. for (int i = 0; i < n; ++i) {
  32. // Print SSID and RSSI for each network found
  33. Serial.print(i + 1);
  34. Serial.print(": ");
  35. Serial.print(WiFi.SSID(i));
  36. Serial.print(" (");
  37. Serial.print(WiFi.RSSI(i));
  38. Serial.print(")");
  39.  
  40. //接收信号强度指示算法(RSSI)
  41. //A为定位节点与参考点之间的距离d为 1m 时测得的 RSSI 值;
  42. //n为信号衰减因子,范围一般为2~4。
  43. /*
  44. double log (double); 以e为底的对数
  45. double log10 (double);以10为底的对数
  46. double pow(double x, double y);计算以x为底数的y次幂
  47. float powf(float x, float y); 功能与pow一致,只是输入与输出皆为浮点数
  48. */
  49.  
  50. float iu, distance;
  51. iu = (float)(A-WiFi.RSSI(i) ) / (float)N;
  52. distance = powf(10.0, iu);//计算以x为底数的y次幂 功能与pow一致,只是输入与输出皆为浮点数
  53.  
  54. Serial.print("distance:---"); Serial.println(distance);
  55.  
  56. }
  57. }
  58.  
  59. delay(3000);
  60. }

  

wifi测距的更多相关文章

  1. 室内定位系列(一)——WiFi位置指纹(译)

    原文:<Advanced Location-Based Technologies and Services>--chapter 2 WiFi Location Fingerprint 作者 ...

  2. 痞子衡嵌入式:一表全搜罗常见短距离无线通信协议(Wi-Fi/Bluetooth/ZigBee/Thread...)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是常见短距离无线通信协议. 短距离无线通信是物联网的基础,随着物联网IoT的火热发展,各种短距离无线通信协议也是层出不穷,这些协议标准各有 ...

  3. 麻省理工大学新发明:暗黑WiFi透视技术

    美国麻省理工学院(MIT)宣布,该大学的研究人员开发出了一种可以通过WiFi信号来检测人体移动情况的系统(Wi-Vi).据MIT介绍,该系统可以检测出钢筋混凝土墙壁背后的人体移动情况,其未来可以被作为 ...

  4. Kali对wifi的破解记录

    好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...

  5. 很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天说下这些格式,明天做个demo

    有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用. 在看之前你可以扫一扫下面几个二维码先看看效果: 1.二维码生成 网址 (URL) 包含网址的 二维码生成 是大家平时最常接触 ...

  6. 乐乎环球WiFi

    乐乎环球WiFi招商加盟 随身WiFi设备 乐乎环球Wifi是由北京蔚蓝创智科技有限公司研发的产品,是一款可以在全球100多个国家和地区实现免漫游4G高速上网的随身WiFi设备.和普通MiFi设备相比 ...

  7. 为什么房间的 Wi-Fi 信号这么差

    最近把家里主卧整成了个小影院,由于之前房子装修时网线端口与电源插口布置太少,导致家庭网络架设变得麻烦起来,最后终于通过「无线中继」技术达到了全屋满格 Wi-Fi 的效果. 在 Wi-Fi 架设过程中, ...

  8. win10更新系统后wifi连接不上了怎么解决?

    遇到了一个小问题,由于更新了一下win10,发现wifi不能用了,以为是wifi密码错了,选择忘记密码试了两次,又试了不同的wifi都不行,发现网卡无线驱动也没事,在网上百度了好久发现说的方法都没用, ...

  9. 树莓派 连接wifi与路由器ip绑定

    先推荐几个手机软件 在酷安网里应该能找到 1.JuiceSSH  橘子ssh软件  手机连上路由器 就可以控制局域网内的树莓派 2.VNC Viewer  远程桌面软件VNC 也是连接局域网的树莓派 ...

随机推荐

  1. 面向对象的JavaScript-003

    1. // Since JavaScript doesn't exactly have sub-class objects, prototype is a useful workaround to m ...

  2. 洛谷 P3478 [POI2008]STA-Station

    题目描述 The first stage of train system reform (that has been described in the problem Railways of the ...

  3. Ubuntu的SWAP设置

    1. 在Ubuntu中配置使用新创建的Swap分区 Command list: 查找Swap分区的UUID sudo blkid 在/ect/fstab中加入新的Swap分区 sudo gedit / ...

  4. 兼容低于IE9不支持html5标签的元素的方法

    方法一: <!--[if lt IE9]> <script>    (function() {     if (!      /*@cc_on!@*/     0) retur ...

  5. Go 笔记和疑问?

    前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请 ...

  6. ServiceStack.Redis.RedisNativeClient的方法“get_Db”没有实现。

    项目中用到redis,用nuget导入,但是运行时遇到问题 Exception: “Com.JinYiWei.Cache.RedisHelper”的类型初始值设定项引发异常.System.TypeIn ...

  7. C# Winform 跨线程更新UI控件常用方法总结(转)

    出处:http://www.tuicool.com/articles/FNzURb 概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件 ...

  8. (4)WePHP 模板引入CSS js

    模板有两个定义了两个常量 父类已经定义好了 //模板常量 $dirStr=dirname($_SERVER['SCRIPT_NAME']); $dirStr=$dirStr=='\\'?NULL:$d ...

  9. servlet及xml文件处理流程

    启动项目----会找到web.xml文件---跳转到默认jsp----页面重定向----转到xml.文件下 通过<servlet-mapping>映射找到<servlet>标签 ...

  10. jQuery Mobile的使用方法

    安装:  <link rel="stylesheet" href="下载到本地的文件目录.min.css" media="screen" ...