Needed in order for the following to work: See this thread on achieving an RFM69 Gateway & RFM69 nodes. See this thread on installing openHAB/MQTT on a local network-connected computer.
Parts: I used this MQ-2 Smoke Hydrogen Butane LPG Methane Sensor with analog output. I also used 3 color-coded male to female dupont cables to connect the sensor to the Buono Uno Arduino compatible. The wiring diagram below displays other parts needed.
This source gives an introduction to the MQ sensors. Besides smoke, this sensor is supposed to sense flammable and combustible gasses. I assume we need to place the sensors where they would earliest detect what we are watching for, like ceiling placement for smoke.
Readings from the MQ2 sensor are not valid until a few minutes ( 2 or 3 ??) after it is powered & its heater warms up. When first powered in clear air, my sensor output 225, 113, 79, 67, 61, 57, 56, 53, 52 & eventually mostly low 40's. Then light smoke raised the detected value to the 70's. Close breath raised it to 100.
From here, download the latest choose_nodes sketch & follow the basic customization in that thread. That node sketch now includes an MQ_Gas option which will send a change of gas/smoke status every 60 seconds. (I tweaked code Joshua provided earlier.)
Near the sketch's end, see version updates & credits. See the links in this post for documentation on several kinds of nodes you can program with this sketch.
In addition to the above basic customization ...
// #define MQ_Gas << UNcomment this line (delete //)
#define NODEID 05 << change 05 to a unique number in your RFM69 network (For this node, I suggest you use NODEID 70 as I will below.)
Search for the sketch's first "#ifdef MQ_Gas" Then a few lines later see ...
#define mqThreshhold 100 // papa: reading above this = gas or smoke detected bool gasFlag = 0 ; // papa: below mqThreshhold = 0, above mqThreshhold = 1
Via experimentation, adjust mqThreshhold for your purposes.
By this time, you should have at least an RFM69 Gateway (see this post above) & an Gas/Smoke Node 70 programmed for NetworkOne.
When the Gateway is local network-connected & running, the node was programmed with DEBUG, the node is USB-connected to the Arduino IDE computer, & the Arduino IDE Serial Monitor is opened: immediately & then every 60 seconds, you should see four device values:
1) device 02 (Radio Signal Strength), 2) dev 04 (node voltage), 3) dev 09 (how many times the node tried to resend data before the gateway acknowledged receiving), 4) dev 70 (Gas/Smoke Risk value).
In addition on the Serial Monitor, you will see if the Gas/Smoke value is below or above the threshold set for concern.