{"id":116703,"date":"2022-11-17T15:13:22","date_gmt":"2022-11-17T15:13:22","guid":{"rendered":"https:\/\/randomnerdtutorials.com\/?p=116703"},"modified":"2024-03-15T17:24:39","modified_gmt":"2024-03-15T17:24:39","slug":"esp32-send-messages-whatsapp","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/esp32-send-messages-whatsapp\/","title":{"rendered":"ESP32: Send Messages to WhatsApp"},"content":{"rendered":"\n<p>In this guide, you&#8217;ll learn how to send messages to your WhatsApp account with the ESP32. This can be useful to receive notifications from the ESP32 with sensor readings, alert messages when a sensor reading is above or below a certain threshold, when motion is detected, and many other applications. We&#8217;ll program the ESP32 using Arduino IDE and to send the messages we&#8217;ll use a free API called <a href=\"https:\/\/www.callmebot.com\/blog\/free-api-whatsapp-messages\/\" target=\"_blank\" rel=\"noopener\">CallMeBot<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/ESP32-Send-WhatsApp-Messages.jpg?resize=1200%2C675&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 Send Messages to WhatsApp Arduino IDE\" class=\"wp-image-116775\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/ESP32-Send-WhatsApp-Messages.jpg?w=1280&amp;quality=100&amp;strip=all&amp;ssl=1 1280w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/ESP32-Send-WhatsApp-Messages.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/ESP32-Send-WhatsApp-Messages.jpg?resize=1024%2C576&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/ESP32-Send-WhatsApp-Messages.jpg?resize=768%2C432&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n<p>We have a similar tutorial for the ESP8266 board:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-send-messages-whatsapp\/\">ESP8266 NodeMCU: Send Messages to WhatsApp<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Introducing WhatsApp<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"200\" height=\"200\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Whatsapp-logo.png?resize=200%2C200&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"WhatsApp logo\" class=\"wp-image-116773\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Whatsapp-logo.png?w=200&amp;quality=100&amp;strip=all&amp;ssl=1 200w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Whatsapp-logo.png?resize=150%2C150&amp;quality=100&amp;strip=all&amp;ssl=1 150w\" sizes=\"(max-width: 200px) 100vw, 200px\" \/><\/figure><\/div>\n\n\n<p>\u201cWhatsApp Messenger, or simply WhatsApp, is an internationally available American freeware, cross-platform centralized instant messaging and voice-over-IP service owned by Meta Platforms.\u201d It allows you to send messages using your phone\u2019s internet connection, so you can avoid SMS fees.<\/p>\n\n\n\n<p>WhatsApp is free and is available for Android and iOS. Install WhatsApp on your smartphone if you don\u2019t have it already.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">CallMeBot WhatsApp API<\/h1>\n\n\n\n<p>To send messages to your WhatsApp account with the ESP32, we\u2019ll use a free API service called CallMeBot service. You can learn more about CallMeBot at the following link:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.callmebot.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.callmebot.com\/<\/a><\/li>\n<\/ul>\n\n\n\n<p>Basically, it works as a gateway that allows you to send a message to yourself. This can be useful to send alert messages from the ESP32.<\/p>\n\n\n\n<p>All the information about how to send messages using the API, can be found <a href=\"https:\/\/www.callmebot.com\/blog\/free-api-whatsapp-messages\/\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Getting the CallMeBot API KEY<\/h2>\n\n\n\n<p>Before starting using the API, you need to get the CallmeBot WhatsApp API key. Follow the next instructions (<a href=\"https:\/\/www.callmebot.com\/blog\/free-api-whatsapp-messages\/\" target=\"_blank\" rel=\"noopener\">check this link<\/a> for the instructions on the official website).<\/p>\n\n\n\n<ol class=\"wp-block-list\" style=\"list-style-type:1\">\n<li>Add the phone number\u00a0<strong>+34 621 331 709<\/strong>\u00a0to your Phone Contacts. (Name it as you wish) \u2014 please\u00a0<a href=\"https:\/\/www.callmebot.com\/blog\/free-api-whatsapp-messages\/\" target=\"_blank\" rel=\"noreferrer noopener\">double-check the number on the CallMeBot website<\/a>, because it sometimes changes.<\/li>\n\n\n\n<li>Send the following message: &#8220;<em>I allow callmebot to send me messages&#8221;<\/em> to the new Contact created (using WhatsApp of course);<\/li>\n\n\n\n<li>Wait until you receive the message &#8220;<em>API Activated for your phone number. Your APIKEY is XXXXXX<\/em>&#8221; from the bot.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"350\" height=\"458\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Get-CallMeBot-API-Key.png?resize=350%2C458&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Get CallMeBot API key\" class=\"wp-image-116707\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Get-CallMeBot-API-Key.png?w=350&amp;quality=100&amp;strip=all&amp;ssl=1 350w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Get-CallMeBot-API-Key.png?resize=229%2C300&amp;quality=100&amp;strip=all&amp;ssl=1 229w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/figure><\/div>\n\n\n<p><strong>Note:<\/strong> If you don&#8217;t receive the API key in 2 minutes, please try again after 24hs. The WhatsApp message from the bot will contain the API key needed to send messages using the API<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CallMeBot API<\/h2>\n\n\n\n<p>To send a message using the CallMeBot API you need to make a POST request to the following URL (but using your information):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">https:\/\/api.callmebot.com\/whatsapp.php?phone=<strong>[phone_number]<\/strong>&amp;text=<strong>[message]<\/strong>&amp;apikey=<strong>[your_apikey]<\/strong><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span class=\"rnthl rntliteral\">[phone_number]<\/span>: phone number associated with your WhatsApp account in international format;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span class=\"rnthl rntliteral\">[message]<\/span>: the message to be sent, should be URL encoded. <\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span class=\"rnthl rntliteral\">[your_apikey]<\/span>: the API key you received during the activation process in the previous section.<\/li>\n<\/ul>\n\n\n\n<p>For the official documentation, you can check the following link: <a href=\"https:\/\/www.callmebot.com\/blog\/free-api-whatsapp-messages\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.callmebot.com\/blog\/free-api-whatsapp-messages\/<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installing the URLEncode Library<\/h2>\n\n\n\n<p>As we&#8217;ve seen previously, the message to be sent needs to be URL encoded. URL encoding converts characters into a format that can be transmitted over the Internet. URLs can only be sent over the Internet using the&nbsp;ASCII character-set.<\/p>\n\n\n\n<p>This will allow us to include characters like \u00e7, \u00aa, \u00ba, \u00e0, \u00fc in our messages. You can learn more about <a href=\"https:\/\/www.w3schools.com\/tags\/ref_urlencode.ASP\" target=\"_blank\" rel=\"noreferrer noopener\">URL encoding here<\/a>.<\/p>\n\n\n\n<p>You can encode the message yourself, or you can use a library, which is much simpler. We&#8217;ll use the <a href=\"https:\/\/github.com\/plageoj\/urlencode\" target=\"_blank\" rel=\"noreferrer noopener\">UrlEncode library<\/a> that can be installed on your Arduino IDE.<\/p>\n\n\n\n<p>Go to <strong>Sketch <\/strong>&gt; <strong>Include Library<\/strong> &gt; <strong>Manage Libraries<\/strong> and search for <strong>URLEncode<\/strong> library by <em>Masayuki Sugahara<\/em> as shown below.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"443\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/UrlEncode-Library-Arduino.png?resize=786%2C443&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Install URL Encode Library Arduino IDE\" class=\"wp-image-116713\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/UrlEncode-Library-Arduino.png?w=786&amp;quality=100&amp;strip=all&amp;ssl=1 786w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/UrlEncode-Library-Arduino.png?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/UrlEncode-Library-Arduino.png?resize=768%2C433&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Sending Messages to WhatsApp &#8211; ESP32 Code<\/h2>\n\n\n\n<p>The following example code sends a message to your WhatsApp account when the ESP32 first boots. This is a simple example to show you how to send messages. After understanding how it works, the idea is to incorporate it into your own projects.<\/p>\n\n\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/* \n  Rui Santos\n  Complete project details at https:\/\/RandomNerdTutorials.com\/esp32-send-messages-whatsapp\/\n  \n  Permission is hereby granted, free of charge, to any person obtaining a copy\n  of this software and associated documentation files.\n  \n  The above copyright notice and this permission notice shall be included in all\n  copies or substantial portions of the Software.\n*\/\n\n#include &lt;WiFi.h&gt;    \n#include &lt;HTTPClient.h&gt;\n#include &lt;UrlEncode.h&gt;\n\nconst char* ssid = &quot;REPLACE_WITH_YOUR_SSID&quot;;\nconst char* password = &quot;REPLACE_WITH_YOUR_PASSWORD&quot;;\n\n\/\/ +international_country_code + phone number\n\/\/ Portugal +351, example: +351912345678\nString phoneNumber = &quot;REPLACE_WITH_YOUR_PHONE_NUMBER&quot;;\nString apiKey = &quot;REPLACE_WITH_API_KEY&quot;;\n\nvoid sendMessage(String message){\n\n  \/\/ Data to send with HTTP POST\n  String url = &quot;https:\/\/api.callmebot.com\/whatsapp.php?phone=&quot; + phoneNumber + &quot;&amp;apikey=&quot; + apiKey + &quot;&amp;text=&quot; + urlEncode(message);    \n  HTTPClient http;\n  http.begin(url);\n\n  \/\/ Specify content-type header\n  http.addHeader(&quot;Content-Type&quot;, &quot;application\/x-www-form-urlencoded&quot;);\n  \n  \/\/ Send HTTP POST request\n  int httpResponseCode = http.POST(url);\n  if (httpResponseCode == 200){\n    Serial.print(&quot;Message sent successfully&quot;);\n  }\n  else{\n    Serial.println(&quot;Error sending the message&quot;);\n    Serial.print(&quot;HTTP response code: &quot;);\n    Serial.println(httpResponseCode);\n  }\n\n  \/\/ Free resources\n  http.end();\n}\n\nvoid setup() {\n  Serial.begin(115200);\n\n  WiFi.begin(ssid, password);\n  Serial.println(&quot;Connecting&quot;);\n  while(WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(&quot;.&quot;);\n  }\n  Serial.println(&quot;&quot;);\n  Serial.print(&quot;Connected to WiFi network with IP Address: &quot;);\n  Serial.println(WiFi.localIP());\n\n  \/\/ Send Message to WhatsAPP\n  sendMessage(&quot;Hello from ESP32!&quot;);\n}\n\nvoid loop() {\n  \n}\n<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/ESP32\/ESP32_Send_Messages_WhatsApp.ino\" target=\"_blank\">View raw code<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How the Code Works<\/h2>\n\n\n\n<p>Sending a message to WhatsApp using the CallMeBot API is very straightforward. You just need to make an HTTP POST request.<\/p>\n\n\n\n<p>First, include the necessary libraries:<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>#include &lt;WiFi.h&gt;    \n#include &lt;HTTPClient.h&gt;\n#include &lt;UrlEncode.h&gt;<\/code><\/pre>\n\n\n\n<p>Insert your network credentials on the following variables:<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>const char* ssid = \"REPLACE_WITH_YOUR_SSID\";\nconst char* password = \"REPLACE_WITH_YOUR_PASSWORD\";<\/code><\/pre>\n\n\n\n<p>Insert your phone number and API key. The phone number should be in international format (including the <span class=\"rnthl rntliteral\">+<\/span> sign).<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>String phoneNumber = \"REPLACE_WITH_YOUR_PHONE_NUMBER\";\nString apiKey = \"REPLACE_WITH_YOUR_API_KEY\";<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">sendMessage()<\/h3>\n\n\n\n<p>We create a function called <span class=\"rnthl rntliteral\">sendMessage()<\/span> that you can call later to send messages to WhatsApp. This function accepts as an argument the message you want to send.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>void sendMessage(String message){<\/code><\/pre>\n\n\n\n<p>Inside the function, we prepare the URL for the request with your information, phone number, API key, and message.<\/p>\n\n\n\n<p>As we&#8217;ve seen previously, the message needs to be URL encoded. We&#8217;ve included the <span class=\"rnthl rntliteral\">UrlEncode<\/span> library to do that. It contains a function called <span class=\"rnthl rntliteral\">urlEncode()<\/span> that encodes whatever message we pass as argument (<span class=\"rnthl rntliteral\">urlEncode(message)<\/span>).<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>String url = \"https:\/\/api.callmebot.com\/whatsapp.php?phone=\" + phoneNumber + \"&amp;apikey=\" + apiKey + \"&amp;text=\" + urlEncode(message);<\/code><\/pre>\n\n\n\n<p>Create and start an <span class=\"rnthl rntliteral\">HTTPClient<\/span> on that URL: <\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>HTTPClient http;\nhttp.begin(url);<\/code><\/pre>\n\n\n\n<p>Specify the content type:<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>\/\/ Specify content-type header\nhttp.addHeader(\"Content-Type\", \"application\/x-www-form-urlencoded\");<\/code><\/pre>\n\n\n\n<p>Finally, send the HTTP post request. The following line sends the request and saves the response code:<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>int httpResponseCode = http.POST(url);<\/code><\/pre>\n\n\n\n<p>If the response code is <span class=\"rnthl rntliteral\">200<\/span>, it means the post request was successful. Otherwise, something went wrong.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>\/\/ Send HTTP POST request\nint httpResponseCode = http.POST(url);\nif (httpResponseCode == 200){\n  Serial.print(\"Message sent successfully\");\n}\nelse{\n  Serial.println(\"Error sending the message\");\n  Serial.print(\"HTTP response code: \");\n  Serial.println(httpResponseCode);\n}<\/code><\/pre>\n\n\n\n<p>Finally, free up the resources:<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>\/\/ Free resources\nhttp.end();<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">setup()<\/h3>\n\n\n\n<p>In the <span class=\"rnthl rntliteral\">setup()<\/span>, initialize the Serial Monitor for debugging purposes.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>Serial.begin(115200);<\/code><\/pre>\n\n\n\n<p>Connect to your local network and print the board IP address.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>WiFi.begin(ssid, password);\nSerial.println(\"Connecting\");\nwhile(WiFi.status() != WL_CONNECTED) {\n  delay(500);\n  Serial.print(\".\");\n}\nSerial.println(\"\");\nSerial.print(\"Connected to WiFi network with IP Address: \");\nSerial.println(WiFi.localIP());<\/code><\/pre>\n\n\n\n<p>Then, we can send a message to WhatsApp by simply calling the sendMessage() function. In this case, we&#8217;re sending the message Hello from ESP32!<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>\/\/ Send Message to WhatsAPP\nsendMessage(\"Hello from ESP32!\");<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Demonstration<\/h2>\n\n\n\n<p>After inserting your network credentials, phone number and API key, you can upload the code to your board.<\/p>\n\n\n\n<p>After uploading, open the Serial Monitor at a baud rate of 115200 and press the board RST button. It should successfully connect to your network and send the message to WhatsApp.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"601\" height=\"436\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Send-Message-WhatsApp-Serial-Monitor-Success.png?resize=601%2C436&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP Send Message to WhatsApp Serial Monitor\" class=\"wp-image-116764\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Send-Message-WhatsApp-Serial-Monitor-Success.png?w=601&amp;quality=100&amp;strip=all&amp;ssl=1 601w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/Send-Message-WhatsApp-Serial-Monitor-Success.png?resize=300%2C218&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/figure><\/div>\n\n\n<p>Go to your WhatsApp account. After a few seconds, you should receive the ESP32 message.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"435\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/WhatsApp-Receive-Message-From-ESP32.png?resize=500%2C435&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"WhatsApp Receive Message from ESP32\" class=\"wp-image-116766\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/WhatsApp-Receive-Message-From-ESP32.png?w=500&amp;quality=100&amp;strip=all&amp;ssl=1 500w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/WhatsApp-Receive-Message-From-ESP32.png?resize=300%2C261&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p>In this tutorial, you learned how to use the CallMeBot API with the ESP32 to send messages to your WhatsApp account. This can be useful to send sensor readings regularly to your inbox, send a notification when motion is detected, send an alert message when a sensor reading is above or below a certain threshold, and many other applications.<\/p>\n\n\n\n<p>We also have tutorials for other types of messages (email and Telegram messages):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-send-email-smtp-server-arduino-ide\/\">ESP32 Send Emails using an SMTP Server: HTML, Text, and Attachments (Arduino IDE)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/telegram-control-esp32-esp8266-nodemcu-outputs\/\">Telegram: Control ESP32\/ESP8266 Outputs (Arduino IDE)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/telegram-request-esp32-esp8266-nodemcu-sensor-readings\/\">Telegram: Request ESP32\/ESP8266 Sensor Readings (Arduino IDE)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-door-status-telegram\/\">ESP32 Door Status Monitor with Telegram Notifications<\/a><\/li>\n<\/ul>\n\n\n\n<p>We hope you find this tutorial useful. <\/p>\n\n\n\n<p>Learn more about the ESP32 with our resources:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/learn-esp32-with-arduino-ide\/\">Learn ESP32 with Arduino IDE<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/build-web-servers-esp32-esp8266-ebook\/\">Build Web Servers with ESP32 and ESP8266<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/firebase-esp32-esp8266-ebook\/\">Firebase Web App with ESP32 and ESP8266<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32\/\">Free ESP32 Projects and Tutorials<\/a><\/li>\n<\/ul>\n\n\n\n<p>Thanks for reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this guide, you&#8217;ll learn how to send messages to your WhatsApp account with the ESP32. This can be useful to receive notifications from the ESP32 with sensor readings, alert &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"ESP32: Send Messages to WhatsApp\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/esp32-send-messages-whatsapp\/#more-116703\" aria-label=\"Read more about ESP32: Send Messages to WhatsApp\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":5,"featured_media":116775,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[281,276,277,299,264],"tags":[],"class_list":["post-116703","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp32-project","category-esp32","category-esp32-arduino-ide","category-0-esp32","category-project"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2022\/09\/ESP32-Send-WhatsApp-Messages.jpg?fit=1280%2C720&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/116703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=116703"}],"version-history":[{"count":20,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/116703\/revisions"}],"predecessor-version":[{"id":150450,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/116703\/revisions\/150450"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/116775"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=116703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=116703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=116703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}