summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2024-01-14 08:36:40 +0100
committerBirte Kristina Friesel <derf@finalrewind.org>2024-01-14 08:36:40 +0100
commit2d4fc52130da694336c4a1b8c11218ba8f2b58bb (patch)
tree25eaccb550e12c6c921b863e5108633981fdb59e
parente1f04347124f58b1fb536e381c837684e084407a (diff)
Documentation: Consistency with other NodeMCU drivers
-rw-r--r--README.md40
-rw-r--r--init.lua3
2 files changed, 26 insertions, 17 deletions
diff --git a/README.md b/README.md
index d471fe9..eca135a 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,34 @@
-# ESP8266 Lua/NodeMCU module for Vindriktning PM1006 particle monitor
+# ESP8266 Lua/NodeMCU module for Vindriktning PM1006 PM sensors
This repository contains an ESP8266 NodeMCU Lua module (`pm1006.lua`) as well
-as MQTT / HomeAssistant / InfluxDB integration example (`init.lua`) for the
-**PM1006** particulate matter (PM2.5) sensor found in IKEA Vindriktning.
+as MQTT / HomeAssistant / InfluxDB integration example (`init.lua`) for
+**PM1006** particulate matter (PM2.5) sensors found in IKEA Vindriktning.
## Dependencies
pm1006.lua has been tested with Lua 5.1 on NodeMCU firmware 3.0.1 (Release
-202112300746, integer build). Most practical applications (such as the example
-in init.lua) require the following modules.
+202112300746, integer build). It does not require any special modules.
+
+
+
+Most practical applications (such as the example in init.lua) need the
+following modules.
* gpio
* mqtt
* node
* softuart
* tmr
-* uart
* wifi
## Setup
-Connect the PM1006 sensor to your ESP8266/NodeMCU board as [documented by Hypfer](https://github.com/Hypfer/esp8266-vindriktning-particle-sensor).
+Connect the Vindriktning PCB to your ESP8266/NodeMCU board as [documented by
+Hypfer](https://github.com/Hypfer/esp8266-vindriktning-particle-sensor):
+
+* Vindriktning +5V → NodeMCU 5V
+* Vindriktning GND → ESP8266/NodeMCU GND
+* Vindriktning REST → NodeMCU D2 (ESP8266 GPIO4)
If you use a different UART pin, you need to adjust the softuart.setup call in
the examples provided in this repository to reflect that change. Keep in mind
@@ -38,8 +46,8 @@ port:on("data", 20, uart_callback)
function uart_callback(data)
local pm2_5 = pm1006.parse_frame(data)
- if pm25i ~= nil then
- -- pm2_5 contains PM2.5 value in µg/m³
+ if pm2_5 ~= nil then
+ -- pm2_5 : PM2.5 concentration [µg/m³]
else
-- invalid frame header or checksum
end
@@ -48,16 +56,17 @@ end
## Application Example
-**init.lua** is an example application with HomeAssistant integration.
-To use it, you need to create a **config.lua** file with WiFI and MQTT settings:
+**init.lua** is an example application with HomeAssistant integration. It uses
+oversampling to smoothen readings, and only reports the average of every group
+of ten readings. To use it, you need to create a **config.lua** file with WiFI
+and MQTT settings:
```lua
-station_cfg.ssid = "..."
-station_cfg.pwd = "..."
+station_cfg = {ssid = "...", pwd = "..."}
mqtt_host = "..."
```
-Optionally, it can also publish readings to an InfluxDB.
+Optionally, it can also publish readings to InfluxDB.
To do so, configure URL and attribute:
```lua
@@ -65,4 +74,5 @@ influx_url = "..."
influx_attr = "..."
```
-Readings will be stored as `vindriktning,[influx_attr] pm2_5_ugm3=...`
+Readings will be stored as `vindriktning[influx_attr] pm2_5_ugm3=%d.%d`.
+So, unless `influx_attr = ''`, it must start with a comma, e.g. `influx_attr = ',device=' .. device_id`.
diff --git a/init.lua b/init.lua
index 35d87e9..53fe306 100644
--- a/init.lua
+++ b/init.lua
@@ -1,4 +1,3 @@
-station_cfg = {}
publishing_mqtt = false
publishing_http = false
@@ -10,7 +9,7 @@ mqttclient = mqtt.Client(device_id, 120)
dofile("config.lua")
-print("ESP8266 " .. chip_id)
+print("Vindriktning " .. chip_id)
ledpin = 4
gpio.mode(ledpin, gpio.OUTPUT)