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: ESP8266_Test_WIFI mbed-src
Revision 3:f0f39d7c1c16, committed 2016-06-28
- Comitter:
- hank51017
- Date:
- Tue Jun 28 11:03:39 2016 +0000
- Parent:
- 2:dcaf0bcf6df6
- Commit message:
- for yotta;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ESP8266_Test_WIFI.lib Tue Jun 28 11:03:39 2016 +0000 @@ -0,0 +1,1 @@ +https://developer.mbed.org/teams/ittraining_project_2016/code/ESP8266_Test_WIFI/#4c0f80896a21
--- a/I2C_SSD1306Z.cpp Wed Jun 22 08:02:37 2016 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,451 +0,0 @@
-//
-// SSD1306Z LCD Driver: 0.96" lcd LY096BG30
-//
-// Interface: I2C
-// pin1: Vcc
-// pin2: Gnd
-// pin3: SCL
-// pin4: SDA
-
-#include "mbed.h"
-#include "I2C_SSD1306Z.h"
-#include "Font8x16.h"
-#include "Font5x7.h"
-
-
-//I2C i2c(I2C_SDA, I2C_SCL);
-extern I2C i2c;
-
-char DisplayBuffer[128*8];
-
-#if 1
-
-void lcdWriteCommand(uint8_t lcd_Command)
-{
-
- char data[2];
- data[0]=0x0;
- data[1]=lcd_Command;
- // I2C_writeBytes(LCD_I2C_PORT, LCD_I2C_SLA, 0x00, 1, data);
- // i2c_write_data_block(LCD_I2C_SLA, 0x00, data,1);
- i2c.write(LCD_I2C_SLA, data, 2, 0);
-
-}
-
-void lcdWriteData(uint8_t lcd_Data)
-{
-
- char data[2];
- data[0]=0x40;
- data[1]=lcd_Data;
- // I2C_writeBytes(LCD_I2C_PORT, LCD_I2C_SLA, 0x40, 1, data);
- //i2c_write_data_block(LCD_I2C_SLA, 0x40,data,1);
- i2c.write(LCD_I2C_SLA, data, 2, 0);
-}
-
-#else
-
-void lcdWriteCommand(uint8_t lcd_Command)
-{
- uint8_t data[1];
- data[0]=lcd_Command;
- // I2C_writeBytes(LCD_I2C_PORT, LCD_I2C_SLA, 0x00, 1, data);
- i2c_write_data_block(LCD_I2C_SLA, 0x00, data,1);
-
-}
-
-void lcdWriteData(uint8_t lcd_Data)
-{
- uint8_t data[1];
- data[0]=lcd_Data;
- // I2C_writeBytes(LCD_I2C_PORT, LCD_I2C_SLA, 0x40, 1, data);
- i2c_write_data_block(LCD_I2C_SLA, 0x40,data,1);
-}
-
-#endif
-
-void lcdSetAddr(uint8_t column, uint8_t page)
-{
- lcdWriteCommand(0xb0+page); // set page address
- lcdWriteCommand(0x10 | ((column & 0xf0) >> 4)); // set column address MSB
- lcdWriteCommand(0x00 | (column & 0x0f) ); // set column address LSB
-}
-
-void Init_LCD(void)
-{
- lcdWriteCommand(0xae); //display off
- lcdWriteCommand(0x20); //Set Memory Addressing Mode
- lcdWriteCommand(0x10); //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid
- lcdWriteCommand(0xb0); //Set Page Start Address for Page Addressing Mode,0-7
- lcdWriteCommand(0xc8); //Set COM Output Scan Direction
- lcdWriteCommand(0x00);//---set low column address
- lcdWriteCommand(0x10);//---set high column address
- lcdWriteCommand(0x40);//--set start line address
- lcdWriteCommand(0x81);//--set contrast control register
- lcdWriteCommand(0x7f);
- lcdWriteCommand(0xa1);//--set segment re-map 0 to 127
- lcdWriteCommand(0xa6);//--set normal display
- lcdWriteCommand(0xa8);//--set multiplex ratio(1 to 64)
- lcdWriteCommand(0x3F);//
- lcdWriteCommand(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
- lcdWriteCommand(0xd3);//-set display offset
- lcdWriteCommand(0x00);//-not offset
- lcdWriteCommand(0xd5);//--set display clock divide ratio/oscillator frequency
- lcdWriteCommand(0xf0);//--set divide ratio
- lcdWriteCommand(0xd9);//--set pre-charge period
- lcdWriteCommand(0x22); //
- lcdWriteCommand(0xda);//--set com pins hardware configuration
- lcdWriteCommand(0x12);
- lcdWriteCommand(0xdb);//--set vcomh
- lcdWriteCommand(0x20);//0x20,0.77xVcc
- lcdWriteCommand(0x8d);//--set DC-DC enable
- lcdWriteCommand(0x14);//
- lcdWriteCommand(0xaf);//--turn on lcd panel
-}
-
-void clear_LCD(void)
-{
- int16_t x, Y;
- for (Y=0;Y<LCD_Ymax/8;Y++)
- {
- lcdSetAddr(0, Y);
- for (x=0;x<LCD_Xmax;x++)
- lcdWriteData(0x00);
- }
-}
-
-// print char function using Font5x7
-void printC_5x7 (int16_t x, int16_t y, unsigned char ascii_code)
-{
- uint8_t i;
- if (x<(LCD_Xmax-5) && y<(LCD_Ymax-7)) {
- if (ascii_code<0x20) ascii_code=0x20;
- else if (ascii_code>0x7F) ascii_code=0x20;
- for (i=0;i<5;i++) {
- lcdSetAddr((LCD_Xmax+1-x-i), (y/8));
- lcdWriteData(Font5x7[(ascii_code-0x20)*5+5-i]);
- }
- }
-}
-
-void print_C(uint8_t Line, uint8_t Col, char ascii)
-{
- uint8_t j, i, tmp;
- for (j=0;j<2;j++) {
- lcdSetAddr(Col*8, Line*2+j);
- for (i=0;i<8;i++) {
- tmp=Font8x16[(ascii-0x20)*16+j*8+i];
- lcdWriteData(tmp);
- }
- }
-}
-
-void print_Line(uint8_t line, char text[])
-{
- uint8_t Col;
- for (Col=0; Col<strlen(text); Col++)
- print_C(line, Col, text[Col]);
-}
-
-void printS(int16_t x, int16_t y, char text[])
-{
- int8_t i;
- for (i=0;i<strlen(text);i++)
- print_C(x+i*8, y,text[i]);
-}
-
-void printS_5x7(int16_t x, int16_t y, char text[])
-{
- uint8_t i;
- for (i=0;i<strlen(text);i++) {
- printC_5x7(x,y,text[i]);
- x=x+5;
- }
-}
-
-void draw_Pixel(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor)
-{
- if (fgColor!=0)
- DisplayBuffer[x+y/8*LCD_Xmax] |= (0x01<<(y%8));
- else
- DisplayBuffer[x+y/8*LCD_Xmax] &= (0xFE<<(y%8));
-
- lcdSetAddr(x, y/8);
- lcdWriteData(DisplayBuffer[x+y/8*LCD_Xmax]);
-}
-
-void draw_Bmp8x8(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,k, kx,ky;
- if (x<(LCD_Xmax-7) && y<(LCD_Ymax-7)) // boundary check
- for (i=0;i<8;i++){
- kx=x+i;
- t=bitmap[i];
- for (k=0;k<8;k++) {
- ky=y+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
-}
-
-void draw_Bmp32x8(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,k, kx,ky;
- if (x<(LCD_Xmax-7) && y<(LCD_Ymax-7)) // boundary check
- for (i=0;i<32;i++){
- kx=x+i;
- t=bitmap[i];
- for (k=0;k<8;k++) {
- ky=y+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
-}
-
-void draw_Bmp120x8(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,k, kx,ky;
- if (x<(LCD_Xmax-7) && y<(LCD_Ymax-7)) // boundary check
- for (i=0;i<120;i++){
- kx=x+i;
- t=bitmap[i];
- for (k=0;k<8;k++) {
- ky=y+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
-}
-
-void draw_Bmp8x16(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,k, kx,ky;
- if (x<(LCD_Xmax-7) && y<(LCD_Ymax-7)) // boundary check
- for (i=0;i<8;i++){
- kx=x+i;
- t=bitmap[i];
- for (k=0;k<8;k++) {
- ky=y+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- t=bitmap[i+8];
- for (k=0;k<8;k++) {
- ky=y+k+8;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
-}
-
-void draw_Bmp16x8(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,k,kx,ky;
- if (x<(LCD_Xmax-15) && y<(LCD_Ymax-7)) // boundary check
- for (i=0;i<16;i++)
- {
- kx=x+i;
- t=bitmap[i];
- for (k=0;k<8;k++) {
- ky=y+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
-}
-
-void draw_Bmp16x16(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,j,k, kx,ky;
- if (x<(LCD_Xmax-15) && y<(LCD_Ymax-15)) // boundary check
- for (j=0;j<2; j++){
- for (i=0;i<16;i++) {
- kx=x+i;
- t=bitmap[i+j*16];
- for (k=0;k<8;k++) {
- ky=y+j*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp16x24(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,j,k, kx,ky;
- if (x<(LCD_Xmax-15) && y<(LCD_Ymax-15)) // boundary check
- for (j=0;j<3; j++){
- for (i=0;i<16;i++) {
- kx=x+i;
- t=bitmap[i+j*16];
- for (k=0;k<8;k++) {
- ky=y+j*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp16x32(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t, i,j,k, kx,ky;
- if (x<(LCD_Xmax-15) && y<(LCD_Ymax-31)) // boundary check
- for (j=0;j<4; j++) {
- for (i=0;i<16;i++) {
- kx=x+i;
- t=bitmap[i+j*16];
- for (k=0;k<8;k++) {
- ky=y+j*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp16x40(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t, i,j,k, kx,ky;
- if (x<(LCD_Xmax-15) && y<(LCD_Ymax-31)) // boundary check
- for (j=0;j<5; j++) {
- for (i=0;i<16;i++) {
- kx=x+i;
- t=bitmap[i+j*16];
- for (k=0;k<8;k++) {
- ky=y+j*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp16x48(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,j,k,kx,ky;
- if (x<(LCD_Xmax-15) && y<(LCD_Ymax-47)) // boundary check
- for (j=0;j<6; j++) {
- k=x;
- for (i=0;i<16;i++) {
- kx=x+i;
- t=bitmap[i+j*16];
- for (k=0;k<8;k++) {
- ky=y+j*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp16x64(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,j,k,kx,ky;
- if (x<(LCD_Xmax-15) && y==0) // boundary check
- for (j=0;j<8; j++) {
- k=x;
- for (i=0;i<16;i++) {
- kx=x+i;
- t=bitmap[i+j*16];
- for (k=0;k<8;k++) {
- ky=y+j*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp32x16(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,jx,jy,k,kx,ky;
- if (x<(LCD_Xmax-31) && y<(LCD_Ymax-15)) // boundary check
- for (jy=0;jy<2;jy++)
- for (jx=0;jx<2;jx++) {
- k=x;
- for (i=0;i<16;i++) {
- kx=x+jx*16+i;
- t=bitmap[i+jx*16+jy*32];
- for (k=0;k<8;k++) {
- ky=y+jy*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp32x32(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,jx,jy,k, kx,ky;
- if (x<(LCD_Xmax-31) && y<(LCD_Ymax-31)) // boundary check
- for (jy=0;jy<4;jy++)
- for (jx=0;jx<2;jx++) {
- k=x;
- for (i=0;i<16;i++) {
- kx=x+jx*16+i;
- t=bitmap[i+jx*16+jy*32];
- for (k=0;k<8;k++) {
- ky=y+jy*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp32x48(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,jx,jy,k, kx,ky;
- if (x<(LCD_Xmax-31) && y<(LCD_Ymax-47)) // boundary check
- for (jy=0;jy<6;jy++)
- for (jx=0;jx<2;jx++) {
- k=x;
- for (i=0;i<16;i++) {
- kx=x+jx*16+i;
- t=bitmap[i+jx*16+jy*32];
- for (k=0;k<8;k++) {
- ky=y+jy*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp32x64(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t,i,jx,jy,k, kx,ky;
- if (x<(LCD_Xmax-31) && y==0) // boundary check
- for (jy=0;jy<8;jy++)
- for (jx=0;jx<2;jx++) {
- k=x;
- for (i=0;i<16;i++) {
- kx=x+jx*16+i;
- t=bitmap[i+jx*16+jy*32];
- for (k=0;k<8;k++) {
- ky=y+jy*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_Bmp64x64(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
-{
- uint8_t t, i,jx,jy,k, kx,ky;
- if (x<(LCD_Xmax-63) && y==0) // boundary check
- for (jy=0;jy<8;jy++)
- for (jx=0;jx<4;jx++) {
- k=x;
- for (i=0;i<16;i++) {
- kx=x+jx*16+i;
- t=bitmap[i+jx*16+jy*64];
- for (k=0;k<8;k++) {
- ky=y+jy*8+k;
- if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
- }
- }
- }
-}
-
-void draw_LCD(unsigned char *buffer)
-{
- uint8_t x,y;
- for (x=0; x<LCD_Xmax; x++) {
- for (y=0; y<(LCD_Ymax/8); y++) {
- lcdSetAddr(x ,y);
- lcdWriteData(buffer[x+y*LCD_Xmax]);
- }
- }
-}
-
--- a/include/BME280.cpp Wed Jun 22 08:02:37 2016 +0000
+++ b/include/BME280.cpp Tue Jun 28 11:03:39 2016 +0000
@@ -50,11 +50,11 @@
i2c.write(address, cmd, 2);
cmd[0] = 0xf4; // ctrl_meas
- cmd[1] = 0x27; // Temparature oversampling x1, Pressure oversampling x1, Normal mode
+ cmd[1] = 0xab; // Temparature oversampling x2, Pressure oversampling x16, Normal mode
i2c.write(address, cmd, 2);
cmd[0] = 0xf5; // config
- cmd[1] = 0xa0; // Standby 1000ms, Filter off
+ cmd[1] = 0x10; // Standby 0.5ms, Filter 16
i2c.write(address, cmd, 2);
cmd[0] = 0x88; // read dig_T regs
@@ -102,8 +102,8 @@
float BME280::getTemperature()
{
- uint32_t temp_raw;
- float tempf;
+ int32_t temp_raw;
+ //double tempf;
char cmd[4];
cmd[0] = 0xfa; // temp_msb
@@ -111,37 +111,62 @@
i2c.read(address, &cmd[1], 3);
temp_raw = (cmd[1] << 12) | (cmd[2] << 4) | (cmd[3] >> 4);
+
+
+ double var1, var2, T;
+
+ var1 = (((double)temp_raw)/16384.0 - ((double)dig_T1)/1024.0) * ((double)dig_T2);
+ var2 = ((((double)temp_raw)/131072.0 - ((double)dig_T1)/8192.0) *
+ (((double)temp_raw)/131072.0 - ((double) dig_T1)/8192.0)) * ((double)dig_T3);
+ t_fine = (uint32_t)(var1 + var2);
+ T = (var1 + var2) / 5120.0;
+ return T;
- int32_t temp;
+ /* int32_t temp; //wrong formula
temp =
(((((temp_raw >> 3) - (dig_T1 << 1))) * dig_T2) >> 11) +
- ((((((temp_raw >> 4) - dig_T1) * ((temp_raw >> 4) - dig_T1)) >> 12) * dig_T3) >> 14);
+ ((((((temp_raw >> 4) - dig_T1) * ((temp_raw >> 4) - (int32_t)dig_T1)) >> 12) * (int32_t)dig_T3) >> 14);
t_fine = temp;
temp = (temp * 5 + 128) >> 8;
- tempf = (float)temp;
+ tempf = (double)temp;
- return (((tempf/100.0f)-32)*5/9);
+ return (tempf/100.0f);*/
}
float BME280::getPressure()
{
- uint32_t press_raw;
- float pressf;
+ int32_t press_raw;
+ //float pressf;
char cmd[4];
- int i;
+ //int i;
cmd[0] = 0xf7; // press_msb
i2c.write(address, cmd, 1);
i2c.read(address, &cmd[1], 3);
- for(i=0;i<4;i++)
- printf("cmdp[%d] = %x\r\n", i,cmd[i]);
press_raw = (cmd[1] << 12) | (cmd[2] << 4) | (cmd[3] >> 4);
+ double var1, var2, p;
+
+ var1 = ((double)t_fine/2.0) - 64000.0;
+ var2 = var1 * var1 * ((double)dig_P6) / 32768.0;
+ var2 = var2 + var1 * ((double)dig_P5) * 2.0;
+ var2 = (var2/4.0)+(((double)dig_P4) * 65536.0);
+ var1 = (((double)dig_P3) * var1 * var1 / 524288.0 + ((double)dig_P2) * var1) / 524288.0;
+ var1 = (1.0 + var1 / 32768.0)*((double)dig_P1);
+ if (var1 == 0.0) {
+ return 0; // avoid exception caused by division by zero
+ }
+ p = 1048576.0 - (double)press_raw;
+ p = (p - (var2 / 4096.0)) * 6250.0 / var1;
+ var1 = ((double)dig_P9) * p * p / 2147483648.0;
+ var2 = p * ((double)dig_P8) / 32768.0;
+ p = p + (var1 + var2 + ((double)dig_P7)) / 16.0;
+ return (p/100.0f);
- int32_t var1, var2;
+ /* int32_t var1, var2;
uint32_t press;
var1 = (t_fine >> 1) - 64000;
@@ -164,32 +189,43 @@
press = (press + ((var1 + var2 + dig_P7) >> 4));
pressf = (float)press;
- return (pressf/100.0f);
+ return (pressf/100.0f);*/
}
float BME280::getHumidity()
{
- uint32_t hum_raw;
- float humf;
- char cmd[16];
- int i;
+ int32_t hum_raw;
+ //float humf;
+ char cmd[4];
+
+
cmd[0] = 0xfd; // hum_msb
i2c.write(address, cmd, 1);
- i2c.read(address, &cmd[1], 2);
+ i2c.read(address, cmd, 4);
- printf("address2 = %x\r\n", address);
- for(i=0;i<16;i++)
- printf("cmd[%d] = %x\r\n", i,cmd[i]);
+
+ hum_raw = (cmd[3] << 8) | cmd[2];
+
+
+ double var_H;
- hum_raw = (cmd[1] << 8) | cmd[2];
+ var_H = (((double)t_fine) - 76800.0);
+ var_H = (hum_raw - (((double)dig_H4) * 64.0 + ((double)dig_H5) / 16384.0 * var_H)) *
+ (((double)dig_H2) / 65536.0 * (1.0 + ((double)dig_H6) / 67108864.0 * var_H *
+ (1.0 + ((double)dig_H3) / 67108864.0 * var_H)));
+ var_H = var_H * (1.0 - ((double)dig_H1) * var_H / 524288.0);
+ if (var_H > 100.0) {
+ var_H = 100.0;
+ } else if (var_H < 0.0) {
+ var_H = 0.0;
+ }
+ return var_H;
- printf("hum_raw = %x\r\n", hum_raw);
-
- int32_t v_x1;
+ /* int32_t v_x1;
v_x1 = t_fine - 76800;
@@ -208,6 +244,6 @@
humf = (int32_t)(v_x1 >> 12);
- return (humf/1024.0f);
+ return (humf/1024.0f);*/
}
--- a/include/BME280.h Wed Jun 22 08:02:37 2016 +0000
+++ b/include/BME280.h Tue Jun 28 11:03:39 2016 +0000
@@ -92,7 +92,7 @@
int16_t dig_T2, dig_T3;
uint16_t dig_P1;
int16_t dig_P2, dig_P3, dig_P4, dig_P5, dig_P6, dig_P7, dig_P8, dig_P9;
- uint16_t dig_H1, dig_H3;
+ uint8_t dig_H1, dig_H3;
int16_t dig_H2, dig_H4, dig_H5, dig_H6;
int32_t t_fine;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/I2C_SSD1306Z.cpp Tue Jun 28 11:03:39 2016 +0000
@@ -0,0 +1,451 @@
+//
+// SSD1306Z LCD Driver: 0.96" lcd LY096BG30
+//
+// Interface: I2C
+// pin1: Vcc
+// pin2: Gnd
+// pin3: SCL
+// pin4: SDA
+
+#include "mbed.h"
+#include "I2C_SSD1306Z.h"
+#include "Font8x16.h"
+#include "Font5x7.h"
+
+
+//I2C i2c(I2C_SDA, I2C_SCL);
+extern I2C i2c;
+
+char DisplayBuffer[128*8];
+
+#if 1
+
+void lcdWriteCommand(uint8_t lcd_Command)
+{
+
+ char data[2];
+ data[0]=0x0;
+ data[1]=lcd_Command;
+ // I2C_writeBytes(LCD_I2C_PORT, LCD_I2C_SLA, 0x00, 1, data);
+ // i2c_write_data_block(LCD_I2C_SLA, 0x00, data,1);
+ i2c.write(LCD_I2C_SLA, data, 2, 0);
+
+}
+
+void lcdWriteData(uint8_t lcd_Data)
+{
+
+ char data[2];
+ data[0]=0x40;
+ data[1]=lcd_Data;
+ // I2C_writeBytes(LCD_I2C_PORT, LCD_I2C_SLA, 0x40, 1, data);
+ //i2c_write_data_block(LCD_I2C_SLA, 0x40,data,1);
+ i2c.write(LCD_I2C_SLA, data, 2, 0);
+}
+
+#else
+
+void lcdWriteCommand(uint8_t lcd_Command)
+{
+ uint8_t data[1];
+ data[0]=lcd_Command;
+ // I2C_writeBytes(LCD_I2C_PORT, LCD_I2C_SLA, 0x00, 1, data);
+ i2c_write_data_block(LCD_I2C_SLA, 0x00, data,1);
+
+}
+
+void lcdWriteData(uint8_t lcd_Data)
+{
+ uint8_t data[1];
+ data[0]=lcd_Data;
+ // I2C_writeBytes(LCD_I2C_PORT, LCD_I2C_SLA, 0x40, 1, data);
+ i2c_write_data_block(LCD_I2C_SLA, 0x40,data,1);
+}
+
+#endif
+
+void lcdSetAddr(uint8_t column, uint8_t page)
+{
+ lcdWriteCommand(0xb0+page); // set page address
+ lcdWriteCommand(0x10 | ((column & 0xf0) >> 4)); // set column address MSB
+ lcdWriteCommand(0x00 | (column & 0x0f) ); // set column address LSB
+}
+
+void Init_LCD(void)
+{
+ lcdWriteCommand(0xae); //display off
+ lcdWriteCommand(0x20); //Set Memory Addressing Mode
+ lcdWriteCommand(0x10); //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid
+ lcdWriteCommand(0xb0); //Set Page Start Address for Page Addressing Mode,0-7
+ lcdWriteCommand(0xc8); //Set COM Output Scan Direction
+ lcdWriteCommand(0x00);//---set low column address
+ lcdWriteCommand(0x10);//---set high column address
+ lcdWriteCommand(0x40);//--set start line address
+ lcdWriteCommand(0x81);//--set contrast control register
+ lcdWriteCommand(0x7f);
+ lcdWriteCommand(0xa1);//--set segment re-map 0 to 127
+ lcdWriteCommand(0xa6);//--set normal display
+ lcdWriteCommand(0xa8);//--set multiplex ratio(1 to 64)
+ lcdWriteCommand(0x3F);//
+ lcdWriteCommand(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
+ lcdWriteCommand(0xd3);//-set display offset
+ lcdWriteCommand(0x00);//-not offset
+ lcdWriteCommand(0xd5);//--set display clock divide ratio/oscillator frequency
+ lcdWriteCommand(0xf0);//--set divide ratio
+ lcdWriteCommand(0xd9);//--set pre-charge period
+ lcdWriteCommand(0x22); //
+ lcdWriteCommand(0xda);//--set com pins hardware configuration
+ lcdWriteCommand(0x12);
+ lcdWriteCommand(0xdb);//--set vcomh
+ lcdWriteCommand(0x20);//0x20,0.77xVcc
+ lcdWriteCommand(0x8d);//--set DC-DC enable
+ lcdWriteCommand(0x14);//
+ lcdWriteCommand(0xaf);//--turn on lcd panel
+}
+
+void clear_LCD(void)
+{
+ int16_t x, Y;
+ for (Y=0;Y<LCD_Ymax/8;Y++)
+ {
+ lcdSetAddr(0, Y);
+ for (x=0;x<LCD_Xmax;x++)
+ lcdWriteData(0x00);
+ }
+}
+
+// print char function using Font5x7
+void printC_5x7 (int16_t x, int16_t y, unsigned char ascii_code)
+{
+ uint8_t i;
+ if (x<(LCD_Xmax-5) && y<(LCD_Ymax-7)) {
+ if (ascii_code<0x20) ascii_code=0x20;
+ else if (ascii_code>0x7F) ascii_code=0x20;
+ for (i=0;i<5;i++) {
+ lcdSetAddr((LCD_Xmax+1-x-i), (y/8));
+ lcdWriteData(Font5x7[(ascii_code-0x20)*5+5-i]);
+ }
+ }
+}
+
+void print_C(uint8_t Line, uint8_t Col, char ascii)
+{
+ uint8_t j, i, tmp;
+ for (j=0;j<2;j++) {
+ lcdSetAddr(Col*8, Line*2+j);
+ for (i=0;i<8;i++) {
+ tmp=Font8x16[(ascii-0x20)*16+j*8+i];
+ lcdWriteData(tmp);
+ }
+ }
+}
+
+void print_Line(uint8_t line, char text[])
+{
+ uint8_t Col;
+ for (Col=0; Col<strlen(text); Col++)
+ print_C(line, Col, text[Col]);
+}
+
+void printS(int16_t x, int16_t y, char text[])
+{
+ int8_t i;
+ for (i=0;i<strlen(text);i++)
+ print_C(x+i*8, y,text[i]);
+}
+
+void printS_5x7(int16_t x, int16_t y, char text[])
+{
+ uint8_t i;
+ for (i=0;i<strlen(text);i++) {
+ printC_5x7(x,y,text[i]);
+ x=x+5;
+ }
+}
+
+void draw_Pixel(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor)
+{
+ if (fgColor!=0)
+ DisplayBuffer[x+y/8*LCD_Xmax] |= (0x01<<(y%8));
+ else
+ DisplayBuffer[x+y/8*LCD_Xmax] &= (0xFE<<(y%8));
+
+ lcdSetAddr(x, y/8);
+ lcdWriteData(DisplayBuffer[x+y/8*LCD_Xmax]);
+}
+
+void draw_Bmp8x8(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,k, kx,ky;
+ if (x<(LCD_Xmax-7) && y<(LCD_Ymax-7)) // boundary check
+ for (i=0;i<8;i++){
+ kx=x+i;
+ t=bitmap[i];
+ for (k=0;k<8;k++) {
+ ky=y+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+}
+
+void draw_Bmp32x8(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,k, kx,ky;
+ if (x<(LCD_Xmax-7) && y<(LCD_Ymax-7)) // boundary check
+ for (i=0;i<32;i++){
+ kx=x+i;
+ t=bitmap[i];
+ for (k=0;k<8;k++) {
+ ky=y+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+}
+
+void draw_Bmp120x8(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,k, kx,ky;
+ if (x<(LCD_Xmax-7) && y<(LCD_Ymax-7)) // boundary check
+ for (i=0;i<120;i++){
+ kx=x+i;
+ t=bitmap[i];
+ for (k=0;k<8;k++) {
+ ky=y+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+}
+
+void draw_Bmp8x16(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,k, kx,ky;
+ if (x<(LCD_Xmax-7) && y<(LCD_Ymax-7)) // boundary check
+ for (i=0;i<8;i++){
+ kx=x+i;
+ t=bitmap[i];
+ for (k=0;k<8;k++) {
+ ky=y+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ t=bitmap[i+8];
+ for (k=0;k<8;k++) {
+ ky=y+k+8;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+}
+
+void draw_Bmp16x8(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,k,kx,ky;
+ if (x<(LCD_Xmax-15) && y<(LCD_Ymax-7)) // boundary check
+ for (i=0;i<16;i++)
+ {
+ kx=x+i;
+ t=bitmap[i];
+ for (k=0;k<8;k++) {
+ ky=y+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+}
+
+void draw_Bmp16x16(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,j,k, kx,ky;
+ if (x<(LCD_Xmax-15) && y<(LCD_Ymax-15)) // boundary check
+ for (j=0;j<2; j++){
+ for (i=0;i<16;i++) {
+ kx=x+i;
+ t=bitmap[i+j*16];
+ for (k=0;k<8;k++) {
+ ky=y+j*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp16x24(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,j,k, kx,ky;
+ if (x<(LCD_Xmax-15) && y<(LCD_Ymax-15)) // boundary check
+ for (j=0;j<3; j++){
+ for (i=0;i<16;i++) {
+ kx=x+i;
+ t=bitmap[i+j*16];
+ for (k=0;k<8;k++) {
+ ky=y+j*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp16x32(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t, i,j,k, kx,ky;
+ if (x<(LCD_Xmax-15) && y<(LCD_Ymax-31)) // boundary check
+ for (j=0;j<4; j++) {
+ for (i=0;i<16;i++) {
+ kx=x+i;
+ t=bitmap[i+j*16];
+ for (k=0;k<8;k++) {
+ ky=y+j*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp16x40(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t, i,j,k, kx,ky;
+ if (x<(LCD_Xmax-15) && y<(LCD_Ymax-31)) // boundary check
+ for (j=0;j<5; j++) {
+ for (i=0;i<16;i++) {
+ kx=x+i;
+ t=bitmap[i+j*16];
+ for (k=0;k<8;k++) {
+ ky=y+j*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp16x48(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,j,k,kx,ky;
+ if (x<(LCD_Xmax-15) && y<(LCD_Ymax-47)) // boundary check
+ for (j=0;j<6; j++) {
+ k=x;
+ for (i=0;i<16;i++) {
+ kx=x+i;
+ t=bitmap[i+j*16];
+ for (k=0;k<8;k++) {
+ ky=y+j*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp16x64(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,j,k,kx,ky;
+ if (x<(LCD_Xmax-15) && y==0) // boundary check
+ for (j=0;j<8; j++) {
+ k=x;
+ for (i=0;i<16;i++) {
+ kx=x+i;
+ t=bitmap[i+j*16];
+ for (k=0;k<8;k++) {
+ ky=y+j*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp32x16(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,jx,jy,k,kx,ky;
+ if (x<(LCD_Xmax-31) && y<(LCD_Ymax-15)) // boundary check
+ for (jy=0;jy<2;jy++)
+ for (jx=0;jx<2;jx++) {
+ k=x;
+ for (i=0;i<16;i++) {
+ kx=x+jx*16+i;
+ t=bitmap[i+jx*16+jy*32];
+ for (k=0;k<8;k++) {
+ ky=y+jy*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp32x32(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,jx,jy,k, kx,ky;
+ if (x<(LCD_Xmax-31) && y<(LCD_Ymax-31)) // boundary check
+ for (jy=0;jy<4;jy++)
+ for (jx=0;jx<2;jx++) {
+ k=x;
+ for (i=0;i<16;i++) {
+ kx=x+jx*16+i;
+ t=bitmap[i+jx*16+jy*32];
+ for (k=0;k<8;k++) {
+ ky=y+jy*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp32x48(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,jx,jy,k, kx,ky;
+ if (x<(LCD_Xmax-31) && y<(LCD_Ymax-47)) // boundary check
+ for (jy=0;jy<6;jy++)
+ for (jx=0;jx<2;jx++) {
+ k=x;
+ for (i=0;i<16;i++) {
+ kx=x+jx*16+i;
+ t=bitmap[i+jx*16+jy*32];
+ for (k=0;k<8;k++) {
+ ky=y+jy*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp32x64(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t,i,jx,jy,k, kx,ky;
+ if (x<(LCD_Xmax-31) && y==0) // boundary check
+ for (jy=0;jy<8;jy++)
+ for (jx=0;jx<2;jx++) {
+ k=x;
+ for (i=0;i<16;i++) {
+ kx=x+jx*16+i;
+ t=bitmap[i+jx*16+jy*32];
+ for (k=0;k<8;k++) {
+ ky=y+jy*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_Bmp64x64(int16_t x, int16_t y, uint16_t fgColor, uint16_t bgColor, unsigned char bitmap[])
+{
+ uint8_t t, i,jx,jy,k, kx,ky;
+ if (x<(LCD_Xmax-63) && y==0) // boundary check
+ for (jy=0;jy<8;jy++)
+ for (jx=0;jx<4;jx++) {
+ k=x;
+ for (i=0;i<16;i++) {
+ kx=x+jx*16+i;
+ t=bitmap[i+jx*16+jy*64];
+ for (k=0;k<8;k++) {
+ ky=y+jy*8+k;
+ if (t&(0x01<<k)) draw_Pixel(kx,ky,fgColor,bgColor);
+ }
+ }
+ }
+}
+
+void draw_LCD(unsigned char *buffer)
+{
+ uint8_t x,y;
+ for (x=0; x<LCD_Xmax; x++) {
+ for (y=0; y<(LCD_Ymax/8); y++) {
+ lcdSetAddr(x ,y);
+ lcdWriteData(buffer[x+y*LCD_Xmax]);
+ }
+ }
+}
+
--- a/main.cpp Wed Jun 22 08:02:37 2016 +0000
+++ b/main.cpp Tue Jun 28 11:03:39 2016 +0000
@@ -1,33 +1,31 @@
#include "mbed.h"
#include "I2C_SSD1306Z.h"
#include "BME280.h"
+#include "setwifi.h"
+RawSerial pc(USBTX, USBRX); // tx, rx
I2C i2c(I2C_SDA, I2C_SCL);
-BME280 sensor(PB_3, PB_10);
-
-DigitalOut myled(LED1);
-Serial pc(SERIAL_TX, SERIAL_RX);
+I2C bme(PB_3, PB_10);
+BME280 sensor(bme, DEFAULT_SLAVE_ADDRESS);
+ESP8266Interface wi_fi(PA_11, PA_12, D0, "ittraining402","itstudent"); // tx, rx
-unsigned char BMP_Logo_ittraining[128*8] = { // IT Logo
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xF8,0xF8,0xF8,0xC0,0xC0,0xC0,0x00,0xC0,0xC0,0xC0,0xF8,0xF8,0xF8,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0x78,0x78,0x70,0xE0,0xC0,0x00,0x60,0x60,0x60,0xE0,0xE0,0x60,0x78,0x78,0x70,0x60,0x60,0xE0,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xB0,0xB0,0x98,0x90,0x40,0xD0,0xF8,0x70,0x70,0xF0,0x58,0x10,0x00,0xB0,0xB0,0xB0,0xB0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x70,0x70,0x70,0xF0,0xF0,0x70,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xD8,0xF8,0xF0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x61,0xF1,0xE7,0x87,0x07,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x07,0x87,0xC7,0xF1,0x61,0x21,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x83,0x87,0x8F,0x8D,0xFC,0xFC,0x8C,0x8C,0x80,0x00,0xF0,0xF0,0xF1,0x37,0x3F,0x3E,0x30,0xF0,0xF0,0x38,0x3F,0x3F,0x33,0xF0,0xF0,0x00,0x00,0x00,0x00,0xC0,0xC0,0xFF,0xFF,0xED,0xCD,0xCD,0xCD,0xC0,0xF2,0xDB,0xDE,0xCE,0xDE,0xFF,0xD2,0xC0,0xCD,0xCD,0xCD,0xCD,0xFF,0xFF,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x10,0x7E,0xFF,0xC3,0x00,0x00,0x8F,0x8F,0x81,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0xB9,0x81,0x8F,0x8F,0x8F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0xBC,0xF8,0xF0,0xE0,0xF0,0xF8,0xBC,0x9E,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFD,0xF1,0x01,0xFF,0xFF,0x01,0x71,0x7D,0x0C,0x00,0xFE,0xFE,0xFE,0x06,0x06,0x06,0xFF,0xFF,0x06,0x06,0x06,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0xC7,0xC7,0xC7,0xC0,0xC0,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xF6,0xF6,0xFE,0xDE,0xDE,0xCE,0xCE,0xC6,0xC0,0xC0,0xC7,0xC7,0xC7,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x08,0x38,0x38,0x3D,0x3F,0x0F,0x00,0x03,0x83,0xC3,0xFF,0x7F,0x03,0x03,0x03,0xFF,0xFF,0x03,0x03,0x03,0xE3,0xC3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1C,0x1C,0x0E,0x0E,0x0E,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x01,0x01,0x03,0x03,0x07,0x07,0x0E,0x0E,0x0E,0x1C,0x1C,0x0C,0x00,0x00,0x00,0x00,0x0C,0x0D,0x0C,0x0E,0x07,0x07,0x06,0x06,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x00,0x00,0x0F,0x0F,0x00,0x03,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0E,0x0E,0x0E,0x0E,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00,0x04,0x0C,0x0E,0x07,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x0E,0x0E,0x0E,0x0F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
+const char* TEST_SERVER_ADDRESS = "192.168.2.65";
+const int TEST_SERVER_PORT = 8889;
+
+
int main()
{
-
+ pc.baud(115200);
char tbuffer[50], hpbuffer[50], hbuffer[50];
- printf("init oled\n");
-
+ printf("init oled\r\n");
Init_LCD();
clear_LCD();
+ TCPSocketConnection socket;
+
+ if((setwifi(&wi_fi)) != 0)
+ printf("wifi not connect\r\n");
while (1) {
@@ -44,23 +42,40 @@
print_Line(0, tbuffer);
print_Line(1, hpbuffer);
print_Line(2, hbuffer);
-
- /* print_Line(0,"%2.2f degC\r\n", (sensor.getTemperature()-32)*5.0/9.0);
- print_Line(1, "%04.2f hPa\r\n", sensor.getPressure());
- print_Line(2, "%2.2f %%\r\n", sensor.getHumidity());
+
+
+ if(socket.is_connected() != true)
+ {
+ while (socket.connect(TEST_SERVER_ADDRESS, TEST_SERVER_PORT) < 0) {
+ pc.printf("Unable to connect to (%s) on port (%d)\n", TEST_SERVER_ADDRESS, TEST_SERVER_PORT);
+ wait(1);
+ }
+ }
+ char endl[5] = " \r\n";
+ strcat(tbuffer, endl);
+ strcat(hpbuffer, endl);
+ strcat(hbuffer, endl);
+
+
+ socket.send_all(tbuffer, strlen(tbuffer));
+ socket.send_all(hpbuffer, strlen(hpbuffer));
+ socket.send_all(hbuffer, strlen(hbuffer));
- /* draw_LCD(BMP_Logo_ittraining);
- wait(2.0);
- clear_LCD();
- print_Line(0, "IT Maker Space");
- print_Line(1, "ARM mbed RTOS");
- print_Line(2, "ST Micro");
- print_Line(3, "ittraining.com"); */
- wait(2.0);
- clear_LCD();
+ //printf("%s%s%s", tbuffer, hpbuffer, hbuffer);
+
+ /*char rev[1024];
+ socket.receive(rev, 1024);
+ printf("%s\r\n", rev);*/
+
+
+
+ wait(1);
+ clear_LCD();
+ wait(0.5);
+
}
-
+ socket.close();
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-src.lib Tue Jun 28 11:03:39 2016 +0000 @@ -0,0 +1,1 @@ +https://developer.mbed.org/users/kaizen/code/mbed-src/#d1b257119699
--- a/mbed.bld Wed Jun 22 08:02:37 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/aae6fcc7d9bb \ No newline at end of file