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@2:bf699e054b34, 2018-02-25 (annotated)
- Committer:
- lwehmeier
- Date:
- Sun Feb 25 16:40:28 2018 +0000
- Revision:
- 2:bf699e054b34
- Child:
- 3:d7ec6dc025b0
changed to modular design; rtos support; BMI160, BMP180, SSD1306, MPU6050, DHT11, SD support implemented; bit stuffing for link layer implemented; priority queue for data transmission; high-priority SPI link layer output thread
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 | 2:bf699e054b34 | 5 | |
lwehmeier | 2:bf699e054b34 | 6 | class DHTData |
lwehmeier | 2:bf699e054b34 | 7 | { |
lwehmeier | 2:bf699e054b34 | 8 | public: |
lwehmeier | 2:bf699e054b34 | 9 | static void run() |
lwehmeier | 2:bf699e054b34 | 10 | { |
lwehmeier | 2:bf699e054b34 | 11 | while(1) |
lwehmeier | 2:bf699e054b34 | 12 | { |
lwehmeier | 2:bf699e054b34 | 13 | int error = dht.readData(); |
lwehmeier | 2:bf699e054b34 | 14 | if (0 == error) { |
lwehmeier | 2:bf699e054b34 | 15 | float c = dht.ReadTemperature(CELCIUS); |
lwehmeier | 2:bf699e054b34 | 16 | float h = dht.ReadHumidity(); |
lwehmeier | 2:bf699e054b34 | 17 | humidity = h; |
lwehmeier | 2:bf699e054b34 | 18 | float dpf = dht.CalcdewPointFast(c, h); |
lwehmeier | 2:bf699e054b34 | 19 | printf("DHT: Temperature in Celcius: %4.2f\r\n", c); |
lwehmeier | 2:bf699e054b34 | 20 | printf("DHT: Humidity is %4.2f, Dewpoint: %4.2f\r\n", h, dpf); |
lwehmeier | 2:bf699e054b34 | 21 | |
lwehmeier | 2:bf699e054b34 | 22 | { |
lwehmeier | 2:bf699e054b34 | 23 | linkPacket *p = new linkPacket(); |
lwehmeier | 2:bf699e054b34 | 24 | uint8_t *data = new uint8_t[4]; |
lwehmeier | 2:bf699e054b34 | 25 | data[0]=((uint8_t*)&h)[0]; |
lwehmeier | 2:bf699e054b34 | 26 | data[1]=((uint8_t*)&h)[1]; |
lwehmeier | 2:bf699e054b34 | 27 | data[2]=((uint8_t*)&h)[2]; |
lwehmeier | 2:bf699e054b34 | 28 | data[3]=((uint8_t*)&h)[3]; |
lwehmeier | 2:bf699e054b34 | 29 | p->payload=data; |
lwehmeier | 2:bf699e054b34 | 30 | p->payloadSz=4; |
lwehmeier | 2:bf699e054b34 | 31 | p->priority =3; |
lwehmeier | 2:bf699e054b34 | 32 | p->frameType = FRAMETYPE_HUMIDITY; |
lwehmeier | 2:bf699e054b34 | 33 | txQueue.addPacket(p); |
lwehmeier | 2:bf699e054b34 | 34 | } |
lwehmeier | 2:bf699e054b34 | 35 | { |
lwehmeier | 2:bf699e054b34 | 36 | linkPacket *p = new linkPacket(); |
lwehmeier | 2:bf699e054b34 | 37 | uint8_t *data = new uint8_t[4]; |
lwehmeier | 2:bf699e054b34 | 38 | data[0]=((uint8_t*)&dpf)[0]; |
lwehmeier | 2:bf699e054b34 | 39 | data[1]=((uint8_t*)&dpf)[1]; |
lwehmeier | 2:bf699e054b34 | 40 | data[2]=((uint8_t*)&dpf)[2]; |
lwehmeier | 2:bf699e054b34 | 41 | data[3]=((uint8_t*)&dpf)[3]; |
lwehmeier | 2:bf699e054b34 | 42 | p->payload=data; |
lwehmeier | 2:bf699e054b34 | 43 | p->payloadSz=4; |
lwehmeier | 2:bf699e054b34 | 44 | p->priority =3; |
lwehmeier | 2:bf699e054b34 | 45 | p->frameType = FRAMETYPE_DEWPOINT; |
lwehmeier | 2:bf699e054b34 | 46 | txQueue.addPacket(p); |
lwehmeier | 2:bf699e054b34 | 47 | } |
lwehmeier | 2:bf699e054b34 | 48 | |
lwehmeier | 2:bf699e054b34 | 49 | } else { |
lwehmeier | 2:bf699e054b34 | 50 | printf("DHT: Error: %d\r\n", error); |
lwehmeier | 2:bf699e054b34 | 51 | } |
lwehmeier | 2:bf699e054b34 | 52 | rtos::Thread::wait(20000);//ms |
lwehmeier | 2:bf699e054b34 | 53 | } |
lwehmeier | 2:bf699e054b34 | 54 | } |
lwehmeier | 2:bf699e054b34 | 55 | DHTData() |
lwehmeier | 2:bf699e054b34 | 56 | { |
lwehmeier | 2:bf699e054b34 | 57 | registerThread(DHTData::run); |
lwehmeier | 2:bf699e054b34 | 58 | } |
lwehmeier | 2:bf699e054b34 | 59 | static DHT dht; |
lwehmeier | 2:bf699e054b34 | 60 | }; |
lwehmeier | 2:bf699e054b34 | 61 | DHT DHTData::dht(P3_2, DHT11);; |
lwehmeier | 2:bf699e054b34 | 62 | |
lwehmeier | 2:bf699e054b34 | 63 | // some witchcraft to register run function without touching anything outside our library |
lwehmeier | 2:bf699e054b34 | 64 | static DHTData _dummy; |