

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF[
	<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
	<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
	<!ENTITY owl 'http://www.w3.org/2002/07/owl#'>
	<!ENTITY swivt 'http://semantic-mediawiki.org/swivt/1.0#'>
	<!ENTITY wiki 'http://https://wikifab.org/wiki/Special:URIResolver/'>
	<!ENTITY category 'http://https://wikifab.org/wiki/Special:URIResolver/Category-3A'>
	<!ENTITY property 'http://https://wikifab.org/wiki/Special:URIResolver/Property-3A'>
	<!ENTITY wikiurl 'https://wikifab.org/wiki/'>
]>

<rdf:RDF
	xmlns:rdf="&rdf;"
	xmlns:rdfs="&rdfs;"
	xmlns:owl ="&owl;"
	xmlns:swivt="&swivt;"
	xmlns:wiki="&wiki;"
	xmlns:category="&category;"
	xmlns:property="&property;">

	<owl:Ontology rdf:about="https://wikifab.org/wiki/Special:ExportRDF/ESP32_with_WebSerial-3A_A_Comprehensive_Guide">
		<swivt:creationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2026-05-23T05:08:58+02:00</swivt:creationDate>
		<owl:imports rdf:resource="http://semantic-mediawiki.org/swivt/1.0"/>
	</owl:Ontology>
	<swivt:Subject rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/ESP32_with_WebSerial-3A_A_Comprehensive_Guide">
		<rdf:type rdf:resource="http://https://wikifab.org/wiki/Special:URIResolver/Category-3ATutorials"/>
		<rdf:type rdf:resource="http://https://wikifab.org/wiki/Special:URIResolver/Category-3APages_avec_des_erreurs_de_coloration_syntaxique"/>
		<rdfs:label>ESP32 with WebSerial: A Comprehensive Guide</rdfs:label>
		<rdfs:isDefinedBy rdf:resource="https://wikifab.org/wiki/Special:ExportRDF/ESP32_with_WebSerial-3A_A_Comprehensive_Guide"/>
		<swivt:page rdf:resource="https://wikifab.org/wiki/ESP32_with_WebSerial-3A_A_Comprehensive_Guide"/>
		<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</swivt:wikiNamespace>
		<swivt:wikiPageContentLanguage rdf:datatype="http://www.w3.org/2001/XMLSchema#string">en</swivt:wikiPageContentLanguage>
		<property:Area rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Electronics</property:Area>
		<property:Complete rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Published</property:Complete>
		<property:Cost rdf:datatype="http://www.w3.org/2001/XMLSchema#double">10</property:Cost>
		<property:Currency rdf:datatype="http://www.w3.org/2001/XMLSchema#string">USD ($)</property:Currency>
		<property:Description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Will guide you to add Webserial on ESP32.</property:Description>
		<property:Difficulty rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Easy</property:Difficulty>
		<property:Duration rdf:datatype="http://www.w3.org/2001/XMLSchema#double">1</property:Duration>
		<property:Duration-2Dtype rdf:datatype="http://www.w3.org/2001/XMLSchema#string">hour(s)</property:Duration-2Dtype>
		<property:Introduction rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The ESP32 is a versatile and inexpensive microcontroller that has taken the hobbyist and professional world by storm. It’s a powerful tool with built-in Wi-Fi and Bluetooth capabilities, making it an ideal choice for Internet of Things (IoT) projects. One of its many features is the ability to communicate over serial, which can be extended to the web using WebSerial. This blog post will delve into setting up an ESP32 with WebSerial.</property:Introduction>
		<property:IsTranslation rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</property:IsTranslation>
		<property:Language rdf:datatype="http://www.w3.org/2001/XMLSchema#string">en</property:Language>
		<property:Licences rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Attribution (CC BY)</property:Licences>
		<property:Main_Picture rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ESP32_with_WebSerial-_A_Comprehensive_Guide_15.JPG</property:Main_Picture>
		<property:Material rdf:datatype="http://www.w3.org/2001/XMLSchema#string">'''&lt;u&gt;Hardware components:-&lt;/u&gt;'''

Espressif Wemos D1 Mini


'''&lt;u&gt;Software apps and online services:-&lt;/u&gt;'''

