Falconry Carrier Box Automation Package

Hi.

I'm a 55 y/o FALCONER / hobbyist / EE & Computer Science Educated guy but no experience with Arduino. I DO have tons of experience with PLC's from working in manufacturing.

We falconers need to transport our bird(s) from place to place, so, I built a 2-compartment "box" to carry the birds which is attached to my vehicle towing receiver. Basically stole an idea from guys who transport their hunting dogs.

Time to "automate"!

A friend gave me his son's collection of Arduino stuff, so I have an UNO, a Red Board, a couple of HX711s, a 1602 Keypad Shield, a DHT-22, breadboards, jumpers, components, etc. Certainly enough to get started.

I have connected the Arduino and dumped some code and monitored the serial port... that's about it.
Weird how some demo code compiles fine, some doesn't. I'm continuing to "play" with the stuff.

Now... the project:

Each of the vented compartments would have:

Integrated scales to show the weight of the birds using the HX711 in each compartment.
CO Monitoring using the MQ-7.
Temp Monitoring using the DHT-22.
Magnetic Door Switch.

Centrally, there would be a 12V Battery Supply, charged from the vehicle trailer connector.
Vehicle connector would also control "tail lights" mounted on the receiver mounted "box".
Additional "features".
Circulating fan(s) to bring in fresh air.
Battery level monitoring.
PIR motion sensing triggers tail lights as "warning" to would be idiots.

Additional:
Need to be able to zero scales (to allow for temp fluctuation), tare the scales (to allow for stuff we attach to the bird, like anklets/leash/transmitter).
Want SMS notifications if any levels/events (CO, Temp, Battery, Door Switch, PIR, disconnect from vehicle) are detected.
Want to send SMS Status requests to get weight(s).
Want to use SMS to perform Zero and Tare functions. SIM7600?
GPS Tracking so I can keep up with my hunting spots?

SO..... Have I picked the right platform? Scale of 1 to 10 what is difficulty? Plenty of examples?
I have looked at the SeveralThingsAtTheSameTime.ino example and that gave me encouragement.

Thanks in advance for any feedback!

Tim

I think you need to work on this in small stages.

For each device write a short program to learn how to control it, or get data from it. Don't try to integrate things until you can get them all working individually. If you run into a problem it will be much easier to help if you can post a short single-purpose program.

Because you know you will want to use them all in the same project, as you experiment with each one use Arduino I/O pins that don't conflict with the other devices.

Also, if you have a look at Planning and Implementing a Program you should see how you can organise the code in your individual programs so they are easy to integrate into a bigger program.

As you build your knowledge it will become clearer whether they can all work together with your Uno. I'm always reluctant to make a complete list of parts when I have no experience of the parts. As I learn I find that my ideas for implementing a project may change.

...R

@Robin2
Really good advice.

@OP
I would press hard on the required hardware. Hardware get worn and brakes. Design the hardware to be simple, reliable and safe. No software will manage to handle jamed hardware. Think about how the hardware can be interfaced to the elctronics and its software.

Robin2:
I think you need to work on this in small stages.

Also, if you have a look at Planning and Implementing a Program you should see how you can organise the code in your individual programs so they are easy to integrate into a bigger program.

Railroader:
No software will manage to handle jamed hardware. Think about how the hardware can be interfaced to the elctronics and its software.

Guys. Thanks for the input. I have a LOOOONG way to go, but you gotta start somehwere.

If you don't mind another question... how do you know which LIBRARY is the best to include for a particular device? I'm going to use the DHT22 so the range is great enough to handle the coldest weather but I'm finding more than a few libraries!

This is my "start":
//LIBRARIES NEEDED
//MQ-7 CO Sensor Library
#include <MQ7.h>
//DHT-22 Sensor Library
#include <DHT22.h>
//Loadcell Converter Library
#include <HX711.h>

// HX711 circuit wiring (DIGITAL PINS 2,3,4,5 USED)
const int LOADCELL_DOUT_PINL = 2;
const int LOADCELL_SCK_PINL = 3;
const int LOADCELL_DOUT_PINR = 4;
const int LOADCELL_SCK_PINR = 5;
HX711 scaleL;
HX711 scaleR;

void setup(){
Serial.begin(9600);
scaleL.begin(LOADCELL_DOUT_PINL, LOADCELL_SCK_PINL);
scaleR.begin(LOADCELL_DOUT_PINR, LOADCELL_SCK_PINR);
}

void loop(){

//SUBROUTINE CALLS
readtemperatureL();
readtemperatureR();
readCOL();
readCOR();
readbattery();
readdoorswitches();
readPIRs();
readscaleL();
readscaleR();
}

//SUBROUTINES
void readtemperatureL(){

}
void readtemperatureR(){

}
void readCOL(){

}
void readCOR(){

}
void readbattery(){

}
void readdoorswitches(){

}
void readPIRs(){

}
void readscaleL(){
if (scaleL.is_ready()) {
long reading = scaleL.read();
Serial.print("HX711 reading: ");
Serial.println(reading);
} else {
Serial.println("HX711(L) not found.");
}

delay(1000);
}
void readscaleR(){
if (scaleR.is_ready()) {
long reading = scaleR.read();
Serial.print("HX711 reading: ");
Serial.println(reading);
} else {
Serial.println("HX711(R) not found.");
}

delay(1000);
}

Libraries are not any miracly solving pieces. Create a system design, called "Top down", not the opposite, starting from the bottom.
No library in the world will fix a poor system design.

timscottyoung:
If you don't mind another question... how do you know which LIBRARY is the best to include for a particular device?

Try one and see if you like it.

When you are familiar with one of them then have a look at the features the others offer to see if there is any additional capability that you would find useful.

...R

PS ... When posting code please use the code button </>
codeButton.png

so your code 
looks like this

and is easy to copy to a text editor See How to use the forum

Also please use the AutoFormat tool to indent your code for easier reading.