voor Arne

Dependencies:   ESP8266Interface FXAS21002 FXOS8700 Hexi_OLED_SSD1351

Fork of Hexi_Magneto-v2_Example by Hexiwear

Committer:
blownelco
Date:
Fri Dec 02 15:06:06 2016 +0000
Revision:
1:31908216b9ac
Parent:
0:3fcdc27ab845
Child:
2:3c1fe1657db9
before wifi input

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GregC 0:3fcdc27ab845 1 #include "mbed.h"
GregC 0:3fcdc27ab845 2 #include "FXOS8700.h"
GregC 0:3fcdc27ab845 3 #include "Hexi_OLED_SSD1351.h"
GregC 0:3fcdc27ab845 4 #include "images.h"
GregC 0:3fcdc27ab845 5 #include "string.h"
GregC 0:3fcdc27ab845 6
GregC 0:3fcdc27ab845 7 // Pin connections
GregC 0:3fcdc27ab845 8 DigitalOut led1(LED_GREEN); // RGB LED
blownelco 1:31908216b9ac 9 DigitalOut PWD(PTB2);
blownelco 1:31908216b9ac 10 DigitalOut G15(PTB11);
blownelco 1:31908216b9ac 11
blownelco 1:31908216b9ac 12
blownelco 1:31908216b9ac 13
GregC 0:3fcdc27ab845 14 Serial pc(USBTX, USBRX); // Serial interface
blownelco 1:31908216b9ac 15 Serial wifi(PTD3, PTD2);
GregC 0:3fcdc27ab845 16 FXOS8700 mag(PTC11, PTC10);
GregC 0:3fcdc27ab845 17 SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); // SSD1351 OLED Driver (MOSI,SCLK,POWER,CS,RST,DC)
GregC 0:3fcdc27ab845 18
GregC 0:3fcdc27ab845 19 // Variables
GregC 0:3fcdc27ab845 20 float mag_data[3]; // Storage for the data from the sensor
GregC 0:3fcdc27ab845 21 float mag_rms=0.0; // RMS value from the sensor
GregC 0:3fcdc27ab845 22 float mx, my, mz; // Integer value from the sensor to be displayed
GregC 0:3fcdc27ab845 23 const uint8_t *image1; // Pointer for the image to be displayed
GregC 0:3fcdc27ab845 24 char text1[20]; // Text Buffer for dynamic value displayed
GregC 0:3fcdc27ab845 25 char text2[20]; // Text Buffer for dynamic value displayed
GregC 0:3fcdc27ab845 26 char text3[20]; // Text Buffer for dynamic value displayed
GregC 0:3fcdc27ab845 27
GregC 0:3fcdc27ab845 28 int main() {
blownelco 1:31908216b9ac 29
blownelco 1:31908216b9ac 30 PWD = 1;
blownelco 1:31908216b9ac 31 G15 = 0;
blownelco 1:31908216b9ac 32 /*Wifi initialisation commands */
blownelco 1:31908216b9ac 33
blownelco 1:31908216b9ac 34
blownelco 1:31908216b9ac 35 wifi.baud(9600);
blownelco 1:31908216b9ac 36 //wifi.format(8,"None",1);
blownelco 1:31908216b9ac 37 Thread::wait(1000);
blownelco 1:31908216b9ac 38
blownelco 1:31908216b9ac 39 printf("cmd -> AT\n");
blownelco 1:31908216b9ac 40
blownelco 1:31908216b9ac 41 while (!pc.readable())
blownelco 1:31908216b9ac 42 {
blownelco 1:31908216b9ac 43 }
blownelco 1:31908216b9ac 44
GregC 0:3fcdc27ab845 45
blownelco 1:31908216b9ac 46 //wifi.printf("AT/n");
blownelco 1:31908216b9ac 47 wifi.printf("AT%c%c",0x0d,0x0A);
blownelco 1:31908216b9ac 48
blownelco 1:31908216b9ac 49 Thread::wait(1000);
blownelco 1:31908216b9ac 50 //char c;
blownelco 1:31908216b9ac 51 //char buffer[128];
blownelco 1:31908216b9ac 52
blownelco 1:31908216b9ac 53 printf("cmd -> AT+GMR\n");
blownelco 1:31908216b9ac 54
blownelco 1:31908216b9ac 55
blownelco 1:31908216b9ac 56 wifi.printf("AT+GMR%c%c",0x0d,0x0A);
blownelco 1:31908216b9ac 57
blownelco 1:31908216b9ac 58 Thread::wait(1000);
blownelco 1:31908216b9ac 59
blownelco 1:31908216b9ac 60 printf("cmd -> AT+ CIPSTATUS\n");
blownelco 1:31908216b9ac 61
blownelco 1:31908216b9ac 62 wifi.printf("AT+CIPSTATUS%c%c",0x0d,0x0A);
blownelco 1:31908216b9ac 63
blownelco 1:31908216b9ac 64
blownelco 1:31908216b9ac 65 while(1) {
blownelco 1:31908216b9ac 66
blownelco 1:31908216b9ac 67 //printf("send AT");
blownelco 1:31908216b9ac 68 //wifi.printf("AT/0x0D/0x0A");
blownelco 1:31908216b9ac 69 //wait(0.5); werkt niet
blownelco 1:31908216b9ac 70
blownelco 1:31908216b9ac 71 if(pc.readable()) {
blownelco 1:31908216b9ac 72 wifi.putc(pc.getc());
blownelco 1:31908216b9ac 73
blownelco 1:31908216b9ac 74 }
blownelco 1:31908216b9ac 75 if(wifi.readable()) {
blownelco 1:31908216b9ac 76 pc.putc(wifi.getc());
blownelco 1:31908216b9ac 77
blownelco 1:31908216b9ac 78 }
blownelco 1:31908216b9ac 79 }
blownelco 1:31908216b9ac 80
blownelco 1:31908216b9ac 81 // c = wifi.getc();
blownelco 1:31908216b9ac 82
blownelco 1:31908216b9ac 83 //wifi.gets(buffer, 4);
blownelco 1:31908216b9ac 84
blownelco 1:31908216b9ac 85 //pc.printf("I got '%c' and '%s'\n", c, buffer);
blownelco 1:31908216b9ac 86
blownelco 1:31908216b9ac 87 //
blownelco 1:31908216b9ac 88
blownelco 1:31908216b9ac 89
blownelco 1:31908216b9ac 90 /* end wifi */
GregC 0:3fcdc27ab845 91 // Configure Accelerometer FXOS8700, Magnetometer FXOS8700
GregC 0:3fcdc27ab845 92 mag.mag_config();
GregC 0:3fcdc27ab845 93
GregC 0:3fcdc27ab845 94 /* Setting pointer location of the 96 by 96 pixel bitmap */
GregC 0:3fcdc27ab845 95 image1 = Magneto;
GregC 0:3fcdc27ab845 96
GregC 0:3fcdc27ab845 97 /* Turn on the backlight of the OLED Display */
GregC 0:3fcdc27ab845 98 // oled.DimScreenON();
GregC 0:3fcdc27ab845 99
GregC 0:3fcdc27ab845 100 /* Fill 96px by 96px Screen with 96px by 96px NXP Image starting at x=0,y=0 */
GregC 0:3fcdc27ab845 101 oled.DrawImage(image1,0,0);
GregC 0:3fcdc27ab845 102
GregC 0:3fcdc27ab845 103
GregC 0:3fcdc27ab845 104 while (true)
GregC 0:3fcdc27ab845 105 {
GregC 0:3fcdc27ab845 106
GregC 0:3fcdc27ab845 107 mag.acquire_mag_data_uT(mag_data);
GregC 0:3fcdc27ab845 108 mag_rms = sqrt(((mag_data[0]*mag_data[0])+(mag_data[1]*mag_data[1])+(mag_data[2]*mag_data[2]))/3);
GregC 0:3fcdc27ab845 109 printf("Magnetometer \tX-Axis %4.2f \tY-Axis %4.2f \tZ-Axis %4.2f \tRMS %4.2f\n\n\r",mag_data[0],mag_data[1],mag_data[2],mag_rms);
GregC 0:3fcdc27ab845 110 wait(0.01);
GregC 0:3fcdc27ab845 111 mx = mag_data[0];
GregC 0:3fcdc27ab845 112 my = mag_data[1];
GregC 0:3fcdc27ab845 113 mz = mag_data[2];
GregC 0:3fcdc27ab845 114
GregC 0:3fcdc27ab845 115 /* Get OLED Class Default Text Properties */
GregC 0:3fcdc27ab845 116 oled_text_properties_t textProperties = {0};
GregC 0:3fcdc27ab845 117 oled.GetTextProperties(&textProperties);
GregC 0:3fcdc27ab845 118
GregC 0:3fcdc27ab845 119 /* Set text properties to white and right aligned for the dynamic text */
GregC 0:3fcdc27ab845 120 textProperties.fontColor = COLOR_BLUE;
GregC 0:3fcdc27ab845 121 textProperties.alignParam = OLED_TEXT_ALIGN_LEFT;
GregC 0:3fcdc27ab845 122 oled.SetTextProperties(&textProperties);
GregC 0:3fcdc27ab845 123
GregC 0:3fcdc27ab845 124 /* Display Legends */
GregC 0:3fcdc27ab845 125 strcpy((char *) text1,"X-Axis (uT):");
GregC 0:3fcdc27ab845 126 oled.Label((uint8_t *)text1,3,45);
GregC 0:3fcdc27ab845 127
GregC 0:3fcdc27ab845 128 /* Format the value */
GregC 0:3fcdc27ab845 129 sprintf(text1,"%4.2f",mx);
GregC 0:3fcdc27ab845 130 /* Display time reading in 35px by 15px textbox at(x=55, y=40) */
GregC 0:3fcdc27ab845 131 oled.TextBox((uint8_t *)text1,70,45,20,15); //Increase textbox for more digits
GregC 0:3fcdc27ab845 132
GregC 0:3fcdc27ab845 133 /* Set text properties to white and right aligned for the dynamic text */
GregC 0:3fcdc27ab845 134 textProperties.fontColor = COLOR_GREEN;
GregC 0:3fcdc27ab845 135 textProperties.alignParam = OLED_TEXT_ALIGN_LEFT;
GregC 0:3fcdc27ab845 136 oled.SetTextProperties(&textProperties);
GregC 0:3fcdc27ab845 137
GregC 0:3fcdc27ab845 138 /* Display Legends */
GregC 0:3fcdc27ab845 139 strcpy((char *) text2,"Y-Axis (uT):");
GregC 0:3fcdc27ab845 140 oled.Label((uint8_t *)text2,3,62);
GregC 0:3fcdc27ab845 141
GregC 0:3fcdc27ab845 142 /* Format the value */
GregC 0:3fcdc27ab845 143 sprintf(text2,"%4.2f",my);
GregC 0:3fcdc27ab845 144 /* Display time reading in 35px by 15px textbox at(x=55, y=40) */
GregC 0:3fcdc27ab845 145 oled.TextBox((uint8_t *)text2,70,62,20,15); //Increase textbox for more digits
GregC 0:3fcdc27ab845 146
GregC 0:3fcdc27ab845 147 /* Set text properties to white and right aligned for the dynamic text */
GregC 0:3fcdc27ab845 148 textProperties.fontColor = COLOR_RED;
GregC 0:3fcdc27ab845 149 textProperties.alignParam = OLED_TEXT_ALIGN_LEFT;
GregC 0:3fcdc27ab845 150 oled.SetTextProperties(&textProperties);
GregC 0:3fcdc27ab845 151
GregC 0:3fcdc27ab845 152 /* Display Legends */
GregC 0:3fcdc27ab845 153 strcpy((char *) text3,"Z-Axis (uT):");
GregC 0:3fcdc27ab845 154 oled.Label((uint8_t *)text3,3,79);
GregC 0:3fcdc27ab845 155
GregC 0:3fcdc27ab845 156 /* Format the value */
GregC 0:3fcdc27ab845 157 sprintf(text3,"%4.2f",mz);
GregC 0:3fcdc27ab845 158 /* Display time reading in 35px by 15px textbox at(x=55, y=40) */
GregC 0:3fcdc27ab845 159 oled.TextBox((uint8_t *)text3,70,79,20,15); //Increase textbox for more digits
GregC 0:3fcdc27ab845 160
GregC 0:3fcdc27ab845 161 led1 = !led1;
GregC 0:3fcdc27ab845 162 Thread::wait(250);
GregC 0:3fcdc27ab845 163 }
GregC 0:3fcdc27ab845 164 }