Giter VIP home page Giter VIP logo

emonth2's Introduction

emonTH V2.0

Low power wireless temperature and humidity node

V2.0 hardware revision adds support for SI7021 temperature and humidity. This sensor brings performance and power savings over the DHT22, see sensor folder of this repo for sensor evaluation and comparison.

The emonTH V2 is an open-source, wireless, battery powered temperature and humidity monitoring node.

Data from the emonTH is transmitted via wireless RF (433MHz) to an emonPi / emonBase web-connected base-station for logging to Emoncms for data logging, processing and graphing.

emonTH V2

Documentation

emonth2's People

Contributors

elias-rexometer avatar glynhudson avatar jonathandreyer avatar nmcgann avatar slyremarks avatar trystanlea avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

emonth2's Issues

Adjusting sensitivity of optical sensor

Based on my observations and testing done by @Kempson
https://community.openenergymonitor.org/t/adjusting-sensitivity-of-optical-pulse-sensor/8399/21

Rather than use the internal pull-up of the atmega, it's probably better to have an external pull-down and 0.1uF capacitor-to-gnd on the interrupt/signal line of the optical sensor. This would help decrease the sensitivity of the sensor and avoid light leakage issues. Also, the cap will help with noisy environments, as it did for my "connecting to RPi project".

Finding an good enough and balanced (reducing sensitivity vs maintaining strong output) pull-down value hasn't been done rigorously yet, when I get another sensor I'll do some checking, I've used a 50k pull-down and that worked fine on the RPi project.

Firmware improvements

Hello @TrystanLea, Hello everyone,

As explain in issue #15 related to the customization of encrypted key (here), what do you think of improvement code by cleanup code (remove excess space, ..) & activate CI to builds the firmware automatically.
I have already created two branches (clean-code & ci) to track these improvements.

Best regards,

Jonathan Dreyer

Config mode - check for serial keyword string does not work as expected

This is a follow-on from the "serial timeout for entry to config mode being too short" issue (#21). The increase to 4s did not help, it was still really tricky to get into config mode.

Actual problem is that once the first character has been received in getSettings() then getPass() is called which calls Serial.readBytes() with the default stream timeout (1s). If there is >1s delay between any character then Serial.readBytes() times out, the entire 5 character keystring is not received and the keystring test fails.

Solution is to avoid calling getPass() until at least 5 characters have been received. Until then, the 4s timeout is still running and if insufficient (or zero) characters are received then the timeout happens and the normal startup procedure continues.

There is a further related problem with Serial.parseInt() and Serial.parseFloat() timing out on multi-digit numeric entry, especially on commands with multiple numbers and spaces. This didn't seem to be much of a problem on simpler commands and can be further minimised by setting a slightly longer timeout via Serial.setTimeout().

I have a pull request to submit with a tested fix for these issues.

Node address DIP switch pin pullups consuming excess power when switches are set "on"

The two dip switch node address select pins (dip 1 and dip2) have internal pullups turned on with a value of 20k-50k. This amounts to between 66uA and 165uA continuous drain per pin with a 3.3V supply voltage when the switch is closed.

Solution is to turn off the pullup for switches set to zero so there is no static power drain.
if (!dip1) pinMode(DIP_switch1, INPUT); if (!dip2) pinMode(DIP_switch2, INPUT);

The obvious place to do it is in the power saving section of emonth2.ino when the other power saving measures are enacted.

Custom encryption key

Hello, I have implemented an option to build the firmware with a custom encrypted key. It is possible to see the modification here. Are you interested to integrate it into the repository?
Best regards,
Jonathan Dreyer

Initial values always Zero

Upon (re)inserting batteries the first payload is always all zeros (except pulse count which is always 1).

I haven't looked into this thoroughly yet, just making a note here at this stage for future investigation.

Either the settle time to the first packet needs extending, the first payload needs to be discarded or the order of events changed so only a properly populated payload is sent.

A zero temperature reading is often a valid temperature reading so a 0°C value should never be sent unless it is a true reading, this is why we moved to out of range 300°C error codes.

Plus there should never be an instance where 0v battery voltage is recorded, if the battery voltage was truly 0v, how was the data sent?

Calibration mode entry timeout of 2 seconds is too short (v4.1.5)

It is very tricky to type all the characters required to enter calibration mode within 2 seconds. I am using Putty on a PC so it means typing +, + , +, control-shift-m, control-shift-j (with the + characters requiring a shift too on my laptop keyboard).

[note: unmodified Putty does not have a way of sending \r\n in a single keystroke]

The original 5 seconds would be much easier, I can do it in 4 without having to do anything special like leaving a finger pressing the shift key down.

Node ID

Hi,

I tried to upload the firmware myself with the programmer and change dhe Node ID in the src.ino. So the first one went ok, ID 30.

The second one should have been ID 25. But when I uploaded it, it became ID 27. Unknown to me I realised (after a while) that the DIP switches are set from ID 23 to 26. We inherited the emonTH which was already ID 25 before, so the DIP switches were set for that, so when one set the ID to 25 in the firmware (instead of leaving it at ID 23) the resulting ID becomes +2.

It would have been clearer if this was mentioned in the comments of the firmware after the Node ID line in the src.ino, line 84. It would be also helpful if there is a guideline which numbers one can use, the wiki says up to 30 emonTH, but now I wonder which NodeIDs are those that we can set manually via firmware (it seems that one should use 23, 24, 25, 26 for manual node ID settings).

Perhaps it should be mentioned in the wiki that node changes can be done with firmware updates.
https://wiki.openenergymonitor.org/index.php/EmonTH_V1.5#DIP_Switch_node_ID

Thanks!

Adding sd card

Hi! This looks like a really cool project! Do you feel it is simple to add an sd card to the emonth2 or are the required pins not available on the board?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.