yet another 18B20 Temperature sensor. variable number of sensors working in parasite mode, serial 16x2 display with diagnostic output and post to a rest web service
Dependencies: EthernetInterface HTTPClient NTPClient mbed-rtos mbed
one_wire.h@1:9e88b2508768, 2013-01-03 (annotated)
- Committer:
- wkinkeldei
- Date:
- Thu Jan 03 18:50:43 2013 +0000
- Revision:
- 1:9e88b2508768
- Parent:
- 0:53f05303850a
added switch sensor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wkinkeldei | 1:9e88b2508768 | 1 | #ifndef ONE_WIRE_H |
wkinkeldei | 1:9e88b2508768 | 2 | #define ONE_WIRE_H |
wkinkeldei | 0:53f05303850a | 3 | |
wkinkeldei | 0:53f05303850a | 4 | #include "mbed.h" |
wkinkeldei | 0:53f05303850a | 5 | |
wkinkeldei | 0:53f05303850a | 6 | // One Wire command codes |
wkinkeldei | 0:53f05303850a | 7 | #define OVERDRIVE_SKIP 0x3C |
wkinkeldei | 0:53f05303850a | 8 | // ROM commands |
wkinkeldei | 0:53f05303850a | 9 | #define SEARCH_ROM 0xF0 |
wkinkeldei | 0:53f05303850a | 10 | #define READ_ROM 0x33 |
wkinkeldei | 0:53f05303850a | 11 | #define MATCH_ROM 0x55 |
wkinkeldei | 0:53f05303850a | 12 | #define SKIP_ROM 0xCC |
wkinkeldei | 0:53f05303850a | 13 | #define ALARM_SEARCH 0xEC |
wkinkeldei | 0:53f05303850a | 14 | // Functions Commnds |
wkinkeldei | 0:53f05303850a | 15 | #define CONVERT 0x44 |
wkinkeldei | 0:53f05303850a | 16 | #define WRITESCRATCH 0x4E |
wkinkeldei | 0:53f05303850a | 17 | #define READSCRATCH 0xBE |
wkinkeldei | 0:53f05303850a | 18 | #define COPYSCRATCH 0x48 |
wkinkeldei | 0:53f05303850a | 19 | #define RECALLE2 0xB8 |
wkinkeldei | 0:53f05303850a | 20 | #define READPOWERSUPPLY 0xB4 |
wkinkeldei | 0:53f05303850a | 21 | |
wkinkeldei | 0:53f05303850a | 22 | class OneWire { |
wkinkeldei | 0:53f05303850a | 23 | private: |
wkinkeldei | 0:53f05303850a | 24 | DigitalInOut port; |
wkinkeldei | 0:53f05303850a | 25 | |
wkinkeldei | 0:53f05303850a | 26 | public: |
wkinkeldei | 0:53f05303850a | 27 | OneWire(PinName pin); |
wkinkeldei | 0:53f05303850a | 28 | int reset(); |
wkinkeldei | 0:53f05303850a | 29 | void write_bit(int bit); |
wkinkeldei | 0:53f05303850a | 30 | int read_bit(); |
wkinkeldei | 0:53f05303850a | 31 | void write_byte(int data); |
wkinkeldei | 0:53f05303850a | 32 | int read_byte(); |
wkinkeldei | 0:53f05303850a | 33 | void block(char* data, int data_len); |
wkinkeldei | 0:53f05303850a | 34 | |
wkinkeldei | 0:53f05303850a | 35 | // high level functions: prepare(), delay(1000ms), read() |
wkinkeldei | 0:53f05303850a | 36 | void prepare_read(); |
wkinkeldei | 0:53f05303850a | 37 | int read_temperature(); |
wkinkeldei | 0:53f05303850a | 38 | }; |
wkinkeldei | 0:53f05303850a | 39 | |
wkinkeldei | 0:53f05303850a | 40 | #endif |