I built a trip wire for the post box that I'm connecting. It's however based on a mercury tilt sensor so I'm really not sure whether I think it's a great idea putting it to use (at least not with a sturdy case...). However, I can share my code:
#define DIGITAL_INPUT_SENSOR 2 // The digital input you attached your motion sensor. (Only 2 and 3 generates interrupt!)
#define INTERRUPT DIGITAL_INPUT_SENSOR-2 // Usually the interrupt = pin -2 (on uno/nano anyway)
MyMessage msgTripped(CHILD_ID_TRIPPED, V_TRIPPED);
void setup()
{
gw.sendSketchInfo("Postal", "1.0");
gw.present(CHILD_ID_TRIPPED, S_MOTION);
pinMode(DIGITAL_INPUT_SENSOR, INPUT); // sets the motion sensor digital pin as input
}
void loop()
{
boolean tripped = digitalRead(DIGITAL_INPUT_SENSOR) == LOW;
if(tripped) {
gw.send(msgTripped.set("1")); // Send tripped value to gw
}
gw.sleep(INTERRUPT,FALLING, SLEEP_TIME);
}
Advantage of this sensor is fast and easy installing by the non qualified personal. The sensor is designed for large agriculture facility with many greenhouses where is needed to be controlled temperature and humidity, the atmospheric pressure is for control the motor of air inlet and outlet. With help of the sensor installed outside the greenhouse provide information about positive/negative pressure inside the greenhouse.
Finlay the software read accurate temp/humid value of the Si7021, and only atmospheric pressure of BMP180, the temperature sensor inside the BMP180 is used only by the sensor itself to provide accurate atmospheric pressure measurements.
The sensor can be used also for home automation, and drone applications where is needed correction of the UAV barometric sensor compared to the ground barometric sensor, also humidity measurement can help the pilot to calculate more accurate flying time.
@jesse said:
I found the solution on this page: http://mathertel.blogspot.com/2013/04/using-spi-bus-with-ethernet-sd-card-and.html
The key is setting the Chip Select (CS) line to be different for each module.
For the CC3000...
"#define ADAFRUIT_CC3000_CS 7"
Pin 7 is being used exclusively to select the Wifi module.
https://learn.adafruit.com/adafruit-cc3000-wifi/cc3000-breakout
For the NRF24L01+...
"RF24 radio(9,10);"
Pin 9 is being used for Chip Enable (CE) and Pin 10 is Chip Select (CS).
http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
http://maniacbug.github.io/RF24/classRF24.html
The other SPI pins: CLK, MISO, MOSI, are shared by the two modules and get wired in parallel.
Hi do you still have a Gateway code when using CC3000 and arduino Mega or UNO(if it fits)?
@GLAB No worries, was in a similar situation.. My perspective was on what the Node could be made to provide, not what could be done within Domoticz to address the requirement - eg Had heard of Dummy counters but had no experience nor understood their purpose, nor had ever used scripts.
I had been sending a logical ON/OFF as well as a cumulative total from the Node and hit the same hair-pulling scenario as yourself.
Now only the ON/OFF is sent and the short script makes the transposition within Domoticz to a dummy meter (I think kWhr) using the internal clock in Domoticz.
Have fun
@nono8223 I think it will be a good idea as long as there are people actively developing & supporting the platform now and in the future.
Recently the Raspberry Pi port (or Linux, in general) has been updated and included in the core library, so MySensors is no longer Arduino-only.
@nrf24_is_hard When I sent data between an Aduino and the RPi I discovered that I have to make the the receiving and the sending structs the same size AND the variables be on 4 byte boundaries. Change your char name[15] to char name[16]
Another challenge is that the number of bytes of type int are different. If I remember correctly, Arduino Uno is 2 bytes and RPi is 4 bytes.
To make matters worse, some compilers make the least significant byte the first byte of a word and others make it the last byte of a word. eg, sending the value 1 would be received as 16777216 (0x00000001 vs 0x01000000)
There are a lot more gotcha's
OSD