HoYa's MBED (Nucleo-F401RE)
Dependencies: NetworkSocketAPI X_NUCLEO_IDW01M1v2 mbed
main.cpp
00001 #include "mbed.h" 00002 #include "SpwfInterface.h" 00003 #include "TCPSocket.h" 00004 00005 Serial pc(USBTX, USBRX, 115200); 00006 DigitalOut led(LED1); 00007 00008 SpwfSAInterface spwf(D8, D2, false); 00009 00010 //www.mbed.com CA certificate in PEM format 00011 char CA_cert []="-----BEGIN CERTIFICATE-----\r\n" 00012 "MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT\r\n" 00013 "MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i\r\n" 00014 "YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG\r\n" 00015 "EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg\r\n" 00016 "R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9\r\n" 00017 "9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq\r\n" 00018 "fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv\r\n" 00019 "iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU\r\n" 00020 "1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+\r\n" 00021 "bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW\r\n" 00022 "MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA\r\n" 00023 "ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l\r\n" 00024 "uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn\r\n" 00025 "Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS\r\n" 00026 "tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF\r\n" 00027 "PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un\r\n" 00028 "hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV\r\n" 00029 "5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==\r\n" 00030 "-----END CERTIFICATE-----\r\n"; 00031 00032 int main() { 00033 pc.printf("\r\n"); 00034 pc.printf("Start Application\r\n"); 00035 00036 // Wi-Fi 00037 pc.printf("\r\n"); 00038 pc.printf("Connecting to AP...\r\n"); 00039 if (spwf.connect("hRPi3-AP", "rlawjdgh", NSAPI_SECURITY_WPA2)) { 00040 pc.printf("=> Success.\r\n"); 00041 } else { 00042 pc.printf("=> Failed to connect.\r\n"); 00043 return -1; 00044 } 00045 const char* ip = spwf.get_ip_address(); 00046 pc.printf("=> IP Address is: %s\r\n", (ip) ? ip : "No IP"); 00047 const char* mac = spwf.get_mac_address(); 00048 pc.printf("=> MAC Address is: %s\r\n", (mac) ? mac : "No MAC"); 00049 00050 // DNS 00051 /* 00052 pc.printf("\r\n"); 00053 pc.printf("DNS Testing...\r\n"); 00054 SocketAddress addr(&spwf, "st.com"); 00055 pc.printf("<st.com> is resolved to: %s\r\n", addr.get_ip_address()); 00056 */ 00057 // Unsecured TCP 00058 /* 00059 pc.printf("\r\n"); 00060 pc.printf("Unsecured TCP Testing...\r\n"); 00061 TCPSocket socket(&spwf); 00062 pc.printf("Connecting to <4.ifcfg.me>...\r\n"); 00063 int err = socket.connect("4.ifcfg.me", 23); 00064 if (err) { 00065 pc.printf("=> Failed to connect. (%d)\r\n", err); 00066 return -1; 00067 } else { 00068 pc.printf("=> Success.\r\n"); 00069 } 00070 pc.printf("Receiving Data\r\n"); 00071 char buffer[100]; 00072 int count = socket.recv(buffer, sizeof buffer); 00073 if (count > 0) { 00074 buffer[count] = '\0'; 00075 printf("=> %s\r\n", buffer); 00076 } 00077 else { 00078 pc.printf("=> Nothing to receive.\r\n"); 00079 } 00080 pc.printf("Close TCP socket\r\n"); 00081 socket.close(); 00082 */ 00083 // Secured TCP 00084 pc.printf("\r\n"); 00085 pc.printf("Secured TCP Testing...\r\n"); 00086 if (!spwf.clean_TLS_certificate(ALL)) 00087 pc.printf("=> Failed to clean TLS certificate\r\n"); 00088 if (!spwf.set_TLS_certificate(CA_cert, sizeof(CA_cert), FLASH_CA_ROOT_CERT)) 00089 pc.printf("=> Failed to set TLS certificate\r\n"); 00090 if (!spwf.set_TLS_SRV_domain("*.mbed.com", FLASH_DOMAIN)) 00091 printf("=> Failed to set TLS CA domain\r\n"); 00092 spwf.set_secure_mode(); 00093 TCPSocket socket(&spwf); 00094 spwf.set_unsecure_mode(); 00095 int err = socket.connect("www.mbed.com", 443); 00096 if (err != 0) 00097 pc.printf("=> Failed to connect. (%d)\r\n", err); 00098 else 00099 pc.printf("=> Success.\r\n"); 00100 pc.printf("Close TCP socket\r\n"); 00101 socket.close(); 00102 00103 pc.printf("Disconnect from AP\r\n"); 00104 spwf.disconnect(); 00105 00106 while (1) { 00107 led = !led; 00108 wait(0.5); 00109 } 00110 } 00111
Generated on Thu Jul 14 2022 07:29:07 by 1.7.2