temperature sensor with uOLED 96 g1 & GSM Support

Dependencies:   OLED160G1 mbed uOLED

Fork of DS18B20 by Renato Loureiro

main.cpp

Committer:
Renato
Date:
2012-11-02
Revision:
2:fe0f893513d4
Parent:
1:b2ea1e9d90df

File content as of revision 2:fe0f893513d4:

#include "mbed.h"
#include "stdint.h"
#include "DS18B20.h"
#include "OLED160G1.h"
#include "uOLED.h"


DigitalInOut sensor(p23);     // sensor connected to pin 23

OLED160G1 oled(p9, p10, p8);
//uOLED uoled(p9, p10, p8);

Serial GSM(p13, p14);

Ticker timer;                // used for our microsec timing
//Serial pc(USBTX, USBRX);     // serial comms over usb back to console
float temp=0;
void FlushGSM(void) { char char1 = 0; while (GSM.readable()) { char1 = GSM.getc(); } return; }
bool Flag = false;
unsigned char i = 0;
unsigned char j = 0;
char r[]="";
char NumTel[] = "937831063";
unsigned char CtrlZ = 0x1A;

int main() {


GSM.baud(9600);
GSM.format(8,Serial::None,1);

    oled.init();
    oled.eraseScreen();
    oled.setTextBackgroundType(OLED_SET_TEXT_OPAQUE);
    oled.setFontSize(0);
                         //uOLED initialization...
    //uoled.init();
    
    
    //oled.printf("===========\n");
    //oled.printf("DS18B20 Config\n");
    sensor.mode(PullUp);
    
    ROM_Code_t ROM_Code = ReadROM();
    /*oled.printf("Family code: 0x%X\n", ROM_Code.BYTES.familyCode);
    oled.printf("Serial Number: \n");
    for (uint32_t i = 6; i != 0; --i) {
        oled.printf("%02X%s", ROM_Code.BYTES.serialNo[i-1], (i != 1)?":":"\n");
    }
    oled.printf("CRC: 0x%X\n", ROM_Code.BYTES.CRC);
    */
    oled.locate(0,1);
    oled.printf("Convertendo...\n");
    //uoled.drawText(1, 3, 3, 200, 100, 40, "Convertendo...\n");
    while (1) {
    showTemperature(&temp);
       oled.locate(2,3);
       oled.setFontSize(2);
        oled.printf("%.2f C",temp);
        wait(10);

GSM.printf("AT+CMGF=1");
FlushGSM();

GSM.printf("AT+CMGS=%s",NumTel);

while(GSM.readable())
    {
        if(GSM.getc()=='>')
        {
            Flag = true;
        }
    }
    if(Flag==true)
    {
        
        GSM.printf("%.2f C",temp);
        
        GSM.printf("%c",CtrlZ);
        
        while(!GSM.readable()){;}
        i=0;
        while(GSM.readable())
        {
            r[i]=GSM.getc();
            i++;
        }
        
    }
    else
    {
        oled.setFontSize(0);
        oled.printf("\n\n\nTerminal error !!!");
        return 0;
    }

    }
}