Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SoftSerial MAX14690 Buffer
Fork of rtos_threading_with_callback by
acquireDHT/getDHT.cpp@3:d7ec6dc025b0, 2018-03-30 (annotated)
- Committer:
- lwehmeier
- Date:
- Fri Mar 30 10:32:10 2018 +0000
- Revision:
- 3:d7ec6dc025b0
- Parent:
- 2:bf699e054b34
implemented basic GPS read support, freed serial connection for uart jpg camera module
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lwehmeier | 2:bf699e054b34 | 1 | #include "mbed.h" |
lwehmeier | 2:bf699e054b34 | 2 | #include "DHT.h" |
lwehmeier | 2:bf699e054b34 | 3 | #include "rtos.h" |
lwehmeier | 2:bf699e054b34 | 4 | #include "global.h" |
lwehmeier | 3:d7ec6dc025b0 | 5 | #include "logger.h" |
lwehmeier | 2:bf699e054b34 | 6 | |
lwehmeier | 2:bf699e054b34 | 7 | class DHTData |
lwehmeier | 2:bf699e054b34 | 8 | { |
lwehmeier | 2:bf699e054b34 | 9 | public: |
lwehmeier | 2:bf699e054b34 | 10 | static void run() |
lwehmeier | 2:bf699e054b34 | 11 | { |
lwehmeier | 2:bf699e054b34 | 12 | while(1) |
lwehmeier | 2:bf699e054b34 | 13 | { |
lwehmeier | 2:bf699e054b34 | 14 | int error = dht.readData(); |
lwehmeier | 2:bf699e054b34 | 15 | if (0 == error) { |
lwehmeier | 2:bf699e054b34 | 16 | float c = dht.ReadTemperature(CELCIUS); |
lwehmeier | 2:bf699e054b34 | 17 | float h = dht.ReadHumidity(); |
lwehmeier | 2:bf699e054b34 | 18 | humidity = h; |
lwehmeier | 2:bf699e054b34 | 19 | float dpf = dht.CalcdewPointFast(c, h); |
lwehmeier | 3:d7ec6dc025b0 | 20 | char *buffer = new char[50]; |
lwehmeier | 3:d7ec6dc025b0 | 21 | sprintf(buffer, "Temperature: %3.2f, Humidity: %3.2f\r\n", c,h); |
lwehmeier | 3:d7ec6dc025b0 | 22 | Logger::log(buffer); |
lwehmeier | 3:d7ec6dc025b0 | 23 | |
lwehmeier | 2:bf699e054b34 | 24 | printf("DHT: Temperature in Celcius: %4.2f\r\n", c); |
lwehmeier | 2:bf699e054b34 | 25 | printf("DHT: Humidity is %4.2f, Dewpoint: %4.2f\r\n", h, dpf); |
lwehmeier | 2:bf699e054b34 | 26 | |
lwehmeier | 2:bf699e054b34 | 27 | { |
lwehmeier | 2:bf699e054b34 | 28 | linkPacket *p = new linkPacket(); |
lwehmeier | 2:bf699e054b34 | 29 | uint8_t *data = new uint8_t[4]; |
lwehmeier | 2:bf699e054b34 | 30 | data[0]=((uint8_t*)&h)[0]; |
lwehmeier | 2:bf699e054b34 | 31 | data[1]=((uint8_t*)&h)[1]; |
lwehmeier | 2:bf699e054b34 | 32 | data[2]=((uint8_t*)&h)[2]; |
lwehmeier | 2:bf699e054b34 | 33 | data[3]=((uint8_t*)&h)[3]; |
lwehmeier | 2:bf699e054b34 | 34 | p->payload=data; |
lwehmeier | 2:bf699e054b34 | 35 | p->payloadSz=4; |
lwehmeier | 2:bf699e054b34 | 36 | p->priority =3; |
lwehmeier | 2:bf699e054b34 | 37 | p->frameType = FRAMETYPE_HUMIDITY; |
lwehmeier | 2:bf699e054b34 | 38 | txQueue.addPacket(p); |
lwehmeier | 2:bf699e054b34 | 39 | } |
lwehmeier | 2:bf699e054b34 | 40 | { |
lwehmeier | 2:bf699e054b34 | 41 | linkPacket *p = new linkPacket(); |
lwehmeier | 2:bf699e054b34 | 42 | uint8_t *data = new uint8_t[4]; |
lwehmeier | 2:bf699e054b34 | 43 | data[0]=((uint8_t*)&dpf)[0]; |
lwehmeier | 2:bf699e054b34 | 44 | data[1]=((uint8_t*)&dpf)[1]; |
lwehmeier | 2:bf699e054b34 | 45 | data[2]=((uint8_t*)&dpf)[2]; |
lwehmeier | 2:bf699e054b34 | 46 | data[3]=((uint8_t*)&dpf)[3]; |
lwehmeier | 2:bf699e054b34 | 47 | p->payload=data; |
lwehmeier | 2:bf699e054b34 | 48 | p->payloadSz=4; |
lwehmeier | 2:bf699e054b34 | 49 | p->priority =3; |
lwehmeier | 2:bf699e054b34 | 50 | p->frameType = FRAMETYPE_DEWPOINT; |
lwehmeier | 2:bf699e054b34 | 51 | txQueue.addPacket(p); |
lwehmeier | 2:bf699e054b34 | 52 | } |
lwehmeier | 2:bf699e054b34 | 53 | |
lwehmeier | 2:bf699e054b34 | 54 | } else { |
lwehmeier | 2:bf699e054b34 | 55 | printf("DHT: Error: %d\r\n", error); |
lwehmeier | 2:bf699e054b34 | 56 | } |
lwehmeier | 2:bf699e054b34 | 57 | rtos::Thread::wait(20000);//ms |
lwehmeier | 2:bf699e054b34 | 58 | } |
lwehmeier | 2:bf699e054b34 | 59 | } |
lwehmeier | 2:bf699e054b34 | 60 | DHTData() |
lwehmeier | 2:bf699e054b34 | 61 | { |
lwehmeier | 2:bf699e054b34 | 62 | registerThread(DHTData::run); |
lwehmeier | 2:bf699e054b34 | 63 | } |
lwehmeier | 2:bf699e054b34 | 64 | static DHT dht; |
lwehmeier | 2:bf699e054b34 | 65 | }; |
lwehmeier | 2:bf699e054b34 | 66 | DHT DHTData::dht(P3_2, DHT11);; |
lwehmeier | 2:bf699e054b34 | 67 | |
lwehmeier | 2:bf699e054b34 | 68 | // some witchcraft to register run function without touching anything outside our library |
lwehmeier | 2:bf699e054b34 | 69 | static DHTData _dummy; |