weatherstation/firmware
2022-09-09 09:04:48 +02:00
..
libraries Libraries 2022-05-09 09:34:49 +02:00
config.h Added user config flag to set wifi settings to static value. The flag disables the WiFiManager. 2022-09-07 15:03:29 +02:00
config_user.h.example Update of the example config file 2022-09-07 15:33:48 +02:00
constants.h Added a data validation check. The webupdater will output the result of the check and also the hbWebstat json data contain the valid flag now. Also only valid data will logged into the influxDB. 2022-08-28 13:47:10 +02:00
firmware.ino Added signal quality and wifi connect count to default web page. 2022-09-09 09:04:48 +02:00
influxdb.ino Some optical changes done in the code. Checks added to prevent influxdb write activity if no wlan connection is applied (influxdb 2 only). 2022-09-08 11:21:05 +02:00
README.md WifiManager reset feature added to webUpdater. 2022-05-14 19:38:58 +02:00
sensor_apds9930.ino Just commiting 2022-05-16 14:26:17 +02:00
sensor_apds9960.ino Just commiting 2022-05-16 14:26:17 +02:00
sensor_battery.ino Just commiting 2022-05-16 14:26:17 +02:00
sensor_bme280.ino Temperatur const value added to fix temperature issues. Updated user config example. Fixed wifi setup. 2022-05-15 22:47:23 +02:00
sensor_wind.ino Changed windspeed tp m/s 2022-05-18 19:08:55 +02:00
webUpdater.ino Added signal quality and wifi connect count to default web page. 2022-09-09 09:04:48 +02:00

øko weatherstatiøn firmware

How to get started with Arduino

https://git.okoyono.de/oko/weatherstation/wiki#flashing-the-firmware

FAQ

Why bundle external libs?

We decided to put these libs inside the project folder, because we have a lot of issues with finding the right libs (some libs need a specific version, some libs have no unique name, some libs are broken, ...). This is not a fine software engineering practice, but it was too much of a hassle to get this right, so we decided to put everything in version control. This way, we also can control the version of the lib, which makes the build process of this project more robust to changes.

You can update the libs using the Arduino IDE.

How to fix error: Can't find file config_user.h?

If you compile the source code and it can't find this file, this is intentional :) You need to create a config_user.h with your own settings. Use the config_user.h.example as a starting point.

How to fix java exception on Serial Port open?

That can happen with openjdk 8. Try a newer openjdk version (>9)

How can I add a new Sensor?

  • Create a file sensor_$sensorname.ino
  • Add flag to config_user.h (don't forget to update config_user.h.example
  • Add initialization method of sensor (should be named sensor_$sensorname_begin() to setup() in firmware.ino guarded with preprocessor flag
  • Create method without parameters returning a float and safe function reference into sensors array

Whats wrong with all the NaN's?

If a sensor does not produce a value the sensor value is Not a Number (NaN). InfluxDB client will filter NaN values before sending the data.

nanf() returns a float NaN. The argument can be used by library implementations to distinguish different NaN values in a implementation-specific manner.

Wishlist