I'm going to solder on some (very small) wires
ROM = 28 8C F7 58 5 __ __ __
Chip = DS18B20
Data = 1 7F 1 4B 46 7F FF 1 10 33 CRC=33
Temperature = 23.94 Celsius, 75.09 Fahrenheit
ROM = 28 E5 79 2F 5 __ __ __
Chip = DS18B20
Data = 1 80 1 4B 46 7F FF 10 10 C6 CRC=C6
Temperature = 24.00 Celsius, 75.20 Fahrenheit
ROM = 28 23 F6 58 5 __ __ __
Chip = DS18B20
Data = 1 81 1 4B 46 7F FF F 10 71 CRC=71
Temperature = 24.06 Celsius, 75.31 Fahrenheit
ROM = 3B E6 F 15 0 __ __ __
Chip = DS1825/MAX31826
Data = 1 77 1 FF FF F0 FF FF FF D0 CRC=D0
Temperature = 23.44 Celsius, 74.19 Fahrenheit
No more addresses.
case 0x3B:
Serial.println(" Chip = DS1825/MAX31826");
type_s = 0;
break;
Or are the MAX31820 just a variance of DS18B20?
Ability to monitor Vcc? - Gives Moteino the opportunity to transmit "Please recharge or replace my battery!"
Micro SD card socket? - Allows nodes to store / archive data if no Gateway is available. Allows use of same shield on a Gateway to receive data from multiple nodes and store if no network is available. Allows Gateway to batch upload stored data (over say, a GSM link).
Real Time Clock? DS1337 or other 3.3v compatible clock. Data logging without an accurate-ish time stamp adds a big hurdle in interpreting the data.
Device | Temp | Humidity | Pressure | Extras |
DHT22 | X | X | ||
DS18*20 | X | Temp alarms | ||
MAX31826 | X | 128B EEPROM | ||
BMP180 | X | X |
That looks nice! Is there a reason you have it set up for 4 different temp sensors?
Thought about using a 1Wire master like the i2c S2483? No need to hardcode sensors in this way if it works.
Hey, that's great. I didn't realize these were all on the same pin. I've done single DS18B20s, but only as proof of concept. I never planned on this as a long-term solution, instead looking forward to a dedicated master.
Regardless, has anyone employed a 1Wire master on AVR?
Thanks,
C
'll sift through the links, but do you know of any problems with 1Wire network length and nodes, or considerations otherwise?
For temp sensing, why not use the MAX7500 instead of the MAX31820?
- provision for a DS3231 clock module with something like this (http://www.ebay.com/sch/i.html?_sacat=0&_from=R40&LH_BIN=1&_nkw=DS3231+AT24C32+IIC+Precision+RTC+Real+Time+Clock+Memory+Module&_sop=15). This would allow a receiver to track things like daily highs and lows, accurately timestamp observations, etc when not connected to a PC. The Memory Module is bound to come in handy. And this module takes a battery backup to keep time when powered off.
- why not just design for a header for a BMP180 module (three bucks on EBay) so you don't need to do the tricky soldering that package requires?
- just use the temperature data from the humidity sensor DHT22 if you are running tight on space or pins. It isn't expensive and you often want to know one when you know the other. It is accurate enough, and you get temperature when you read humidity anyway.
- consider standing the DHT22 upright on the board to make room for other stuff if necessary
I like the idea of designing for these inexpensive modules rather than discrete parts when you can. That way stuff can easily be populated at a later date if you like and it keeps the overall build simple.
I got my order of rev1 boards in the mail and built one up. I've already got a couple of assembly/cosmetic things I'm going to change on the board for a revision 3 (pad size on the ds18b20 and DHT22 being most notable). But I think I'll wait for the r2 boards to come in to see if there are any more changes I want to make before ordering/publishing it.
Thanks for all of the feedback so far, keep it coming!
Nice design!
- IIRC the DHT22 contains a DS18B20/DS18S20 sensor for temperature measurements, so including another one as a discrete part is probably not necessary (the RH sensor needs a temp. sensor for linearity compensation)
- I'd also suggest looking at supporting another sensor, the Sensirion SHT11, which is used in the aforementioned Davis station, and said to be more accurate than the DHT22, also easily available and frequently can be obtained for a bargain on Ebay
DeKay, wow, you dig deep. Some fine hacking to get a Moteino to receive the data from your Davis weather station. I'm tempted to get one just to see your hard work operate, but alas I've got too many projects as it is. Still, I admire what you accomplished.
D3 is also tied to INT1. So I suggest you start from D4 and up and only use D3 if you run out of pin. This will reserve the Interrupt pin for future use without the hassle of reassigning the pin.
What I was wondering is if you could post up the board file for your Weathershield?
I still can't believe how small some of these devices on your WeatherMote are. The Si7021 is making me realize how much I need glasses! Almost 50 and feeling it. Thank you. I'll definitely be moving away from the DHT22. Your board was perfect for me. I liked the BMP085 too. When I started all this I was looking for commonly used sensors that work easily with the Arduino. I wish I had thought more of power consumption when I started all this knowing I wanted to run on battery power. I really like the footprint of the Si7021 over the DHT22 too. But I would never have been able to get that chip on the board.
Is there a schematic to the R3 board? And do you have a direct link to your OSH files? I see you have set up a voltage divider circuit, and was interested in giving that a go.
I am really liking the Ds18b20s and they will work perfect for me to monitor temperatures within my Aquaponics system. I'm thinking of having 11 three pin headers all connected in parallel. One to connect to your weathermote, and the others for DS18b20s Also thinking of using a simple micro to allow mapping based on position on this board, rather than by ID numbers of the DS18b20s. Postion 1 temp, position 2 temp, etc,.. I don't want to have to change my code if I have to change out one of the sensors. Just change out the sensor, and I'm done. I was thinking of mimicking the DS18b20s on the 1 wire bus with simplified ids of 0 through 9. And make it so the whole thing could be plugged in like a single DS18b20.
Keep up the good work.
And Yes I am using a Raspberry PI as my gateway. Almost ready for prime time. I haven't gone live online yet. Been testing the database and webpages. Not sure how it will deal with public access. Perhaps not even a good idea.
It looks like the cost anywhere from $30 to $130. Are you using a ready-made shield, or are you building your own?
any news on your newest prototype? It looks awesome.
int SI7021::getSerialBytes(byte * buf) {
_writeReg(SERIAL1_READ, sizeof SERIAL1_READ);
_readReg(buf, 6);
_writeReg(SERIAL2_READ, sizeof SERIAL2_READ);
_readReg(buf + 6, 6);
// could verify crc here and return only the 8 bytes that matter
return 1;
}
int SI7021::getDeviceId() {
byte serial[12];
getSerialBytes(serial);
int id = serial[6];
return id;
}