From 732c2f424fbc64f56171dc1642861616f1211e45 Mon Sep 17 00:00:00 2001 From: SIMS IOT Devices <92898043+SIMS-IOT-Devices@users.noreply.github.com> Date: Fri, 30 Jun 2023 09:48:27 +0300 Subject: [PATCH] Add files via upload --- CMakeLists.txt | 2 + certs/MQTTS.txt | 4 ++ certs/client.crt | 20 ++++++ certs/client.key | 28 ++++++++ certs/mosquitto.org.crt | 24 +++++++ component.mk | 1 + mqtt_eclipseprojects_io.pem | 72 ++++++++++++++++++++ my_data1.h | 7 ++ proj1.c | 127 ++++++++++++++++++++++++++++++++++++ 9 files changed, 285 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 certs/MQTTS.txt create mode 100644 certs/client.crt create mode 100644 certs/client.key create mode 100644 certs/mosquitto.org.crt create mode 100644 component.mk create mode 100644 mqtt_eclipseprojects_io.pem create mode 100644 my_data1.h create mode 100644 proj1.c diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c6171e6 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,2 @@ +idf_component_register(SRCS "proj1.c" + INCLUDE_DIRS ".") diff --git a/certs/MQTTS.txt b/certs/MQTTS.txt new file mode 100644 index 0000000..9ff3993 --- /dev/null +++ b/certs/MQTTS.txt @@ -0,0 +1,4 @@ +Commands: + +mosquitto_sub -h test.mosquitto.org -t "my_topic" -p 8883 --cafile mosquitto.org.crt --key client.key --cert client.crt -d +mosquitto_pub --cafile mosquitto.org.crt --key client.key --cert client.crt -h test.mosquitto.org -m "Hello World ......." -t "my_topic" -p 8883 -d diff --git a/certs/client.crt b/certs/client.crt new file mode 100644 index 0000000..8e99a90 --- /dev/null +++ b/certs/client.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDVTCCAj2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMCR0Ix +FzAVBgNVBAgMDlVuaXRlZCBLaW5nZG9tMQ4wDAYDVQQHDAVEZXJieTESMBAGA1UE +CgwJTW9zcXVpdHRvMQswCQYDVQQLDAJDQTEWMBQGA1UEAwwNbW9zcXVpdHRvLm9y +ZzEfMB0GCSqGSIb3DQEJARYQcm9nZXJAYXRjaG9vLm9yZzAeFw0yMTEwMDIxMDM0 +MTVaFw0yMTEyMzExMDM0MTVaMC8xCzAJBgNVBAYTAklTMREwDwYDVQQKDAhTSU1T +IElPVDENMAsGA1UEAwwEU0lNUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAKcw9QX2q9YYg2ndexlVPSUR5zSjQLuW6bcrNBaZDvns3qcUNWtf6dYVRpuI +dPgvlSSXJKq9pHQyVGs/TBz4Uc52kGBQuxHYquiF0jzr933jccGd0WCU6MhWUroc +xabCfNbecr9XPtBg5NuHCC1TdfiRk5bKR00jCaTxUAQAMHfXvUj2xh5NLa8NsnoH +UnJzde/K0zJm7cLsfXS922oRdmIZ579aCMNyAidqXd0sW7q0h9q1wFKqmyu2TCRr +CgXf+y/sWW5WtKGv5dMEVnTaGGA/ZT7yS2HPe2r1zCxhyFA5v8xwTWefNQ9r0aR/ +omd7MWzYhdndh2jN3ULHe7i5cikCAwEAAaMaMBgwCQYDVR0TBAIwADALBgNVHQ8E +BAMCBeAwDQYJKoZIhvcNAQELBQADggEBAMAN2MH8ji8trGfLC4Ig+12gvldWiilC +CVHnlzlcXw146p9yZSKYTjhB9mKvmEfwqrTaFzeIVNyLnLjyie502tQ6BhN1RRaM +scq4KDnmyZK5aQNVNo2mL5RtBEumpMzqpFFePwcUMiLhQcvpiYS1Z08vglcwNWZx +CSu98gkU3VJex+FLzpodmN6w/rYj6xJLq2EAZ5kxm9/xgP2pF3fpI0u6vxKS/kQq +RwPhCi525OZ4OiKXuaBDPtTtRWnfVNlaTS9BCdYwaR6/omscFCCnqVKS6XvV2Uod +oz+4OxMk6529siOvGwH/iyOa4563/JC4GvfgptxEJDIknCW1SN62qoI= +-----END CERTIFICATE----- diff --git a/certs/client.key b/certs/client.key new file mode 100644 index 0000000..72afc90 --- /dev/null +++ b/certs/client.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCnMPUF9qvWGINp +3XsZVT0lEec0o0C7lum3KzQWmQ757N6nFDVrX+nWFUabiHT4L5UklySqvaR0MlRr +P0wc+FHOdpBgULsR2KrohdI86/d943HBndFglOjIVlK6HMWmwnzW3nK/Vz7QYOTb +hwgtU3X4kZOWykdNIwmk8VAEADB3171I9sYeTS2vDbJ6B1Jyc3XvytMyZu3C7H10 +vdtqEXZiGee/WgjDcgInal3dLFu6tIfatcBSqpsrtkwkawoF3/sv7FluVrShr+XT +BFZ02hhgP2U+8kthz3tq9cwsYchQOb/McE1nnzUPa9Gkf6JnezFs2IXZ3Ydozd1C +x3u4uXIpAgMBAAECggEAANYE0sRMv3kLiYaUOJOWl6acaIp79hvTJs/QAQdm4U1K +DqRoehrPiHg41LISaEUUNL3cm16GMnCA0F28CpmyA3XQNIv1O1Y2ExdApiVFnKmo +ad06pe/SxP0S/gVFyfWEjHwzjeIDIx/ZFXYQg2Rg2TwNNJWMxC4CbBCD1y9eJO/0 +UAKTzTU7Z45vODXBNGmrvaH7PRxlRIDXjZkOzlbWcL/C/BtaOlPc6dtvke06br6Q +keSVEyW9cxnxBJ0220az4ZOZbvMtiftOJsuCGP8Uz8f/vQ90Y40VO2F5/Sf5/dy6 +tbjBcZL3mo49srZtHhrxOH6n6aQtXwopzEI+85N6/QKBgQC4/oljJgEv1gRy5i3K +/EqCRWZzGPmLPblyuuIvbnRM0gjWqk9M+oednUo0FdKWy1jH+bQh9LXrKSVpgwPS +ebE9YWiajEiepnhDiOZF0pbNIoK2ppYQejOIG3tZ2gkbrzzMOqrcGv8v+AyxKfIf +L5vrawmaq5TXkSXsdo4fweD8pQKBgQDnXRm3rPZjpvqqbYhAHYhzamp8z+7rQ7ks +1um/seIhQAYiXM8aFTbUINWF+QdYWrsw3rSG8n3yoNMKQfwfuGjEF8Hz3QSKvvmu +JljFmAbvk3nS+/9cBjU3LLjzLog+xv3hTyja87UVWdwa+GErI+wPr/cJCpFchN2f +Ca7OWhNUNQKBgQCW9d9XMWQ2jQcEXCFyS37h35BCzFaW8b+riCWbXx84sQzVYBVm +U+rnC7vJ1SUMONQyG+qK6w6o3+LPv0IXN4cS97JMq712+ZGaStTelYLJ0yentTkw +KQh0QTjfkbVtCgsq/ZUAGGe11U1GJVyXZlpuOeKUfP/xCVlRJU3FTIk0oQKBgQDK +yFX/H/EAnNz9PW17TKdJCY91/8XXnI8T1vYfVyjsnbICsjevE8LvoCul9gPTFAsX +pUqzMJzlaMIwLm9t2fKxVGVheWk+tm4ejmumHD6QA0F2g/poTOSdjGw6cKFn7H+e +2APmDE69/PmnBeYcqqp/gWpTGVkYrzeT6ie1o0tntQKBgH7K8uMa/lhkwmegwK/b +F52qPM4P0bV9niKAqQt3/mVke1lK2e1C28BINqxQcEDpdtiQwK4HE9HpsYMtkD3N +QC/xPXUT2I56cGAEhJCzOpxCxkHT0qbEfc6oSLjVSHVWwPRSD2OejzPtjz9esHXx +97KpnmGuKQZ+AhkvnqD3fGBa +-----END PRIVATE KEY----- diff --git a/certs/mosquitto.org.crt b/certs/mosquitto.org.crt new file mode 100644 index 0000000..e76dbd8 --- /dev/null +++ b/certs/mosquitto.org.crt @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIIEAzCCAuugAwIBAgIUBY1hlCGvdj4NhBXkZ/uLUZNILAwwDQYJKoZIhvcNAQEL +BQAwgZAxCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwG +A1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1vc3F1aXR0bzELMAkGA1UECwwCQ0ExFjAU +BgNVBAMMDW1vc3F1aXR0by5vcmcxHzAdBgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hv +by5vcmcwHhcNMjAwNjA5MTEwNjM5WhcNMzAwNjA3MTEwNjM5WjCBkDELMAkGA1UE +BhMCR0IxFzAVBgNVBAgMDlVuaXRlZCBLaW5nZG9tMQ4wDAYDVQQHDAVEZXJieTES +MBAGA1UECgwJTW9zcXVpdHRvMQswCQYDVQQLDAJDQTEWMBQGA1UEAwwNbW9zcXVp +dHRvLm9yZzEfMB0GCSqGSIb3DQEJARYQcm9nZXJAYXRjaG9vLm9yZzCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAME0HKmIzfTOwkKLT3THHe+ObdizamPg +UZmD64Tf3zJdNeYGYn4CEXbyP6fy3tWc8S2boW6dzrH8SdFf9uo320GJA9B7U1FW +Te3xda/Lm3JFfaHjkWw7jBwcauQZjpGINHapHRlpiCZsquAthOgxW9SgDgYlGzEA +s06pkEFiMw+qDfLo/sxFKB6vQlFekMeCymjLCbNwPJyqyhFmPWwio/PDMruBTzPH +3cioBnrJWKXc3OjXdLGFJOfj7pP0j/dr2LH72eSvv3PQQFl90CZPFhrCUcRHSSxo +E6yjGOdnz7f6PveLIB574kQORwt8ePn0yidrTC1ictikED3nHYhMUOUCAwEAAaNT +MFEwHQYDVR0OBBYEFPVV6xBUFPiGKDyo5V3+Hbh4N9YSMB8GA1UdIwQYMBaAFPVV +6xBUFPiGKDyo5V3+Hbh4N9YSMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBAGa9kS21N70ThM6/Hj9D7mbVxKLBjVWe2TPsGfbl3rEDfZ+OKRZ2j6AC +6r7jb4TZO3dzF2p6dgbrlU71Y/4K0TdzIjRj3cQ3KSm41JvUQ0hZ/c04iGDg/xWf ++pp58nfPAYwuerruPNWmlStWAXf0UTqRtg4hQDWBuUFDJTuWuuBvEXudz74eh/wK +sMwfu1HFvjy5Z0iMDU8PUDepjVolOCue9ashlS4EB5IECdSR2TItnAIiIwimx839 +LdUdRudafMu5T5Xma182OC0/u/xRlEm+tvKGGmfFcN0piqVl8OrSPBgIlb+1IKJE +m/XriWr/Cq4h/JfB7NTsezVslgkBaoU= +-----END CERTIFICATE----- diff --git a/component.mk b/component.mk new file mode 100644 index 0000000..e097cf0 --- /dev/null +++ b/component.mk @@ -0,0 +1 @@ +COMPONENT_EMBED_TXTFILES := mqtt_eclipseprojects_io.pem \ No newline at end of file diff --git a/mqtt_eclipseprojects_io.pem b/mqtt_eclipseprojects_io.pem new file mode 100644 index 0000000..90403ee --- /dev/null +++ b/mqtt_eclipseprojects_io.pem @@ -0,0 +1,72 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCnMPUF9qvWGINp +3XsZVT0lEec0o0C7lum3KzQWmQ757N6nFDVrX+nWFUabiHT4L5UklySqvaR0MlRr +P0wc+FHOdpBgULsR2KrohdI86/d943HBndFglOjIVlK6HMWmwnzW3nK/Vz7QYOTb +hwgtU3X4kZOWykdNIwmk8VAEADB3171I9sYeTS2vDbJ6B1Jyc3XvytMyZu3C7H10 +vdtqEXZiGee/WgjDcgInal3dLFu6tIfatcBSqpsrtkwkawoF3/sv7FluVrShr+XT +BFZ02hhgP2U+8kthz3tq9cwsYchQOb/McE1nnzUPa9Gkf6JnezFs2IXZ3Ydozd1C +x3u4uXIpAgMBAAECggEAANYE0sRMv3kLiYaUOJOWl6acaIp79hvTJs/QAQdm4U1K +DqRoehrPiHg41LISaEUUNL3cm16GMnCA0F28CpmyA3XQNIv1O1Y2ExdApiVFnKmo +ad06pe/SxP0S/gVFyfWEjHwzjeIDIx/ZFXYQg2Rg2TwNNJWMxC4CbBCD1y9eJO/0 +UAKTzTU7Z45vODXBNGmrvaH7PRxlRIDXjZkOzlbWcL/C/BtaOlPc6dtvke06br6Q +keSVEyW9cxnxBJ0220az4ZOZbvMtiftOJsuCGP8Uz8f/vQ90Y40VO2F5/Sf5/dy6 +tbjBcZL3mo49srZtHhrxOH6n6aQtXwopzEI+85N6/QKBgQC4/oljJgEv1gRy5i3K +/EqCRWZzGPmLPblyuuIvbnRM0gjWqk9M+oednUo0FdKWy1jH+bQh9LXrKSVpgwPS +ebE9YWiajEiepnhDiOZF0pbNIoK2ppYQejOIG3tZ2gkbrzzMOqrcGv8v+AyxKfIf +L5vrawmaq5TXkSXsdo4fweD8pQKBgQDnXRm3rPZjpvqqbYhAHYhzamp8z+7rQ7ks +1um/seIhQAYiXM8aFTbUINWF+QdYWrsw3rSG8n3yoNMKQfwfuGjEF8Hz3QSKvvmu +JljFmAbvk3nS+/9cBjU3LLjzLog+xv3hTyja87UVWdwa+GErI+wPr/cJCpFchN2f +Ca7OWhNUNQKBgQCW9d9XMWQ2jQcEXCFyS37h35BCzFaW8b+riCWbXx84sQzVYBVm +U+rnC7vJ1SUMONQyG+qK6w6o3+LPv0IXN4cS97JMq712+ZGaStTelYLJ0yentTkw +KQh0QTjfkbVtCgsq/ZUAGGe11U1GJVyXZlpuOeKUfP/xCVlRJU3FTIk0oQKBgQDK +yFX/H/EAnNz9PW17TKdJCY91/8XXnI8T1vYfVyjsnbICsjevE8LvoCul9gPTFAsX +pUqzMJzlaMIwLm9t2fKxVGVheWk+tm4ejmumHD6QA0F2g/poTOSdjGw6cKFn7H+e +2APmDE69/PmnBeYcqqp/gWpTGVkYrzeT6ie1o0tntQKBgH7K8uMa/lhkwmegwK/b +F52qPM4P0bV9niKAqQt3/mVke1lK2e1C28BINqxQcEDpdtiQwK4HE9HpsYMtkD3N +QC/xPXUT2I56cGAEhJCzOpxCxkHT0qbEfc6oSLjVSHVWwPRSD2OejzPtjz9esHXx +97KpnmGuKQZ+AhkvnqD3fGBa +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIIDVTCCAj2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMCR0Ix +FzAVBgNVBAgMDlVuaXRlZCBLaW5nZG9tMQ4wDAYDVQQHDAVEZXJieTESMBAGA1UE +CgwJTW9zcXVpdHRvMQswCQYDVQQLDAJDQTEWMBQGA1UEAwwNbW9zcXVpdHRvLm9y +ZzEfMB0GCSqGSIb3DQEJARYQcm9nZXJAYXRjaG9vLm9yZzAeFw0yMTEwMDIxMDM0 +MTVaFw0yMTEyMzExMDM0MTVaMC8xCzAJBgNVBAYTAklTMREwDwYDVQQKDAhTSU1T +IElPVDENMAsGA1UEAwwEU0lNUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAKcw9QX2q9YYg2ndexlVPSUR5zSjQLuW6bcrNBaZDvns3qcUNWtf6dYVRpuI +dPgvlSSXJKq9pHQyVGs/TBz4Uc52kGBQuxHYquiF0jzr933jccGd0WCU6MhWUroc +xabCfNbecr9XPtBg5NuHCC1TdfiRk5bKR00jCaTxUAQAMHfXvUj2xh5NLa8NsnoH +UnJzde/K0zJm7cLsfXS922oRdmIZ579aCMNyAidqXd0sW7q0h9q1wFKqmyu2TCRr +CgXf+y/sWW5WtKGv5dMEVnTaGGA/ZT7yS2HPe2r1zCxhyFA5v8xwTWefNQ9r0aR/ +omd7MWzYhdndh2jN3ULHe7i5cikCAwEAAaMaMBgwCQYDVR0TBAIwADALBgNVHQ8E +BAMCBeAwDQYJKoZIhvcNAQELBQADggEBAMAN2MH8ji8trGfLC4Ig+12gvldWiilC +CVHnlzlcXw146p9yZSKYTjhB9mKvmEfwqrTaFzeIVNyLnLjyie502tQ6BhN1RRaM +scq4KDnmyZK5aQNVNo2mL5RtBEumpMzqpFFePwcUMiLhQcvpiYS1Z08vglcwNWZx +CSu98gkU3VJex+FLzpodmN6w/rYj6xJLq2EAZ5kxm9/xgP2pF3fpI0u6vxKS/kQq +RwPhCi525OZ4OiKXuaBDPtTtRWnfVNlaTS9BCdYwaR6/omscFCCnqVKS6XvV2Uod +oz+4OxMk6529siOvGwH/iyOa4563/JC4GvfgptxEJDIknCW1SN62qoI= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEAzCCAuugAwIBAgIUBY1hlCGvdj4NhBXkZ/uLUZNILAwwDQYJKoZIhvcNAQEL +BQAwgZAxCzAJBgNVBAYTAkdCMRcwFQYDVQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwG +A1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1vc3F1aXR0bzELMAkGA1UECwwCQ0ExFjAU +BgNVBAMMDW1vc3F1aXR0by5vcmcxHzAdBgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hv +by5vcmcwHhcNMjAwNjA5MTEwNjM5WhcNMzAwNjA3MTEwNjM5WjCBkDELMAkGA1UE +BhMCR0IxFzAVBgNVBAgMDlVuaXRlZCBLaW5nZG9tMQ4wDAYDVQQHDAVEZXJieTES +MBAGA1UECgwJTW9zcXVpdHRvMQswCQYDVQQLDAJDQTEWMBQGA1UEAwwNbW9zcXVp +dHRvLm9yZzEfMB0GCSqGSIb3DQEJARYQcm9nZXJAYXRjaG9vLm9yZzCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAME0HKmIzfTOwkKLT3THHe+ObdizamPg +UZmD64Tf3zJdNeYGYn4CEXbyP6fy3tWc8S2boW6dzrH8SdFf9uo320GJA9B7U1FW +Te3xda/Lm3JFfaHjkWw7jBwcauQZjpGINHapHRlpiCZsquAthOgxW9SgDgYlGzEA +s06pkEFiMw+qDfLo/sxFKB6vQlFekMeCymjLCbNwPJyqyhFmPWwio/PDMruBTzPH +3cioBnrJWKXc3OjXdLGFJOfj7pP0j/dr2LH72eSvv3PQQFl90CZPFhrCUcRHSSxo +E6yjGOdnz7f6PveLIB574kQORwt8ePn0yidrTC1ictikED3nHYhMUOUCAwEAAaNT +MFEwHQYDVR0OBBYEFPVV6xBUFPiGKDyo5V3+Hbh4N9YSMB8GA1UdIwQYMBaAFPVV +6xBUFPiGKDyo5V3+Hbh4N9YSMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBAGa9kS21N70ThM6/Hj9D7mbVxKLBjVWe2TPsGfbl3rEDfZ+OKRZ2j6AC +6r7jb4TZO3dzF2p6dgbrlU71Y/4K0TdzIjRj3cQ3KSm41JvUQ0hZ/c04iGDg/xWf ++pp58nfPAYwuerruPNWmlStWAXf0UTqRtg4hQDWBuUFDJTuWuuBvEXudz74eh/wK +sMwfu1HFvjy5Z0iMDU8PUDepjVolOCue9ashlS4EB5IECdSR2TItnAIiIwimx839 +LdUdRudafMu5T5Xma182OC0/u/xRlEm+tvKGGmfFcN0piqVl8OrSPBgIlb+1IKJE +m/XriWr/Cq4h/JfB7NTsezVslgkBaoU= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/my_data1.h b/my_data1.h new file mode 100644 index 0000000..07a15fe --- /dev/null +++ b/my_data1.h @@ -0,0 +1,7 @@ +#ifndef MY_DATA +#define MY_DATA + +#define SSID "your ssid" +#define PASS "your pasword" + +#endif \ No newline at end of file diff --git a/proj1.c b/proj1.c new file mode 100644 index 0000000..a1d8e0a --- /dev/null +++ b/proj1.c @@ -0,0 +1,127 @@ +#include +#include +#include +#include +#include "esp_wifi.h" +#include "esp_system.h" +#include "nvs_flash.h" +#include "esp_event.h" +#include "esp_netif.h" +#include "esp_log.h" +#include "mqtt_client.h" +#include "esp_tls.h" +#include "esp_ota_ops.h" +#include "my_data.h" + +static const char *TAG = "MQTT_TCP"; + +extern const uint8_t mqtt_eclipseprojects_io_pem_start[] asm("_binary_mqtt_eclipseprojects_io_pem_start"); +extern const uint8_t mqtt_eclipseprojects_io_pem_end[] asm("_binary_mqtt_eclipseprojects_io_pem_end"); + +static void wifi_event_handler(void *event_handler_arg, esp_event_base_t event_base, int32_t event_id, void *event_data) +{ + switch (event_id) + { + case WIFI_EVENT_STA_START: + printf("WiFi connecting ... \n"); + break; + case WIFI_EVENT_STA_CONNECTED: + printf("WiFi connected ... \n"); + break; + case WIFI_EVENT_STA_DISCONNECTED: + printf("WiFi lost connection ... \n"); + break; + case IP_EVENT_STA_GOT_IP: + printf("WiFi got IP ... \n\n"); + break; + default: + break; + } +} + +void wifi_connection() +{ + // 1 - Wi-Fi/LwIP Init Phase + esp_netif_init(); // TCP/IP initiation s1.1 + esp_event_loop_create_default(); // event loop s1.2 + esp_netif_create_default_wifi_sta(); // WiFi station s1.3 + wifi_init_config_t wifi_initiation = WIFI_INIT_CONFIG_DEFAULT(); + esp_wifi_init(&wifi_initiation); // s1.4 + // 2 - Wi-Fi Configuration Phase + esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, wifi_event_handler, NULL); + esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, wifi_event_handler, NULL); + wifi_config_t wifi_configuration = { + .sta = { + .ssid = SSID, + .password = PASS}}; + esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_configuration); + // 3 - Wi-Fi Start Phase + esp_wifi_start(); + // 4- Wi-Fi Connect Phase + esp_wifi_connect(); +} + +static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event) +{ + esp_mqtt_client_handle_t client = event->client; + switch (event->event_id) + { + case MQTT_EVENT_CONNECTED: + ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED"); + esp_mqtt_client_subscribe(client, "my_topic", 0); + esp_mqtt_client_publish(client, "my_topic", "Hi to all from ESP32 .........", 0, 1, 0); + break; + case MQTT_EVENT_DISCONNECTED: + ESP_LOGI(TAG, "MQTT_EVENT_DISCONNECTED"); + break; + case MQTT_EVENT_SUBSCRIBED: + ESP_LOGI(TAG, "MQTT_EVENT_SUBSCRIBED, msg_id=%d", event->msg_id); + break; + case MQTT_EVENT_UNSUBSCRIBED: + ESP_LOGI(TAG, "MQTT_EVENT_UNSUBSCRIBED, msg_id=%d", event->msg_id); + break; + case MQTT_EVENT_PUBLISHED: + ESP_LOGI(TAG, "MQTT_EVENT_PUBLISHED, msg_id=%d", event->msg_id); + break; + case MQTT_EVENT_DATA: + ESP_LOGI(TAG, "MQTT_EVENT_DATA"); + printf("\nTOPIC=%.*s\r\n", event->topic_len, event->topic); + printf("DATA=%.*s\r\n", event->data_len, event->data); + break; + case MQTT_EVENT_ERROR: + ESP_LOGI(TAG, "MQTT_EVENT_ERROR"); + break; + default: + ESP_LOGI(TAG, "Other event id:%d", event->event_id); + break; + } + return ESP_OK; +} + +static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data) +{ + ESP_LOGD(TAG, "Event dispatched from event loop base=%s, event_id=%d", base, event_id); + mqtt_event_handler_cb(event_data); +} + +static void mqtt_app_start(void) +{ + esp_mqtt_client_config_t mqtt_cfg = { + .uri = "mqtts://test.mosquitto.org:8883", + .cert_pem = (const char *)mqtt_eclipseprojects_io_pem_start, + }; + esp_mqtt_client_handle_t client = esp_mqtt_client_init(&mqtt_cfg); + esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, client); + esp_mqtt_client_start(client); +} + +void app_main(void) +{ + nvs_flash_init(); + wifi_connection(); + + vTaskDelay(2000 / portTICK_PERIOD_MS); + printf("WIFI was initiated ...........\n"); + + mqtt_app_start(); +} \ No newline at end of file