final DA

Dependencies:   mbed mbed-rtos AM2320 Adafruit_GFX TextLCD ssd1306_library

Committer:
Jhonattan38
Date:
Wed Nov 04 17:19:56 2020 +0000
Revision:
0:1e97811b8a15
final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jhonattan38 0:1e97811b8a15 1 #include "mbed.h"
Jhonattan38 0:1e97811b8a15 2 #include "stdlib.h"
Jhonattan38 0:1e97811b8a15 3 #include "TextLCD.h"
Jhonattan38 0:1e97811b8a15 4 #include "AM2320.h"
Jhonattan38 0:1e97811b8a15 5 //------------------------
Jhonattan38 0:1e97811b8a15 6 #include "Adafruit_SSD1306.h"
Jhonattan38 0:1e97811b8a15 7 #include "Adafruit_GFX.h"
Jhonattan38 0:1e97811b8a15 8 #include "Adafruit_GFX_Config.h"
Jhonattan38 0:1e97811b8a15 9 #include "rtos.h"
Jhonattan38 0:1e97811b8a15 10 //------------------------
Jhonattan38 0:1e97811b8a15 11
Jhonattan38 0:1e97811b8a15 12
Jhonattan38 0:1e97811b8a15 13 AnalogIn HPF(PA_0), BPF(PA_1), LPF(PA_4);
Jhonattan38 0:1e97811b8a15 14 TextLCD pantalla(PA_8,PA_9,PA_10,PB_3,PB_4,PB_5,TextLCD::LCD16x2);
Jhonattan38 0:1e97811b8a15 15 Serial pc(PB_10,PB_11);
Jhonattan38 0:1e97811b8a15 16 DigitalOut led(PC_13);
Jhonattan38 0:1e97811b8a15 17 I2C i2c(PB_9,PB_8);
Jhonattan38 0:1e97811b8a15 18 AM2320 am2320(i2c);
Jhonattan38 0:1e97811b8a15 19 I2CSlave i2c2(PB_9,PB_8);
Jhonattan38 0:1e97811b8a15 20
Jhonattan38 0:1e97811b8a15 21 Adafruit_SSD1306_I2c oled(i2c,PB_7,0x78,64,128);
Jhonattan38 0:1e97811b8a15 22
Jhonattan38 0:1e97811b8a15 23 Ticker T,ticker;
Jhonattan38 0:1e97811b8a15 24
Jhonattan38 0:1e97811b8a15 25 InterruptIn calibrador(PA_7),calibrador2(PA_6);
Jhonattan38 0:1e97811b8a15 26
Jhonattan38 0:1e97811b8a15 27 ////
Jhonattan38 0:1e97811b8a15 28 struct PROYECT : Adafruit_GFX {
Jhonattan38 0:1e97811b8a15 29 PROYECT(int16_t x, int16_t y): Adafruit_GFX (x,y){}
Jhonattan38 0:1e97811b8a15 30 };
Jhonattan38 0:1e97811b8a15 31 ////
Jhonattan38 0:1e97811b8a15 32 void OLED();
Jhonattan38 0:1e97811b8a15 33 char msg[10];
Jhonattan38 0:1e97811b8a15 34 float humedad;
Jhonattan38 0:1e97811b8a15 35 float temperatura,t,t2;
Jhonattan38 0:1e97811b8a15 36 bool bandera=false;
Jhonattan38 0:1e97811b8a15 37
Jhonattan38 0:1e97811b8a15 38 void calibrar_Up(){
Jhonattan38 0:1e97811b8a15 39 bandera=true;
Jhonattan38 0:1e97811b8a15 40 if((calibrador!=0)&&(bandera==true)){
Jhonattan38 0:1e97811b8a15 41 t2++;
Jhonattan38 0:1e97811b8a15 42 bandera=false;
Jhonattan38 0:1e97811b8a15 43 }
Jhonattan38 0:1e97811b8a15 44 }
Jhonattan38 0:1e97811b8a15 45
Jhonattan38 0:1e97811b8a15 46 void calibrar_Down(){
Jhonattan38 0:1e97811b8a15 47 bandera=true;
Jhonattan38 0:1e97811b8a15 48 if((calibrador!=0)&&(bandera==true)){
Jhonattan38 0:1e97811b8a15 49 t2--;
Jhonattan38 0:1e97811b8a15 50 bandera=false;
Jhonattan38 0:1e97811b8a15 51 }
Jhonattan38 0:1e97811b8a15 52 }
Jhonattan38 0:1e97811b8a15 53
Jhonattan38 0:1e97811b8a15 54 void inicio(void);
Jhonattan38 0:1e97811b8a15 55
Jhonattan38 0:1e97811b8a15 56 uint16_t data_send_t,data_send_h;
Jhonattan38 0:1e97811b8a15 57
Jhonattan38 0:1e97811b8a15 58 void Sensor(){
Jhonattan38 0:1e97811b8a15 59 humedad = am2320.humidity();
Jhonattan38 0:1e97811b8a15 60 t = am2320.temperature();
Jhonattan38 0:1e97811b8a15 61 temperatura=t-t2;
Jhonattan38 0:1e97811b8a15 62
Jhonattan38 0:1e97811b8a15 63 data_send_h = humedad;
Jhonattan38 0:1e97811b8a15 64 data_send_t = temperatura;
Jhonattan38 0:1e97811b8a15 65 pc.printf("-%d-%d-\n",data_send_t,data_send_h);
Jhonattan38 0:1e97811b8a15 66 wait_ms(200);
Jhonattan38 0:1e97811b8a15 67 }
Jhonattan38 0:1e97811b8a15 68
Jhonattan38 0:1e97811b8a15 69 void leer(){
Jhonattan38 0:1e97811b8a15 70
Jhonattan38 0:1e97811b8a15 71 }
Jhonattan38 0:1e97811b8a15 72
Jhonattan38 0:1e97811b8a15 73 int main(){
Jhonattan38 0:1e97811b8a15 74
Jhonattan38 0:1e97811b8a15 75
Jhonattan38 0:1e97811b8a15 76
Jhonattan38 0:1e97811b8a15 77 inicio();
Jhonattan38 0:1e97811b8a15 78 pc.baud(115200);
Jhonattan38 0:1e97811b8a15 79 // pc.attach(&leer,Serial::RxIrq);
Jhonattan38 0:1e97811b8a15 80
Jhonattan38 0:1e97811b8a15 81 calibrador.rise(&calibrar_Up);
Jhonattan38 0:1e97811b8a15 82 calibrador2.rise(&calibrar_Down);
Jhonattan38 0:1e97811b8a15 83
Jhonattan38 0:1e97811b8a15 84 //char buf[10];
Jhonattan38 0:1e97811b8a15 85 //char msg[] = "Slave!";
Jhonattan38 0:1e97811b8a15 86 //slaveO.address(0x78);
Jhonattan38 0:1e97811b8a15 87 //slaveA.address(0xB8);
Jhonattan38 0:1e97811b8a15 88
Jhonattan38 0:1e97811b8a15 89
Jhonattan38 0:1e97811b8a15 90 int t=1604340235; /// semilla del tiempo
Jhonattan38 0:1e97811b8a15 91 set_time(t);
Jhonattan38 0:1e97811b8a15 92
Jhonattan38 0:1e97811b8a15 93 while(1) {
Jhonattan38 0:1e97811b8a15 94 //int i = slave.receive();
Jhonattan38 0:1e97811b8a15 95 //switch (i)
Jhonattan38 0:1e97811b8a15 96 /* pantalla.locate(0,0);
Jhonattan38 0:1e97811b8a15 97 pantalla.printf("%2.2f ",humedad/10);
Jhonattan38 0:1e97811b8a15 98 pantalla.printf("%%");
Jhonattan38 0:1e97811b8a15 99 pantalla.locate(0,1);
Jhonattan38 0:1e97811b8a15 100 pantalla.printf("%2.2f C",temperatura/10);*/
Jhonattan38 0:1e97811b8a15 101 OLED();
Jhonattan38 0:1e97811b8a15 102 Sensor();
Jhonattan38 0:1e97811b8a15 103
Jhonattan38 0:1e97811b8a15 104
Jhonattan38 0:1e97811b8a15 105 }
Jhonattan38 0:1e97811b8a15 106 }
Jhonattan38 0:1e97811b8a15 107
Jhonattan38 0:1e97811b8a15 108 void OLED(){
Jhonattan38 0:1e97811b8a15 109 oled.clearDisplay();
Jhonattan38 0:1e97811b8a15 110 // oled.printf("%s\r", ctime(&seconds));
Jhonattan38 0:1e97811b8a15 111 time_t seconds = time(NULL);
Jhonattan38 0:1e97811b8a15 112 oled.setTextCursor(10,0);
Jhonattan38 0:1e97811b8a15 113 oled.printf("%s", ctime(&seconds));
Jhonattan38 0:1e97811b8a15 114
Jhonattan38 0:1e97811b8a15 115 oled.setTextCursor(38,17);
Jhonattan38 0:1e97811b8a15 116 oled.printf("%s"," SPI/ I2C");
Jhonattan38 0:1e97811b8a15 117
Jhonattan38 0:1e97811b8a15 118 oled.display();
Jhonattan38 0:1e97811b8a15 119 wait_ms(16);
Jhonattan38 0:1e97811b8a15 120 }
Jhonattan38 0:1e97811b8a15 121 void inicio(void){
Jhonattan38 0:1e97811b8a15 122 wait(2);
Jhonattan38 0:1e97811b8a15 123 led=!led;
Jhonattan38 0:1e97811b8a15 124 wait(1);
Jhonattan38 0:1e97811b8a15 125 pantalla.cls();
Jhonattan38 0:1e97811b8a15 126 pantalla.printf("Bienvenido");
Jhonattan38 0:1e97811b8a15 127 wait(1.5);
Jhonattan38 0:1e97811b8a15 128 pantalla.cls();
Jhonattan38 0:1e97811b8a15 129 pantalla.printf("Muestreo de I2C\ny SPI");
Jhonattan38 0:1e97811b8a15 130 wait(2.5);
Jhonattan38 0:1e97811b8a15 131 pantalla.cls();
Jhonattan38 0:1e97811b8a15 132 pantalla.printf("Sensor AM2320\nOLED y microSD");
Jhonattan38 0:1e97811b8a15 133 wait(2.5);
Jhonattan38 0:1e97811b8a15 134 led=!led;
Jhonattan38 0:1e97811b8a15 135 pantalla.cls();
Jhonattan38 0:1e97811b8a15 136 }
Jhonattan38 0:1e97811b8a15 137
Jhonattan38 0:1e97811b8a15 138 /*
Jhonattan38 0:1e97811b8a15 139
Jhonattan38 0:1e97811b8a15 140 #if !DEVICE_I2CSLAVE
Jhonattan38 0:1e97811b8a15 141 #error [NOT_SUPPORTED] I2C Slave is not supported
Jhonattan38 0:1e97811b8a15 142 #endif
Jhonattan38 0:1e97811b8a15 143
Jhonattan38 0:1e97811b8a15 144 I2CSlave slave(D14, D15);
Jhonattan38 0:1e97811b8a15 145
Jhonattan38 0:1e97811b8a15 146 int main()
Jhonattan38 0:1e97811b8a15 147 {
Jhonattan38 0:1e97811b8a15 148 char buf[10];
Jhonattan38 0:1e97811b8a15 149 char msg[] = "Slave!";
Jhonattan38 0:1e97811b8a15 150
Jhonattan38 0:1e97811b8a15 151 slave.address(0xA0);
Jhonattan38 0:1e97811b8a15 152 while (1) {
Jhonattan38 0:1e97811b8a15 153 int i = slave.receive();
Jhonattan38 0:1e97811b8a15 154 switch (i) {
Jhonattan38 0:1e97811b8a15 155 case I2CSlave::ReadAddressed:
Jhonattan38 0:1e97811b8a15 156 slave.write(msg, strlen(msg) + 1); // Includes null char
Jhonattan38 0:1e97811b8a15 157 break;
Jhonattan38 0:1e97811b8a15 158 case I2CSlave::WriteGeneral:
Jhonattan38 0:1e97811b8a15 159 slave.read(buf, 10);
Jhonattan38 0:1e97811b8a15 160 printf("Read G: %s\n", buf);
Jhonattan38 0:1e97811b8a15 161 break;
Jhonattan38 0:1e97811b8a15 162 case I2CSlave::WriteAddressed:
Jhonattan38 0:1e97811b8a15 163 slave.read(buf, 10);
Jhonattan38 0:1e97811b8a15 164 printf("Read A: %s\n", buf);
Jhonattan38 0:1e97811b8a15 165 break;
Jhonattan38 0:1e97811b8a15 166 }
Jhonattan38 0:1e97811b8a15 167 for (int i = 0; i < 10; i++) {
Jhonattan38 0:1e97811b8a15 168 buf[i] = 0; // Clear buffer
Jhonattan38 0:1e97811b8a15 169 }
Jhonattan38 0:1e97811b8a15 170 }
Jhonattan38 0:1e97811b8a15 171 }*/