65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 3 美元 WiFi 模块将 IoT 设备连接到 Azure Web 服务

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2015年3月5日

CPOL

3分钟阅读

viewsIcon

27137

将简单的设备变成 IoT 设备的最大问题之一是成本。ESP-8266 模块解决了这个问题。

引言

将简单的设备变成 IoT 设备的最大问题之一是成本。ESP-8266 模块解决了这个问题。使用 Arduino、Netduino 或 Raspberry Pi 设备连接大量设备很容易花费数百美元。这些设备也耗电量大,再加上布线的成本,使得这些解决方案的吸引力降低。只需大约 3 美元的价格,ESP-8266 模块就能提供简单性、WiFi 连接以及小于一英寸的正方形的紧凑尺寸等优势。

ESP-8266-01 模块

背景

软件栈是开源的,并利用 NodeMCU 的可安装 Lua 编程语言解释器。用于上传程序的实用工具包括 LuaLoader 和 LuaUploader 应用程序。Lua 和 Python 有许多相似之处。ESP-8266 可以是 WiFi 接入点、客户端或两者兼而有之。这使其成为 IoT 实现的理想选择。它具有 32 位微处理器以及内置的 WiFi 栈。基本型号具有两个通用 I/O 引脚以及串行数据输入和输出。它是一个 3.3 伏设备,因此可以由单个 3.3v 锂离子电池或一对传统的 1.5v 电池(甚至可充电电池)供电。

使用代码

要安装 Lua 解释器并上传程序,需要一个 3.3v 兼容的 USB 转串口适配器。大多数 USB 适配器的供电电流限制为 100ma,因此在传输时除了 USB 适配器外,还需要一个 5v 到 3.3v 的稳压器或电池组。程序上传完成后,不再需要 USB 适配器。有一个用户创建的文件名为 init.lua,设备在启动或重置时会自动加载该文件,它可以是完整的客户端解决方案。该文件还可以加载包含其他程序代码的辅助文件。init.lua 文件方便进行初始 WiFi 连接。

wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","password")
ip = wifi.sta.getip()

连接到您的网站

conn=net.createConnection(net.TCP) 
conn:dns("mywebsite.com",function(conn,ip) 
print(ip) 
conn:connect(80,ip)
conn:send("GET / HTTP/1.1\r\nHost: mywebsite.com\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n") 
end) 
 
conn:on("receive",function(conn,payload)
  print (payload)  
end)

在 Lua 中对 I/O 引脚进行编程非常简单。很容易将引脚设置为输入或输出,设置其状态,或使其浮动。ESP-8266 还有几个型号。有些型号的天线有印刷电路走线,有些使用芯片天线,有些使用外部天线。所有型号的 WiFi 范围都非常好。一些型号具有更多的 I/O 引脚,甚至具有模数转换和脉宽调制功能。一些公司制造带有 LED 或光敏电阻传感器的开发板。

Azure 解决方案

每个 ESP-8266 都会通过 HTTP 将其数据发送到 Azure Web 服务,该服务会将数据存储在数据库中。然后可以查询数据库以获取任何和所有数据,用于可视化状态、图表或其他分析。例如,开/关或光照强度只是众多可能性中的几个。

其他想法

最后,如果仍然需要基于 Arduino 的解决方案,则可以将库存的 ESP-8266 用作 WiFi 链路,并使用 AT 命令与 Arduino 交换串行数据。

最后

如果 ESP-8266 卡在无限循环中并且重置无法修复,可以使用 NodeMCUFlasher 应用程序重新安装固件。

© . All rights reserved.