Winnie Cloud / Mbed 2 deprecated Automaticfan_TuYawen

Dependencies:   mbed TextLCD

Files at this revision

API Documentation at this revision

Comitter:
cloudywinnie
Date:
Sat Jun 06 13:42:26 2020 +0000
Commit message:
Tu_Yawen Automatic fan

Changed in this revision

TextLCD.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r fbcee9f83f42 TextLCD.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD.lib	Sat Jun 06 13:42:26 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/simon/code/TextLCD/#308d188a2d3a
diff -r 000000000000 -r fbcee9f83f42 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Jun 06 13:42:26 2020 +0000
@@ -0,0 +1,87 @@
+#include "mbed.h"
+#include "TextLCD.h"
+
+PwmOut motor(p21);   //Control the speed of the fan 
+DigitalInOut DHT11(p5); // Activate digital in as dht11 Pin
+TextLCD lcd(p6, p7, p14, p15, p16, p17); // rs, e, d4-d7
+
+
+Timer tmr; //initialize timer
+uint64_t adat; // 64 bit variable for temporary data
+int i;
+void dht_read(void) {
+    DHT11.output(); // Set p5 as output
+    // Initialize measurement > 18 ms low
+    DHT11 = 0;
+    wait_ms(20);
+    // After high and release the pin switch input mode
+    DHT11 = 1;
+    DHT11.input();
+    // Wait until the end of 80 us low
+    while(!DHT11.read()) {}
+    // Wait until end of 80 us high
+    while(DHT11.read()) {}
+    // 40 bit, 40 read out cycle
+    for(i=0; i<40; i++) {
+        adat = adat << 1; // Shift for new number
+        tmr.stop(); // Stop timer if runs
+        tmr.reset();  // Reset timer
+        // Wait until pin
+        while(!DHT11.read()) {}          
+        tmr.start();            
+        while(DHT11.read()) {}
+        // If DHT11 HIGH longer than 40 micro seconds (hopefully 70 us)
+        if(tmr.read_us() > 40) {
+            // bit is 1
+            adat++;
+        }
+    }
+}
+
+int main() {
+    while(1) {
+            adat = 0;
+            motor.period(0.010);
+            dht_read(); // Call the function   
+            int tem = (adat & 0x0000000000ff0000) >> 16;            
+            lcd.printf("Temperature:");
+            lcd.printf("%d\n",tem);     // Temperature       
+            if(tem <= 20){
+                motor = 0; 
+                lcd.locate(4,1);
+                lcd.printf("Fan OFF");
+            }
+            else if(tem > 20 && tem <= 22) {
+                motor = 0.2;   
+                lcd.printf("Fan Speed:");
+                lcd.locate(12,1);  
+                lcd.printf("20%");
+            }
+            else if(tem > 22 && tem <= 24) {
+                motor = 0.4;
+                lcd.printf("Fan Speed:");
+                lcd.locate(12,1);  
+                lcd.printf("40%");                  
+            }
+            else if(tem > 24 && tem <= 26) {
+                motor = 0.6;
+                lcd.printf("Fan Speed:");
+                lcd.locate(12,1);  
+                lcd.printf("60%");    
+            }
+            else if(tem > 26 && tem <= 28) {
+                motor = 0.8;
+                lcd.printf("Fan Speed:");
+                lcd.locate(12,1);  
+                lcd.printf("80%");    
+            }
+            else {
+                motor = 1;
+                lcd.printf("Fan Speed:");
+                lcd.locate(12,1);  
+                lcd.printf("100%");   
+            }
+            wait(2); // Wait 2 sec till continue.
+            lcd.cls(); // Clear the screen
+    }
+}
\ No newline at end of file
diff -r 000000000000 -r fbcee9f83f42 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sat Jun 06 13:42:26 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file