Arduino IDE</property:Material>
		<property:SourceLanguage rdf:datatype="http://www.w3.org/2001/XMLSchema#string">none</property:SourceLanguage>
		<property:Step_Content rdf:datatype="http://www.w3.org/2001/XMLSchema#string">WebSerial is a web standard that allows websites to communicate with serial devices. It bridges the web and the physical world, enabling web applications to interact with hardware devices. This opens up a world of possibilities for IoT projects, allowing real-time interaction between web applications and physical devices.</property:Step_Content>
		<property:Step_Content rdf:datatype="http://www.w3.org/2001/XMLSchema#string">You must check out [https://www.pcbway.com/ PCBWAY] for ordering PCBs online for cheap!

You get 10 good-quality PCBs manufactured and shipped to your doorstep for cheap. You will also get a discount on shipping on your first order. Upload your Gerber files onto [https://www.pcbway.com/ PCBWAY] to get them manufactured with good quality and quick turnaround time. PCBWay now could provide a complete product solution, from design to enclosure production. Check out their online Gerber viewer function. With reward points, you can get free stuff from their gift shop. Also, check out this useful blog on PCBWay Plugin for KiCad from [https://www.pcbway.com/blog/News/PCBWay_Plug_In_for_KiCad_3ea6219c.html here. U]sing this plugin, you can directly order PCBs in just one click after completing your design in KiCad.</property:Step_Content>
		<property:Step_Content rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Before we can use WebSerial with the ESP32, we need to set up the ESP32 development environment. Here are the steps:

* '''Install the Arduino IDE''': The Arduino IDE is a popular platform for writing and uploading code to the ESP32. You can download it from the official Arduino website.
* '''Install the ESP32 Board in Arduino IDE''': You can add the ESP32 board to the Arduino IDE by going to &lt;code&gt;'''File &gt; Preferences &gt; Additional Boards Manager URLs'''&lt;/code&gt; and adding the ESP32 board manager URL. This will allow the Arduino IDE to recognize the ESP32 board and provide the appropriate options for programming it.
* '''Select the ESP32 Board''': Go to &lt;code&gt;'''Tools &gt; Board &gt; ESP32 Arduino'''&lt;/code&gt; and select your ESP32 board. This tells the Arduino IDE that you will be programming an ESP32 board.</property:Step_Content>
		<property:Step_Content rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Next, we need to install the WebSerial library. Here’s how:

* Go to &lt;code&gt;'''Sketch &gt; Include Library &gt; Manage Libraries'''&lt;/code&gt;.
* In the search bar, type &lt;code&gt;'''WebSerial'''&lt;/code&gt;.
* Click &lt;code&gt;'''Install'''&lt;/code&gt;.</property:Step_Content>
		<property:Step_Content rdf:datatype="http://www.w3.org/2001/XMLSchema#string">&lt;nowiki&gt;Once the ESP32 is set up, we can write a program to enable WebSerial communication. Here’s a simple example:&lt;div class="mw-highlight mw-content-ltr" dir="ltr"&gt;&lt;pre&gt;/*&lt;br /&gt;  WebSerial Demo&lt;br /&gt;  ------&lt;br /&gt;  This example code works for both ESP8266 &amp; ESP32 Microcontrollers&lt;br /&gt;  WebSerial is accessible at your ESP's &lt;IPAddress&gt;/webserial URL.&lt;br /&gt;&lt;br /&gt;  Author: Ayush Sharma&lt;br /&gt;  Checkout WebSerial Pro: https://webserial.pro&lt;br /&gt;*/&lt;br /&gt;#include &lt;Arduino.h&gt;&lt;br /&gt;#if defined(ESP8266)&lt;br /&gt;  #include &lt;ESP8266WiFi.h&gt;&lt;br /&gt;  #include &lt;ESPAsyncTCP.h&gt;&lt;br /&gt;#elif defined(ESP32)&lt;br /&gt;  #include &lt;WiFi.h&gt;&lt;br /&gt;  #include &lt;AsyncTCP.h&gt;&lt;br /&gt;#endif&lt;br /&gt;#include &lt;ESPAsyncWebServer.h&gt;&lt;br /&gt;#include &lt;WebSerial.h&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#define Relay 2&lt;br /&gt;AsyncWebServer server(80);&lt;br /&gt;&lt;br /&gt;const char* ssid = "ELDRADO"; // Your WiFi SSID&lt;br /&gt;const char* password = "amazon123"; // Your WiFi Password&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/* Message callback of WebSerial */&lt;br /&gt;void recvMsg(uint8_t *data, size_t len){&lt;br /&gt;  WebSerial.println("Received Data...");&lt;br /&gt;  String d = "";&lt;br /&gt;  for(int i=0; i &lt; len; i++){&lt;br /&gt;    d += char(data[i]);&lt;br /&gt;  }&lt;br /&gt;  WebSerial.println(d);&lt;br /&gt;  if (d == "ON"){&lt;br /&gt;    digitalWrite(Relay, HIGH);&lt;br /&gt;  }&lt;br /&gt;  if (d=="OFF"){&lt;br /&gt;    digitalWrite(Relay, LOW);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void setup() {&lt;br /&gt;    Serial.begin(115200);&lt;br /&gt;    pinMode(Relay, OUTPUT);&lt;br /&gt;    WiFi.mode(WIFI_STA);&lt;br /&gt;    WiFi.begin(ssid, password);&lt;br /&gt;    if (WiFi.waitForConnectResult() != WL_CONNECTED) {&lt;br /&gt;        Serial.printf("WiFi Failed!\n");&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;    Serial.print("IP Address: ");&lt;br /&gt;    Serial.println(WiFi.localIP());&lt;br /&gt;    // WebSerial is accessible at "&lt;IP Address&gt;/webserial" in browser&lt;br /&gt;    WebSerial.begin(&amp;server);&lt;br /&gt;    /* Attach Message Callback */&lt;br /&gt;    WebSerial.msgCallback(recvMsg);&lt;br /&gt;    server.begin();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop() {&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;in this above sketch, I have added a relay control part with GPIO Pin2, if the serial input data is "ON" the really will on if it's "OFF" it will turn off the relay.&lt;br /&gt;&lt;br /&gt;Once you upload the code to ESP32, look for the serial terminal to know the IP address of the ESP32.&lt;blockquote&gt;Node: Change the Wi-Fi credentials.&lt;/blockquote&gt;In my case here is the response.&lt;/nowiki&gt;</property:Step_Content>
		<property:Step_Content rdf:datatype="http://www.w3.org/2001/XMLSchema#string">&lt;section id="story"&gt;&lt;br /&gt;The ESP32 with WebSerial opens up a world of possibilities for IoT projects. By bridging the gap between the web and the physical world, we can create interactive, real-time applications that communicate with hardware devices. Whether you’re a hobbyist or a professional developer, the ESP32 with WebSerial is a powerful tool in your IoT toolkit. With this detailed guide, you should now have a solid understanding of how to set up and use the ESP32 with WebSerial. Happy coding!&lt;br /&gt;&lt;/section&gt;</property:Step_Content>
		<property:Step_Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Understanding WebSerial</property:Step_Title>
		<property:Step_Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Get PCBs for Your Projects Manufactured</property:Step_Title>
		<property:Step_Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Setting Up the ESP32</property:Step_Title>
		<property:Step_Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Install WebSerial for ESP32</property:Step_Title>
		<property:Step_Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Programming the ESP32 for WebSerial</property:Step_Title>
		<property:Step_Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Conclusion</property:Step_Title>
		<property:Tags rdf:datatype="http://www.w3.org/2001/XMLSchema#string">esp</property:Tags>
		<property:Tags rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ESP32</property:Tags>
		<property:Tags rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Espressif</property:Tags>
		<property:Tags rdf:datatype="http://www.w3.org/2001/XMLSchema#string">wireless</property:Tags>
		<property:Tags rdf:datatype="http://www.w3.org/2001/XMLSchema#string">relay</property:Tags>
		<property:Tags rdf:datatype="http://www.w3.org/2001/XMLSchema#string">wemos</property:Tags>
		<property:Type rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Creation</property:Type>
		<swivt:wikiPageModificationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2023-12-24T11:56:47Z</swivt:wikiPageModificationDate>
		<property:Modification_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2460302.9977662</property:Modification_date-23aux>
		<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ESP32 with WebSerial: A Comprehensive Guide</swivt:wikiPageSortKey>
		<property:Comments rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0</property:Comments>
		<property:Page_creator rdf:resource="&wiki;Utilisateur-3ACETECH11"/>
		<property:I_did_it rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0</property:I_did_it>
		<property:Favorites rdf:datatype="http://www.w3.org/2001/XMLSchema#double">0</property:Favorites>
	</swivt:Subject>
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#creationDate" />
	<owl:Class rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Category-3ATutorials" />
	<owl:Class rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Category-3APages_avec_des_erreurs_de_coloration_syntaxique" />
	<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#page" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiNamespace" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageContentLanguage" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AArea" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AComplete" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ACost" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ACurrency" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ADescription" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ADifficulty" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ADuration" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ADuration-2Dtype" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AIntroduction" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AIsTranslation" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ALanguage" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ALicences" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AMain_Picture" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AMaterial" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ASourceLanguage" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AStep_Content" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AStep_Title" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3ATags" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AType" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageModificationDate" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AModification_date-23aux" />
	<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageSortKey" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AComments" />
	<owl:ObjectProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3APage_creator" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AI_did_it" />
	<owl:DatatypeProperty rdf:about="http://https://wikifab.org/wiki/Special:URIResolver/Property-3AFavorites" />
	<!-- Created by Semantic MediaWiki, https://www.semantic-mediawiki.org/ -->
</rdf:RDF>