1.21. 扫描周围的WiFi热点

这一节教程中,我们将初步体验BlueFi的WiFi。

BlueFi的名字从何而来?Blue(Tooth-Wi)Fi,真正地实现蓝牙和WiFi同时共存的单板机。在蓝牙键盘那一节中我们已经体验过BlueFi的蓝牙的便 捷性,然而蓝牙仅仅局限于10米以内的无线电波通讯解决方案,而且近几年发展起来的低功耗蓝牙(BLE)技术使得蓝牙耳机拥有百亿级市场,这也是我 们以非常慎重的态度来增强BlueFi的蓝牙技术的缘由。

最近的IoT设备是NFC(近场通讯)技术(只能解决2厘米以内的无线电波通讯),IoT的最后几米是蓝牙,那么IoT的最后几十米是WiFi。据业内人士的专业 预测,新兴的WiFi6技术将与5G技术将分庭抗争室外和室内的无线电波通讯技术应用领域,各自都会有巨大的市场潜力。近两年的4G资费急剧下降, 室外的甚至部分室内的无线电波通讯方案已经让我们可以放弃WiFi,但是室内尤其非工业现场的住宅和办公区域仍是WiFi的天下,WiFi6是非常有竞争 力的方案。

目前,WiFi是几十米到数百米距离内的无线电波通讯技术的最佳选择,虽然还有其他的选择,但综合考虑设备、流量和资费等成本,WiFi的确是无可争议 的无线电波通讯方案。那么WiFi的工作原理是啥样?从本节开始,我们通过一系列的教程帮助你逐步理解这一重要的IoT技术原理和实现方法。

本节先使用BlueFi的WiFi通道让你初步体验“scan周围WiFi热点”,任何WiFi设备,只要具备交互能力,scan周围热点是其最重要的基础功能之一。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
  import time
  from hiibot_bluefi.wifi import WIFI
  from hiibot_bluefi.basedio import NeoPixel
  wifi = WIFI()
  pixels = NeoPixel()
  pixels.fillPixels( (255,0,0) )
  if wifi.esp.status != 0xFF:
      pixels.fillPixels( (0,255,0) )
      print("WiFi be found and in idle mode")

  print("MAC addr:", [hex(i) for i in wifi.esp.MAC_address])

  for ap in wifi.esp.scan_networks():
      print("\t%s  RSSI: %d" % (str(ap['ssid'], 'utf-8'), ap['rssi']))

  pixels.fillPixels( (0,0,255) )
  wifi.esp.reset()
  print("Program Done!")

  while True:
      pass

本示例程序只实现BlueFi发现周围的WiFi热点,并按信号强度有高到低的顺序列出来。请将本示例程序保存到BlueFi的 /CIRCUITPY/code.py文件中,BlueFi将开启内部WiFi通道,在LCD屏幕上显示自己的MAC地址,并开始扫描周围WiFi热点,最后把scan到的 热点按信号强度顺序地列出来,程序结束。

WiFi单元属于BlueFi上功率最大的组件,当我们使用WiFi完毕后,应使用“wifi.esp.reset()”关闭WiFi功能以达到节能之目的。