V4

Dependencies:   BMP280

Fork of Thread_Communication_V3 by BDG

Committer:
dnonoo
Date:
Sat Dec 30 18:55:22 2017 +0000
Revision:
10:c10d1337d754
Parent:
9:b838c5787ed7
Child:
11:19135c83c208
Added pin CD on SD Card to PE_10 (digitalIn) to check if SD card is inserted and Help command in Serial Thread;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
benparkes 0:cb3a5c15b01e 1 #include "LCD.h"
benparkes 0:cb3a5c15b01e 2 #include "BMP280.h"
dnonoo 8:ab6322afa341 3 #include "SDBlockDevice.h"
dnonoo 8:ab6322afa341 4 #include "FATFileSystem.h"
benparkes 0:cb3a5c15b01e 5
dnonoo 7:f017a37bcf1b 6 #define ENTER_KEY 1
dnonoo 7:f017a37bcf1b 7 #define MAX_SAMPLES 120
dnonoo 7:f017a37bcf1b 8 #define SENSOR_UPDATE 1
dnonoo 7:f017a37bcf1b 9 #define DATA_READY 1
dnonoo 7:f017a37bcf1b 10 #define SAMPLING_PERIOD 10
dnonoo 7:f017a37bcf1b 11 #define ON 1
dnonoo 7:f017a37bcf1b 12 #define OFF 0
dnonoo 7:f017a37bcf1b 13
dnonoo 9:b838c5787ed7 14 #if !FEATURE_LWIP
dnonoo 9:b838c5787ed7 15 #error [NOT_SUPPORTED] LWIP not supported for this target
dnonoo 9:b838c5787ed7 16 #endif
dnonoo 9:b838c5787ed7 17
dnonoo 9:b838c5787ed7 18 #include "mbed.h"
dnonoo 9:b838c5787ed7 19 #include "EthernetInterface.h"
dnonoo 9:b838c5787ed7 20 #include "TCPServer.h"
dnonoo 9:b838c5787ed7 21 #include "TCPSocket.h"
dnonoo 9:b838c5787ed7 22 #include <iostream>
dnonoo 9:b838c5787ed7 23 #include <string>
dnonoo 9:b838c5787ed7 24
dnonoo 9:b838c5787ed7 25 #define HTTP_STATUS_LINE "HTTP/1.0 200 OK"
dnonoo 9:b838c5787ed7 26 #define HTTP_HEADER_FIELDS "Content-Type: text/html; charset=utf-8"
dnonoo 9:b838c5787ed7 27 #define HTTP_MESSAGE_BODY1 "" \
dnonoo 9:b838c5787ed7 28 "<html>" "\r\n" \
dnonoo 9:b838c5787ed7 29 " <body style=\"display:flex;text-align:center\">" "\r\n" \
dnonoo 9:b838c5787ed7 30 " <meta http-equiv=\"refresh\" content=\"1; \"\> " "\r\n" \
dnonoo 9:b838c5787ed7 31 " <div style=\"margin:auto\">" "\r\n" \
dnonoo 9:b838c5787ed7 32 " <h1>Sensor Data</h1>" "\r\n" \
dnonoo 9:b838c5787ed7 33 " <p> LDR: " \
dnonoo 9:b838c5787ed7 34
dnonoo 9:b838c5787ed7 35 #define HTTP_MESSAGE_BODY2 "" \
dnonoo 9:b838c5787ed7 36 "</p>" "\r\n" \
dnonoo 9:b838c5787ed7 37 " </div>" "\r\n" \
dnonoo 9:b838c5787ed7 38 " </body>" "\r\n" \
dnonoo 9:b838c5787ed7 39 "</html>"
dnonoo 9:b838c5787ed7 40
dnonoo 9:b838c5787ed7 41 #define HTTP_RESPONSE HTTP_STATUS_LINE "\r\n" \
dnonoo 9:b838c5787ed7 42 HTTP_HEADER_FIELDS "\r\n" \
dnonoo 9:b838c5787ed7 43 "\r\n" \
dnonoo 9:b838c5787ed7 44 HTTP_MESSAGE_BODY "\r\n"
dnonoo 9:b838c5787ed7 45
dnonoo 9:b838c5787ed7 46 #define IP "10.0.0.10"
dnonoo 9:b838c5787ed7 47 #define NETMASK "255.0.0.0"
dnonoo 9:b838c5787ed7 48 #define GATEWAY "10.0.0.1"
dnonoo 9:b838c5787ed7 49
dnonoo 9:b838c5787ed7 50
benparkes 0:cb3a5c15b01e 51 extern LCD lcd;
benparkes 0:cb3a5c15b01e 52 extern BMP280 sensor;
dnonoo 8:ab6322afa341 53 extern SDBlockDevice sd (PB_5, D12, D13, D10);
benparkes 0:cb3a5c15b01e 54
benparkes 0:cb3a5c15b01e 55 /* External LEDs as Open Drain */
dnonoo 7:f017a37bcf1b 56 extern DigitalOut Red_ext (PE_15);
dnonoo 7:f017a37bcf1b 57 extern DigitalOut Yellow_ext (PB_10);
dnonoo 7:f017a37bcf1b 58 extern DigitalOut Green_ext (PB_11);
benparkes 0:cb3a5c15b01e 59
benparkes 0:cb3a5c15b01e 60 /* Configure On-board LEDS */
dnonoo 7:f017a37bcf1b 61 extern DigitalOut Green_int (LED1);
dnonoo 7:f017a37bcf1b 62 extern DigitalOut Blue_int (LED2);
dnonoo 7:f017a37bcf1b 63 extern DigitalOut Red_int (LED3);
benparkes 0:cb3a5c15b01e 64
benparkes 0:cb3a5c15b01e 65 /* Configure Digital In Switches */
dnonoo 7:f017a37bcf1b 66 extern DigitalIn SW_L (PE_12);
dnonoo 7:f017a37bcf1b 67 extern DigitalIn SW_R (PE_14);
dnonoo 10:c10d1337d754 68 extern DigitalIn sdIn (PE_10);
dnonoo 8:ab6322afa341 69 //extern DigitalIn SW_B (USER_BUTTON); //defined as interrupt now for SD
benparkes 0:cb3a5c15b01e 70 /* Configure Analogue Pins */
benparkes 0:cb3a5c15b01e 71 /* Analogue IN */
dnonoo 7:f017a37bcf1b 72 extern AnalogIn LDR_In (PA_0);
benparkes 0:cb3a5c15b01e 73
benparkes 0:cb3a5c15b01e 74 /* Congfigure Serial interface */
dnonoo 7:f017a37bcf1b 75 Serial pc(USBTX, USBRX);
dnonoo 7:f017a37bcf1b 76
dnonoo 7:f017a37bcf1b 77 /* Mail */
dnonoo 7:f017a37bcf1b 78 typedef struct {
dnonoo 7:f017a37bcf1b 79 float LDR_Value;
dnonoo 7:f017a37bcf1b 80 float temp_Value;
dnonoo 7:f017a37bcf1b 81 float press_Value;
dnonoo 7:f017a37bcf1b 82 } mail_t;
dnonoo 7:f017a37bcf1b 83
dnonoo 7:f017a37bcf1b 84 Mail<mail_t, 16> mail_box;
dnonoo 7:f017a37bcf1b 85
dnonoo 7:f017a37bcf1b 86 //data FIFO buffer
dnonoo 7:f017a37bcf1b 87 char data_buffer[MAX_SAMPLES][64];
dnonoo 7:f017a37bcf1b 88 int sample_h = 0;
dnonoo 7:f017a37bcf1b 89 int sample_t = 0;
dnonoo 7:f017a37bcf1b 90 int data_h = 0;
dnonoo 7:f017a37bcf1b 91 int data_t = 0;
dnonoo 7:f017a37bcf1b 92 struct tm * sample_epoch;
dnonoo 7:f017a37bcf1b 93
dnonoo 7:f017a37bcf1b 94
dnonoo 7:f017a37bcf1b 95 //Serial_CMD
dnonoo 7:f017a37bcf1b 96 volatile int rx_in=0;
dnonoo 7:f017a37bcf1b 97 char rx_buffer[32];
dnonoo 7:f017a37bcf1b 98 time_t raw_time = time(NULL);
dnonoo 7:f017a37bcf1b 99 char serial_buffer[80];
dnonoo 7:f017a37bcf1b 100
dnonoo 7:f017a37bcf1b 101 extern void POST();