I am fairly certain the answer is no but perhaps someone can tell me what I am doing wrong…
I have a arduino(Adafruit Feather 32u4 to be specific) collecting weather and power data(wind speed,temp,humidity,volts2,amps2) which then talks to a remote Feather 32u4 over a rf69 radio at 900mhz which it then asks it for its battery info(volts,amps)
The power info is handled by 3 adafruit ina219 breakout which communicates by i2c.
All of my data is sent to a Raspberrypi every 5min by i2c which is initiated by the pi I also have an RTC that communicates over i2c to the pi.
Problem is randomly between 10min-3days the MAIN arduino stops responding to everything
So as far as the Arduino is concerned the Pi could ask for data at any point in the code execution the arduino cannot stop monitoring the Annemometer(wind speed) rotations as this would make for false wind speed data which is the main point.
so the arduino has an interrupt pin, and an interrupt timer as well as a watchdog timer… in addition to i2c calls… so is that to many interrupts? I am fairly certain that the issue resides with the way I am handling i2c by the pI
I am open to ideas about more reliable communication this thing needs to work for 6months on a remote site.
Basically I have a camera on a remote site that needs to record every time its windy and I also need to monitor the current weather. the Pi exists as a database server and as a VPN client to access the cameras over the LTE network
getData.c is the i2c request script from the pi that chron runs every 5min
Weather_i2c_Radio is the Main arduino unit
Remote_Cam_RX is the remote arduino unit
getData.c (5.78 KB)
Remote_Cam_RX.ino (5.52 KB)
Weather_i2c_Radio.ino (17.9 KB)