Nucleo STM32 F401RE , NodeMCU and TCP Conneciton

Dependencies:   BufferedSerial mbed-rtos mbed

Fork of NucleoF401_ESP8622 by Veysel KARADAG

Connection SCHEMA

/media/uploads/veyselka/schema.jpg

SOCKET DATA

/media/uploads/veyselka/portpeeker.jpg

DETAIL DESCRIPTION

http://veyselkaradag.blogspot.com.tr/

Committer:
veyselka
Date:
Tue Jan 13 15:48:44 2015 +0000
Revision:
0:515a38e245a4
Child:
1:4a50b910342c
V.0001;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
veyselka 0:515a38e245a4 1 /* ---------------------------------------------------------------------------
veyselka 0:515a38e245a4 2 ** This software is in the public domain, furnished "as is", without technical
veyselka 0:515a38e245a4 3 ** support, and with no warranty, express or implied, as to its usefulness for
veyselka 0:515a38e245a4 4 ** any purpose.
veyselka 0:515a38e245a4 5 **
veyselka 0:515a38e245a4 6 ** main.ccp
veyselka 0:515a38e245a4 7 ** Quectel M95 GPRS module with STM32F401RE Nucleo Board
veyselka 0:515a38e245a4 8 **
veyselka 0:515a38e245a4 9 ** Author: <veyselka@hotmail.com>
veyselka 0:515a38e245a4 10 ** -------------------------------------------------------------------------*/
veyselka 0:515a38e245a4 11
veyselka 0:515a38e245a4 12
veyselka 0:515a38e245a4 13 #include "mbed.h"
veyselka 0:515a38e245a4 14 #include "rtos.h"
veyselka 0:515a38e245a4 15 #include "ID_STM32F4.h"
veyselka 0:515a38e245a4 16 #include "modem.h"
veyselka 0:515a38e245a4 17
veyselka 0:515a38e245a4 18
veyselka 0:515a38e245a4 19
veyselka 0:515a38e245a4 20 //------------------------------------
veyselka 0:515a38e245a4 21 // Hyperterminal configuration
veyselka 0:515a38e245a4 22 // 9600 bauds, 8-bit data, no parity
veyselka 0:515a38e245a4 23 //------------------------------------
veyselka 0:515a38e245a4 24
veyselka 0:515a38e245a4 25
veyselka 0:515a38e245a4 26 Serial pc(USBTX, USBRX);
veyselka 0:515a38e245a4 27
veyselka 0:515a38e245a4 28 Modem com(PA_9, PA_10);
veyselka 0:515a38e245a4 29
veyselka 0:515a38e245a4 30
veyselka 0:515a38e245a4 31
veyselka 0:515a38e245a4 32
veyselka 0:515a38e245a4 33
veyselka 0:515a38e245a4 34 InterruptIn button(USER_BUTTON);
veyselka 0:515a38e245a4 35 DigitalOut myled(LED1);
veyselka 0:515a38e245a4 36
veyselka 0:515a38e245a4 37 int sms_flag;
veyselka 0:515a38e245a4 38
veyselka 0:515a38e245a4 39 void GSM(void const *args);
veyselka 0:515a38e245a4 40 void GPS(void const *args);
veyselka 0:515a38e245a4 41 void SERIAL(void const *args);
veyselka 0:515a38e245a4 42 void button_pressed(void);
veyselka 0:515a38e245a4 43
veyselka 0:515a38e245a4 44 char command_buffer[255];
veyselka 0:515a38e245a4 45
veyselka 0:515a38e245a4 46 int main()
veyselka 0:515a38e245a4 47 {
veyselka 0:515a38e245a4 48 button.fall(&button_pressed);
veyselka 0:515a38e245a4 49 pc.baud(115200);
veyselka 0:515a38e245a4 50 com.baud(115200);
veyselka 0:515a38e245a4 51
veyselka 0:515a38e245a4 52
veyselka 0:515a38e245a4 53
veyselka 0:515a38e245a4 54
veyselka 0:515a38e245a4 55 Thread GSM_THREAD(GSM);
veyselka 0:515a38e245a4 56 Thread GPS_THREAD(GPS);
veyselka 0:515a38e245a4 57 Thread SERIAL_THREAD(SERIAL);
veyselka 0:515a38e245a4 58
veyselka 0:515a38e245a4 59 while(1);
veyselka 0:515a38e245a4 60
veyselka 0:515a38e245a4 61 }
veyselka 0:515a38e245a4 62
veyselka 0:515a38e245a4 63
veyselka 0:515a38e245a4 64
veyselka 0:515a38e245a4 65 void GSM(void const *args) {
veyselka 0:515a38e245a4 66
veyselka 0:515a38e245a4 67 sms_flag=0;
veyselka 0:515a38e245a4 68 com.printf("ATE1\r\n");
veyselka 0:515a38e245a4 69 Thread::wait(100);
veyselka 0:515a38e245a4 70
veyselka 0:515a38e245a4 71 while(true) {
veyselka 0:515a38e245a4 72 myled=!myled;
veyselka 0:515a38e245a4 73
veyselka 0:515a38e245a4 74
veyselka 0:515a38e245a4 75
veyselka 0:515a38e245a4 76 com.printf("AT+GSN\r\n");
veyselka 0:515a38e245a4 77 Thread::wait(100);
veyselka 0:515a38e245a4 78 memset(command_buffer,0,128);
veyselka 0:515a38e245a4 79 com.read_buf(command_buffer,128);
veyselka 0:515a38e245a4 80 pc.printf("Command ANs:%s:\r\n",command_buffer);
veyselka 0:515a38e245a4 81
veyselka 0:515a38e245a4 82 if(sms_flag==1){
veyselka 0:515a38e245a4 83
veyselka 0:515a38e245a4 84 com.printf("AT+CMGF=1\r\n");
veyselka 0:515a38e245a4 85 Thread::wait(250);
veyselka 0:515a38e245a4 86 com.printf("AT+CMGS=\"+905355948809\"\r\n");
veyselka 0:515a38e245a4 87 Thread::wait(1000);
veyselka 0:515a38e245a4 88 com.puts("Hello WORLD");
veyselka 0:515a38e245a4 89 Thread::wait(250);
veyselka 0:515a38e245a4 90 com.putc((char)0x1a);
veyselka 0:515a38e245a4 91 Thread::wait(1000);
veyselka 0:515a38e245a4 92
veyselka 0:515a38e245a4 93 sms_flag=0;
veyselka 0:515a38e245a4 94
veyselka 0:515a38e245a4 95 }
veyselka 0:515a38e245a4 96 Thread::wait(1000);
veyselka 0:515a38e245a4 97 }
veyselka 0:515a38e245a4 98 }
veyselka 0:515a38e245a4 99
veyselka 0:515a38e245a4 100
veyselka 0:515a38e245a4 101 void GPS(void const *args) {
veyselka 0:515a38e245a4 102
veyselka 0:515a38e245a4 103
veyselka 0:515a38e245a4 104
veyselka 0:515a38e245a4 105 while(true) {
veyselka 0:515a38e245a4 106
veyselka 0:515a38e245a4 107 // Read a line from the large rx buffer from rx interrupt routine
veyselka 0:515a38e245a4 108
veyselka 0:515a38e245a4 109 Thread::wait(500);
veyselka 0:515a38e245a4 110 }
veyselka 0:515a38e245a4 111 }
veyselka 0:515a38e245a4 112
veyselka 0:515a38e245a4 113
veyselka 0:515a38e245a4 114 void SERIAL(void const *args) {
veyselka 0:515a38e245a4 115
veyselka 0:515a38e245a4 116 int count=0;
veyselka 0:515a38e245a4 117 int ID=0;
veyselka 0:515a38e245a4 118 uint8_t uID[12];
veyselka 0:515a38e245a4 119
veyselka 0:515a38e245a4 120 ID= TM_ID_GetSignature() ;
veyselka 0:515a38e245a4 121
veyselka 0:515a38e245a4 122 printf("ID:%X:\r\n",ID);
veyselka 0:515a38e245a4 123
veyselka 0:515a38e245a4 124
veyselka 0:515a38e245a4 125 printf("uID:");
veyselka 0:515a38e245a4 126 for(count=0;count<12;count++){
veyselka 0:515a38e245a4 127 uID[count]=TM_ID_GetUnique8(count);
veyselka 0:515a38e245a4 128 printf("0x%02X ",uID[count]);
veyselka 0:515a38e245a4 129
veyselka 0:515a38e245a4 130 }
veyselka 0:515a38e245a4 131 printf("\r\n");
veyselka 0:515a38e245a4 132 count=0;
veyselka 0:515a38e245a4 133
veyselka 0:515a38e245a4 134
veyselka 0:515a38e245a4 135
veyselka 0:515a38e245a4 136
veyselka 0:515a38e245a4 137 while(true) {
veyselka 0:515a38e245a4 138
veyselka 0:515a38e245a4 139
veyselka 0:515a38e245a4 140 Thread::wait(1000);
veyselka 0:515a38e245a4 141 }
veyselka 0:515a38e245a4 142 }
veyselka 0:515a38e245a4 143
veyselka 0:515a38e245a4 144
veyselka 0:515a38e245a4 145
veyselka 0:515a38e245a4 146 void button_pressed()
veyselka 0:515a38e245a4 147 {
veyselka 0:515a38e245a4 148 sms_flag=1;
veyselka 0:515a38e245a4 149
veyselka 0:515a38e245a4 150
veyselka 0:515a38e245a4 151 }