Arduino ESP8266/ESP32

Obwohl die Programmierung in C/C++ nicht so freundlich und vielseitig ist wie die in Lua, gibt es doch reichlich Argumente im Netz, an Stelle von Lua die Arduino IDE zur Programmierung einzusetzen.

Unabhängig davon ist Lua als Sprache eine interessante Erfahrung. Die Implementierung auf NodeMCU kann aber mitunter recht frustrierend sein.

In https://internetofhomethings.com/homethings/?p=424 sind Gründe zusammen getragen, welche das Leben mit NodeMCU/Lua schwer machen können. In meinem Buch “Building an IoT Node for less than 15 $” konnte ich solche Erfahrungen auch selbst schon machen.

Zur Programmierung des ESP8266 mit der Arduino IDE gibt es mittlerweile eine gute Unterstützung. Unter Github ist die erforderliche ESP8266 Erweiterung der Arduino IDE zu finden. In vergleichbarer Weise kann der ESP32 mit einer ESP32 Erweiterung für Arduino programmiert werden.

Die beiden Bücher von Kolban können hier zusätzlich Unterstützung bieten:

 

Advertisements
Arduino ESP8266/ESP32

Use AM2315 for temperatures below 0°C

am2315-temp-humidity-sensorIn an IoT node I use an AM2315 sensor to measure temperature and humidity. This sensor can be connected via   I2C bus to a NodeMCU module. The results of these periodic measurements are presented here.

On my location these days we had negative temperature on the Celsius scale for the first time in this autumn.

What happened? I had to see wrong temperatures in my graphs.

I looked for the root cause and found that in the used library AM2315.lua the range below 0°C was not handled. The MSB of the temperature value is set in the case of negative temperatures. Therefore I masked this bit and if set the value is multiplied by -1. If you use customized firmware the bit module must be included.

Here are the modified lines for AM2315.lua:

h = string.byte(b[3]) * 256 + string.byte(b[4]) --humidity
h = h / 10
-- MSB is set for negative temperature
t = bit.band(string.byte(b[5]), 127) * 256 + string.byte(b[6]) --temperature
t = t / 10
if bit.isset(string.byte(b[5]), 7) then t = -1 * t end

You will find these modifications on https://github.com/tectiv3/am2315-lua, now.

Finally, here is a temperature graph from today. Winter is coming now 😉

negtemp

Use AM2315 for temperatures below 0°C