<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Krypton | Madhusudan Babar</title>
    <description>The latest articles on DEV Community by Krypton | Madhusudan Babar (@madhusudanbabar).</description>
    <link>https://dev.to/madhusudanbabar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F295992%2F9999ee6c-8a0c-4994-89ec-cb6581269123.jpeg</url>
      <title>DEV Community: Krypton | Madhusudan Babar</title>
      <link>https://dev.to/madhusudanbabar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/madhusudanbabar"/>
    <language>en</language>
    <item>
      <title>Install Java 17 On Linux in 2 Ways: Step-By-Step Guide</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Fri, 26 Jan 2024 03:47:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/install-java-17-on-linux-in-2-ways-step-by-step-guide-2omk</link>
      <guid>https://dev.to/madhusudanlive/install-java-17-on-linux-in-2-ways-step-by-step-guide-2omk</guid>
      <description>&lt;p&gt;Hello guys, today in this tutorial, we will cover how to install the Java 17 JDK on your machine in two different ways, this installation guide covers the steps for all the Linux distros Fedora, Debian, or Ubuntu.&lt;/p&gt;

&lt;p&gt;This tutorial is specifically for Java 17 - OpenJDK 17, I'll explain each command in brief, and provide the necessary information, so let's open your terminals and get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/install-java-17-in-linux-fedora-debian#how-to-install-java-17"&gt;How to install Java 17?&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;let's start by checking if Java is installed already, as there might be multiple versions of Java but the default is set to some other version, so we will check what versions of Java are installed in the system already.&lt;/p&gt;

&lt;p&gt;open the terminal and run the following command to list the installed Java versions&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;update-alternatives --config java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will list the installed Java versions as shown in the screenshot below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---qC6HaVD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/java/update-alternatives-command.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---qC6HaVD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/java/update-alternatives-command.png" alt="Screenshot of update-alternatives command" title="Screenshot of update-alternatives command" width="800" height="360"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Screenshot of update-alternatives command&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;The 3rd entry in this screenshot is java 17 (*+ 3 /usr/lib/jvm/jdk-17-oracle-x64/bin/java). If this is the case for you, then java 17 is already installed on your machine, but not set as default. To make it default, just enter the number in front of the java 17 entry and its done, but if you don't find any such entries, then follow this guide.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/install-java-17-in-linux-fedora-debian#for-fedoraredhat-based-linux-os"&gt;For Fedora/Redhat-based Linux OS&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Download the JDK:
run the following command in the terminal to download the latest Java 17 JDK
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Install the downloaded RPM binary:
You might need the superuser rights to execute the following command
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo rpm -Uvh jdk-17_linux-x64_bin.rpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Add/update the JAVA_HOME and PATH environment variables:
The following command also needs superuser privileges, this command sets the JAVA_HOME variable and updates the PATH environment variable
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat &amp;lt;&amp;lt;EOF | sudo tee /etc/profile.d/jdk.sh
&amp;gt; export JAVA_HOME=/usr/java/default
&amp;gt; export PATH=\$PATH:\$JAVA_HOME/bin
&amp;gt; EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Source the newly created jdk.sh:
to ensure the environment variables are set properly
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source /etc/profile.d/jdk.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Update the default java:
now run the following command again to verify the installation
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;update-alternatives --config java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;type the number in front of the Java 17 entry and hit enter, in my case, it's 3 so I'll enter 3.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---qC6HaVD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/java/update-alternatives-command.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---qC6HaVD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/java/update-alternatives-command.png" alt="Screenshot of update-alternatives command" title="Screenshot of update-alternatives command" width="800" height="360"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Screenshot of update-alternatives command&lt;/em&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Verify the Installation:
Lastly, check the Java version by running the following command
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;java -version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WgKRU6Ge--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/java/java-version-command-output.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WgKRU6Ge--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/java/java-version-command-output.png" alt="Screenshot of java -version command output" title="Screenshot of java -version command output" width="800" height="360"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Screenshot of java -version command output&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Congratulations, you've installed Java 17 on your system.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/install-java-17-in-linux-fedora-debian#for-ubuntu-based-os"&gt;For Ubuntu-based OS&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Update the packages repository:
execute the following command to update the list of packages
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Install Java 17 by OpenJDK you need superuser access to run the following command
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install openjdk-17-jdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Verify the Installation:
Lastly, check the Java version by running the following command
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;java -version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/install-java-17-in-linux-fedora-debian#manual-method-non-root"&gt;Manual method - Non root&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;You can install Java 17 on your system, even without the root access, follow these steps to set up the Java 17 without superuser access in manual mode.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to a directory with write access:
switch to a path where you would like to have your Java 17 installed, e.g.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ~/Desktop/setups
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Download the Java 17 tarball
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Extract the tarball
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tar -xvzf jdk-17_linux-x64_bin.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Set the environment variables:
make sure to replace the &lt;code&gt;~/Desktop/setups&lt;/code&gt; with your actual JDK installation path
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export JAVA_HOME=~/Desktop/setups/jdk-17_linux-x64_bin
export PATH=$PATH:$JAVA_HOME/bin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Verify the Installation:
At last, verify the Java version by running the following command
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;java -version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/install-java-17-in-linux-fedora-debian#conclusion"&gt;conclusion&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Java 17 can be installed easily with or without superuser access by following this step-by-step guide on your Linux machines, also the default versions can be managed by using the &lt;code&gt;update-alternatives&lt;/code&gt; command to easily switch between different java versions.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/install-java-17-in-linux-fedora-debian#frequently-asked-questions"&gt;Frequently Asked Questions:&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;How to install Java 17?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Java 17 can be installed by following this easy to understand tutorial, just follow the steps based on your system and install the OpenJDK 17 on your machine, you can also install the Java 17 without superuser access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino UNO Features Explained: Shields, IDE: Nano, ESP32&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tags:&lt;br&gt;
&lt;a href="https://madhusudan.live/tag/howto"&gt;howto&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/linux"&gt;linux&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/cli"&gt;cli&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/installation"&gt;installation&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>howto</category>
      <category>linux</category>
      <category>cli</category>
      <category>installation</category>
    </item>
    <item>
      <title>Beginners Guide to Computer Programming with No Experience</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Thu, 04 Jan 2024 11:49:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/beginners-guide-to-computer-programming-with-no-experience-599e</link>
      <guid>https://dev.to/madhusudanlive/beginners-guide-to-computer-programming-with-no-experience-599e</guid>
      <description>&lt;p&gt;Hello my friends on the internet, ever dreamed of building apps, games, and websites? Automating your tasks or the cool bots that greet you on your achievements, and create schedules for you? Well, all this magic is made possible by computer programming. Everything you see on the internet, the apps you use, the games you play, and even the appliances in your home have some connections with the programming.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basics-of-computer-programming-for-beginners#why-learn-computer-programming"&gt;Why learn computer programming?&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Learning computer programming is a superpower, it makes you the magician of computer wonderland. As I mentioned earlier, computer programming is what powers all these stuff like apps, games, websites, automated replies, and many more. Today, almost everything is somewhat connected to computers, the internet, and computer programming are the driving force behind this.&lt;/p&gt;

&lt;p&gt;Once you learn computer programming, you can build your SaaS startup, and create your apps, new doors will open up to your imagination, and the creativity within you. That's not all but once you learn computer programming, you can advance in your career, it is a must-have skill in today's digital world.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basics-of-computer-programming-for-beginners#choosing-the-weapon-programming-language"&gt;Choosing the weapon (Programming Language)&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;OK, now that I believe, I've convinced you enough to start your programming journey, but here comes the major challenges. What programming language to learn? And how easy or difficult the path will be. How to select a programming language for X?&lt;/p&gt;

&lt;p&gt;Well now before moving ahead, let's clear these things first, programming languages are nothing but tools, it's not the computer program but your logic that does the trick. It is up to you how to use these tools to build your own stuff. Each programming language has its own strengths and specialities, but this does not mean that you cannot do X thing using Y programming language, it's just that some programming languages are more specialized for a particular thing.&lt;/p&gt;

&lt;p&gt;Selecting a programming language needs some research, you need to decide the end goal first, the outcome you want, and then you decide on which programming language to select.&lt;/p&gt;

&lt;p&gt;For Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you want to develop websites, you need to go for web technologies such as JavaScript, groovy, Java, etc.&lt;/li&gt;
&lt;li&gt;If you want to build mobile apps, you should learn Java, Kotlin, Swift, dart, etc.&lt;/li&gt;
&lt;li&gt;If you have an interest in data science, you should opt for Python, R, and similar languages.&lt;/li&gt;
&lt;li&gt;If you are interested in embedded systems, and electronics, go for C, or C++.&lt;/li&gt;
&lt;li&gt;Automating tasks? Python is your friend. And for general-purpose programming,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's not all, while choosing a programming language, you should see the community support for that specific language. By community support I mean, the activity on developer forums, such as StackOverflow, the libraries available, and tooling such as IDEs, debuggers, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/basics-of-computer-programming-for-beginners#setup-and-learning-resources"&gt;Setup and Learning Resources&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Now once you select your end goal, and a programming language, it's time to dive into the computer programming world. Start with the basics but before that, you need to set up your development environment, download and install the necessary software, programming language tools, package managers, SDKs, etc.&lt;/p&gt;

&lt;p&gt;Once the necessary software and tools are installed, you can start learning the specific programming language. There are various ways such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Platforms:&lt;/strong&gt; Several online platforms offer learning along with exercises, so you can learn and apply the concepts, this is a great idea if you prefer to learn and practice simultaneously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video Tutorials and Courses:&lt;/strong&gt; YouTube has a variety of videos on programming languages, and basic programming concepts, and platforms like Coursera, Udemy, and many others platforms provide great content on computer programming.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Books (E-Books or hard copies):&lt;/strong&gt; Another way is to learn by reading books, this way you can go at your own pace and practice along, I started my programming journey with books.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are the steps that I follow to learn any programming language or framework:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start with a crash course:&lt;/strong&gt; There are plenty of videos, and crash courses available on YouTube and other course websites.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learn the basic constructs:&lt;/strong&gt; Understand the control structures, keywords, syntaxes, and other features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start a Mini Project:&lt;/strong&gt; Once you understand the strengths, and capabilities of that specific programming language, build a simple project on that.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all. For any programming language, it is always a better idea to learn by building projects rather than learning theoretically.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/basics-of-computer-programming-for-beginners#practice-practice-practice"&gt;Practice, Practice, Practice&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Now that you have gained a basic understanding, it's time to apply this in real-world scenarios. Learning code is like gaining a new skill. It takes time to master, and the best way to do is to practice.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Build Smart Projects:&lt;/strong&gt; Start with building mini projects, such as calculators, To-Do lists, appointment apps, tic-tac-toe games, etc to enhance your skills.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Participate In Online Challenges:&lt;/strong&gt; Participating in Online challenges and Hackathons is the best way to apply your knowledge. I used to participate in coding contests, which not only enhance your skill set but earn you certificates and badges too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contribute to Open Source:&lt;/strong&gt; Join and contribute to open-source projects, open-source projects are great ways to contribute, they not only sharpen your coding skills but also allow you to collaborate with fellow developers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basics-of-computer-programming-for-beginners#conclusion"&gt;Conclusion&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Computer Programming is a must-have skill in today's digital world. It allows you to build apps, and games, automate tasks, and advance your career. But as every skill needs practice to keep it up to date, programming also needs practice to enhance the skills, online contests, interactive platforms, and coding challenges are the best ways to enhance your coding skills.&lt;/p&gt;

&lt;p&gt;But remember, as I said earlier, programming languages are just tools, logic is everything, and it's your logic that does these mysterious things. If you have prior experience with any programming language, learning another language won't take even a single day (not exaggerating).&lt;/p&gt;

&lt;p&gt;Logic is everything, programming language&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/interfacing-16x2-lcd-with-8051"&gt;Interfacing a 16x2 LCD with 8051 family microcontroller&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tags:&lt;br&gt;
&lt;a href="https://madhusudan.live/tag/programming"&gt;programming&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>Types of programming languages &amp; basic Concepts for beginners</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Tue, 26 Dec 2023 03:25:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/types-of-programming-languages-basic-concepts-for-beginners-4nai</link>
      <guid>https://dev.to/madhusudanlive/types-of-programming-languages-basic-concepts-for-beginners-4nai</guid>
      <description>&lt;p&gt;Are you fascinated by the computer programming? Do you have secret crush on the guys and girls who love to code? Ever wondeed what magic happens behind the scenes of these beautiful machines?&lt;/p&gt;

&lt;p&gt;Well, I'm here for your rescue, I'll take you on the adventure of this computer programs wonderland. This is going to be a fun ride, so let's get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/types-of-programming-languages#what-is-a-programming-language"&gt;What is a programming language?&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;You might have heard it many of times, "We Live In Digital Age", this digital era is powered by nothing but the computers. We all know how dependent our life has became on these devices, today, we can't imagine a day without these devices.&lt;/p&gt;

&lt;p&gt;Computers are initially built for performing the complex mathematical operations i.e. computation, hence the name computers. these computers are evolved with time and now they have become an integral part of our lives.&lt;/p&gt;

&lt;p&gt;As the computers are best at performing various tasks, storing data, pocesssing it and retrieving when needed, however, we need to instruct the computers to do so. but as computers don't understand human language, that's where a programming language comes into picture.&lt;/p&gt;

&lt;p&gt;A programming language is a set of a generic rules and grammar for computers. These rules are then used to instruct the computer. a set of instructions given to perform certain task is called as a program or application.&lt;/p&gt;

&lt;p&gt;These instructions are processed by CPU - central processing unit, think of it like the brain of computer. We will come back to CPU later in this article.&lt;/p&gt;

&lt;p&gt;Ok, so now you understood what is a programming language and why we need it, now let's discuss the types of programming languages.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/types-of-programming-languages#types-of-programming-languages"&gt;Types of Programming languages&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bwr_vziI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/programming-languages/classification-of-programming-language.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bwr_vziI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/programming-languages/classification-of-programming-language.png" alt="Classification of programming languages" title="Classification of programming languages" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Classification of programming languages&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Programming languages are classified into mainly 3 categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Low Level Programming Languages&lt;/li&gt;
&lt;li&gt;Medium Level Programming Languages&lt;/li&gt;
&lt;li&gt;High Level Programming Languages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You may wonder, what kind of levels are these, right? Well, these are the difficulty levels for a computer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Low Level Programming Languages&lt;/strong&gt; : Low level programming languages are the easiest for a computer to understand, typically these are binary languages or hex codes. as the computers work on binary logic i.e. 0s and 1s, and so it's easier for the computers to process these languages. these instructions are the very specific to the hardware of the computer.&lt;/p&gt;

&lt;p&gt;e.g.: Binary language, Hex codes&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# binary representation of "Hello World!"

01001000 01100101 01101100 01101100 01101111 00100000
01010111 01101111 01110010 01101100 01100100 00100001
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Medium Level Programming Languages&lt;/strong&gt; : Medium level programming languages are not so difficult, neither so easy, an example could be Assembly language. It is an intermediate programming language, which makes use of simple instructions, which can be understood by humans as well as the computer.&lt;/p&gt;

&lt;p&gt;e.g.: Assembly language&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;section .text
    global _start

_start: ;entry point

    mov edx,len ;message length
    mov ecx,msg ;message to write
    mov ebx,1 ;output stream descriptor (stdout)
    mov eax,4 ;system call number (sys_write)
    int 0x80 ;call kernel

    mov eax,1 ;system call number (sys_exit)
    int 0x80 ;call kernel

section .data

msg db 'Hello, world!',0xa
len equ $ - msg ;length of our string
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;High Level Programming Languages&lt;/strong&gt; : High level programming languages allows a developer to think of the application rather than the hardware of the computer, these are the highest abstraction of hardware and the developer does not need to think of the hardware, architecture, etc. These languages use verbs similar to the ones we use to communicate.&lt;/p&gt;

&lt;p&gt;e.g.: C, C++, Java&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// example code in C
#include &amp;lt;stdio.h&amp;gt;
int main() {
   printf("Hello, World!");
   return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This how we classified the programming languages but now there are other criteria as well. but befor that we will discuss some important concepts that are used to further classify these programming languages.&lt;/p&gt;

&lt;p&gt;There are other criteria to classify the programming languages, based on the features of programming languages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functional Programming Languages&lt;/li&gt;
&lt;li&gt;Object-Oriented Programming Languages&lt;/li&gt;
&lt;li&gt;Scripting or Interpreted Languages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Functional Programming Languages&lt;/strong&gt; : Functional programming languages groups the reusable parts of a program, those groups are called as functions, hence the name. Functions returns the result of computation or perform certain tasks, these functions can be called from other functions as well as the same function.&lt;/p&gt;

&lt;p&gt;Functional programming languages follows a top-down approach which means that the code starts the execution from very first line and continues till the last line from top to bottom.&lt;/p&gt;

&lt;p&gt;e.g.: C&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
int main() {
   printf("Hello, World!");
   return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Object-Oriented Programming Languages&lt;/strong&gt; : Object oriented programming languages or OOP are advanced version of programming languages, these languages groups the logically related functions and variables together in an &lt;em&gt;Object&lt;/em&gt;. These languages defines a blueprint of the functionality i.e. class and these classes are instantiated to create the objects. OOP languages use bottom up approach.&lt;/p&gt;

&lt;p&gt;e.g.: Java, C++&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Scripting or Interpreted Languages&lt;/strong&gt; : Scripting languages are often used for small programs, mostly related to system, automation scripts, etc. these languages execute line by line and are generally used in computer terminals to interact with the system resources easily.&lt;/p&gt;

&lt;p&gt;e.g.: Bash, Python, Javascript&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# hello world in python
println("Hello World")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/types-of-programming-languages#execution-of-code"&gt;Execution of code&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Well to run a program or a piece of code, we need to go through some processes, these processes are different for different programming languages. In order to run the program, it needs to be properly translated to the machine level language, following are some of the common tools that ease this processs.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/types-of-programming-languages#assemblers"&gt;Assemblers&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Assemblers take the assembly language code to the machine level language. assembly language is set of instructions called mnemonics which are fed to the assembler and translated into machine level language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of assembly language&lt;/strong&gt; : Assembly language is closer to the hardware and so one can access the system resources efficiently and easily work on the hardware level.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/types-of-programming-languages#compiler"&gt;Compiler&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Some Programming languages need to be processed before their execution, these processing is done by a compiler, a compiler takes the code and converts it into the machine level language depending on the hardware of that system. The compiler takes the entire codebase and converts it into the machine level language.&lt;/p&gt;

&lt;p&gt;Hadware, here refers to the CPU architecture, instruction set and other low level details of a computer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of compiled languages&lt;/strong&gt; : Code gets compiled as a whole, so it generally runs faster, also the compiled executable file can be shared without need of sharing the original source code.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/types-of-programming-languages#interpreter"&gt;Interpreter&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;interpreter is also similar to the compliler, but the key difference here is the interpreter transates the code to machine language line by line, hence it reads, interprets and executes the lines sequentially, hence it is called as interpreter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of interpreted languages&lt;/strong&gt; : Interpreted code is easier to debug, since it executes line by line, the errors are catched easily, also it's more flexible as the changes can be implemented and tested easily without the need of recompilation every time.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/types-of-programming-languages#virtual-machines"&gt;Virtual Machines&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Virtual machines are the virtual abstractions of actual physical hardware. these are software emulated implementation of different operating systems. Java uses this method to mimic the same environment on all the Operating systems. the VM is called as Java Virtual Machine, the Java code is firstly compiled into the bytecode and this bytecode is run using Java virtual Machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages of JVM&lt;/strong&gt; : Same code runs on all the operating system without any additional steps, creating the same environment on any platform / operating system.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/types-of-programming-languages#bonus"&gt;Bonus&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Well that's not everything, there are many other languages, that resemble like programming languages but they are not, such as HTML, Markdown, XML, etc.&lt;/p&gt;

&lt;p&gt;The most popular HTML, which is the base of the internet is not a programming language but a markup language.Similarly there are markdown languages as well. I'll cover the basics of markdown in the next Article. stay tuned for more.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/types-of-programming-languages#conclusion"&gt;Conclusion&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;In the ever-evolving landscape of technology, programming languages serve as the bedrock upon which innovation thrives. As we conclude this exploration of programming languages, it's proven that these diverse tools are more than just strings of code; they encapsulate creativity, logic, and the power to transform ideas into reality.&lt;/p&gt;

&lt;p&gt;From the simplicity of Python's readability to the robustness of Java, each language has its unique strengths. Whether it's the flexibility of JavaScript for web development or the efficiency of C++ for system-level programming, the choice of language often aligns with the problem at hand and the preferences of developers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino UNO Features Explained: Shields, IDE: Nano, ESP32&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tags:&lt;br&gt;
&lt;a href="https://madhusudan.live/tag/programming"&gt;programming&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>programming</category>
    </item>
    <item>
      <title>Best VS Code Extensions for web developers</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Sun, 03 Dec 2023 17:15:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/best-vs-code-extensions-for-web-developers-283e</link>
      <guid>https://dev.to/madhusudanlive/best-vs-code-extensions-for-web-developers-283e</guid>
      <description>&lt;p&gt;Are you a web developer seeking to streamline your coding experience? Look no further! I’ve got you the best VS Code extensions for web developers.&lt;/p&gt;

&lt;p&gt;Visual Studio Code (VS Code) is a powerful IDE, and enhancing it with the right extensions can turbocharge your productivity. Let's explore some top-notch extensions that can supercharge your development workflow.&lt;/p&gt;

&lt;p&gt;But before we start digging into this list, I want to tell you how you can install these extensions, so it’ll be easier to install the extensions that you like.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/best-vs-code-extensions-for-web-developers#how-to-install-vs-code-extensions"&gt;How to install VS Code extensions?&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Installing extensions in Visual Studio Code is a straightforward process, you can do it using the VS Code Marketplace, the command palette, or the file system (VSIX files). Here's a step-by-step guide on how to do it using all the methods mentioned:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/blog/best-vs-code-extensions-for-web-developers#method-1-using-the-vs-code-interface"&gt;&lt;strong&gt;Method 1: Using the VS Code Interface&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Launch Visual Studio Code:&lt;/strong&gt; Open the VS Code editor on your computer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access Extensions:&lt;/strong&gt; Click on the Extensions icon in the Activity Bar on the left side of the window (or press &lt;strong&gt;&lt;code&gt;Ctrl+Shift+X&lt;/code&gt;&lt;/strong&gt; / &lt;strong&gt;&lt;code&gt;Cmd+Shift+X&lt;/code&gt;&lt;/strong&gt; on macOS). This will open the Extensions view.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search for Extensions:&lt;/strong&gt; In the Extensions view, you can search for the extensions you want by typing their names into the search bar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Install an Extension:&lt;/strong&gt; Once you find the extension you want, click on the “Install” button next to the extension name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reload VS Code:&lt;/strong&gt; After installation, VS Code might prompt you to reload the editor. If so, click the “Reload” button to enable the installed extension.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/blog/best-vs-code-extensions-for-web-developers#method-2-using-the-command-palette"&gt;&lt;strong&gt;Method 2: Using the Command Palette&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open the Command Palette:&lt;/strong&gt; Press &lt;strong&gt;&lt;code&gt;Ctrl+P&lt;/code&gt;&lt;/strong&gt; (Windows/Linux) or &lt;strong&gt;&lt;code&gt;Cmd+P&lt;/code&gt;&lt;/strong&gt; (macOS) to open the Command Palette.&lt;/li&gt;
&lt;li&gt;Get the extension installation code from the list below.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Install Extension:&lt;/strong&gt; Type &lt;strong&gt;&lt;code&gt;ext install &amp;lt;ext code&amp;gt;&lt;/code&gt;&lt;/strong&gt; and press &lt;strong&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/strong&gt;. This action will open the Extensions view and install the specified extension.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reload VS Code:&lt;/strong&gt; If prompted, reload the editor to activate the newly installed extension.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/blog/best-vs-code-extensions-for-web-developers#method-3-using-vsix-files"&gt;&lt;strong&gt;Method 3: Using VSIX Files&lt;/strong&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In some rare cases, if you have the VSIX file of an extension (usually downloaded from the marketplace or provided by the extension's developer), you can install it directly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open Extensions View:&lt;/strong&gt; Go to the Extensions view in VS Code ( &lt;strong&gt;&lt;code&gt;Ctrl+Shift+X&lt;/code&gt;&lt;/strong&gt; / &lt;strong&gt;&lt;code&gt;Cmd+Shift+X&lt;/code&gt;&lt;/strong&gt; ).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Click on the Three Dots:&lt;/strong&gt; Click on the three dots menu in the top-right corner of the Extensions view.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select “Install from VSIX”:&lt;/strong&gt; Choose the “Install from VSIX” option and navigate to the location where the VSIX file is saved. Select the file and click “Open” to install it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reload VS Code:&lt;/strong&gt; If required, reload the editor to activate the newly installed extension.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Following these steps, you can easily install and manage extensions in Visual Studio Code to enhance your coding experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/best-vs-code-extensions-for-web-developers#top-33-vs-code-extensions-for-web-developers"&gt;Top 33 VS Code extensions for web developers&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;well, here’s the list of my favourite extensions that I personally use on a daily basis&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Prettier&lt;/li&gt;
&lt;li&gt;Auto Rename Tag HTML XML&lt;/li&gt;
&lt;li&gt;Auto Close Tag&lt;/li&gt;
&lt;li&gt;Vetur&lt;/li&gt;
&lt;li&gt;Path Intellisense&lt;/li&gt;
&lt;li&gt;Npm Intellisense&lt;/li&gt;
&lt;li&gt;IntelliSense for CSS class names in HTML&lt;/li&gt;
&lt;li&gt;Color highlight&lt;/li&gt;
&lt;li&gt;Better comments&lt;/li&gt;
&lt;li&gt;REST Client&lt;/li&gt;
&lt;li&gt;To-Do Tree&lt;/li&gt;
&lt;li&gt;Error Lens&lt;/li&gt;
&lt;li&gt;Peacock&lt;/li&gt;
&lt;li&gt;Image Preview&lt;/li&gt;
&lt;li&gt;Color Picker&lt;/li&gt;
&lt;li&gt;Node.js Modules IntelliSense&lt;/li&gt;
&lt;li&gt;Live Sass Compiler&lt;/li&gt;
&lt;li&gt;SCSS Formatter&lt;/li&gt;
&lt;li&gt;Polacode&lt;/li&gt;
&lt;li&gt;SVG&lt;/li&gt;
&lt;li&gt;VS Code Pets&lt;/li&gt;
&lt;li&gt;HTML Class Suggestions&lt;/li&gt;
&lt;li&gt;Vscode-faker&lt;/li&gt;
&lt;li&gt;Grammarly&lt;/li&gt;
&lt;li&gt;Iconify IntelliSense&lt;/li&gt;
&lt;li&gt;Regex Previewer&lt;/li&gt;
&lt;li&gt;Placeholder Images&lt;/li&gt;
&lt;li&gt;Scratchpads&lt;/li&gt;
&lt;li&gt;Vue Peek&lt;/li&gt;
&lt;li&gt;React Extension Pack&lt;/li&gt;
&lt;li&gt;Angular Essentials&lt;/li&gt;
&lt;li&gt;Git Blame&lt;/li&gt;
&lt;li&gt;VSCode PDF&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now Let's Explore them one by one, with their benefits and installation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prettier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prettier is a code formatter, this extension ensures consistent code style across your project. It formats your code on save, paste, or format selection, thus making it more readable and maintainable.&lt;/p&gt;

&lt;p&gt;Moreover, it supports many languages and frameworks, I personally use this extension on all my workspaces.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install esbenp.prettier-vscode&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto Rename Tag HTML XML&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This extension automatically renames paired HTML and XML tags, it syncs the opening and closing tags, thus making the pairs complete&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install formulahendry.auto-rename-tag&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto Close Tag&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Similar to Auto Rename Tag extension, this speeds up HTML, and XML coding by automatically closing tags as you type, reducing typos and syntax errors.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install formulahendry.auto-close-tag&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;V &lt;strong&gt;etur&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a Vue.js developer, vetur is my essential extension, tailored for Vue.js development, Vetur provides syntax highlighting, IntelliSense, and debugging capabilities for Vue components, speeding up the Vue.js development to the next level.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install octref.vetur&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Path Intellisense&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Path Intellisense makes importing files easier by offering auto-completion for filenames, which significantly reduces the chances of file path errors.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install christian-kohler.path-intellisense&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Npm intellisense&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Offers auto-completion for npm modules in import statements, simplifying the process of importing dependencies, you can browse subdirectories inside the modules&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install christian-kohler.npm-intellisense&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IntelliSense for CSS class names in HTML&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Provides IntelliSense for CSS class names, making it easier to select and apply styles to HTML elements. it scans the CSS files in the workspace and suggests the class names for writing HTML&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install Zignd.html-css-class-completion&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Color highlight&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This extension highlights the colours in your code, allowing you to see the colours instantly without switching between files. this highlights the colours in any kind of file, whether it maybe a CSS file or any other&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install naumovs.color-highlight&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Better comments&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This extension, as the name suggests, allows you to write better comments. it enhances code readability by categorizing and colouring comments based on configurable tags, it supports TO-DOs, and other tags can also be configured.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install aaron-bond.better-comments&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;REST Client&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Allows you to send HTTP requests directly from VS Code and view responses, ideal for API testing and debugging. many times we need to test the responses of our APIs and so this extension is best for that purpose.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install humao.rest-client&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To-Do Tree&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Manages your tasks by highlighting to-do's and FIXMEs within your code, aiding in organizing and tracking pending tasks.&lt;/p&gt;

&lt;p&gt;This extension highlights the comments with different colours for different keywords&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install Shiesh.todo-tree&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Error Lens&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Error lens highlights and annotates issues directly within your code, providing additional context for errors and warnings.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install usernamehw.errorlens&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Peacock&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Peacock personalizes your workspace by colouring your editor's window and status bar, enabling easier distinction when working with multiple projects simultaneously.&lt;/p&gt;

&lt;p&gt;I personally have multiple projects ongoing and so peacock allows me to easily distinguish between different projects/workspaces, let’s say for angular projects I use red colour, for vue I use green colour, and so on.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install johnpapa.vscode-peacock&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image Preview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As the name suggests, this extension displays image previews directly in the editor, making it convenient to visualize images without opening them separately.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install kisstkondoros.vscode-gutter-preview&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Color Picker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Allows colour selection by offering a colour picker within VS Code, this extension allows to convert the colour formats from one to another, and streamlining the process of choosing and applying right colours.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install anseki.vscode-color&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Node.js Modules IntelliSense&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Auto-completes Node.js modules in import statements, enhancing productivity by providing suggestions as you type.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install leizongmin.node-module-intellisense&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Sass Compiler&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Compiles Sass or SCSS files to CSS in real-time, eliminating the need for manual compilation.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install ritwickdey.live-sass&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SCSS Formatter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Format your SCSS files for consistency, ensuring clean and organized code.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install sibiraj-s.vscode-scss-formatter&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Polacode&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Captures beautiful screenshots of your code snippets with custom themes and backgrounds, perfect for sharing code on social media or documentation.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install pnp.polacode&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SVG&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Provides rich support for SVG, offering a seamless experience when working with scalable vector graphics.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install jock.svg&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VS Code Pets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Adds a fun touch to your coding environment by displaying adorable pets in your editor.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install tonybaloney.vscode-pets&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML Class Suggestions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Suggests CSS classes as you type HTML, speeding up the process of class selection.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install AndersEAndersen.html-class-suggestions&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vscode-faker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generates fake data directly within your editor, facilitating the creation and testing of applications.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install deerawan.vscode-faker&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grammarly&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Enhances your writing by checking grammar and spelling mistakes within your code comments or markdown files.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install znck.grammarly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Iconify IntelliSense&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Offers auto-completion for Iconify icons, simplifying the process of using various icons in your projects.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install antfu.iconify&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regex Previewer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Assists in crafting regular expressions by instantly showing matches in a dedicated preview pane.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install chrmarti.regex&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Placeholder Images&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quickly inserts placeholder images in various dimensions to assist in layout design.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install JakeWilson.vscode-placeholder-images&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scratchpads&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Creates temporary scratch files for jotting down notes or trying out code snippets without cluttering your project.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install buenon.scratchpads&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vue Peek&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Enables peeking into Vue component definitions and quickly navigating between template, script, and style sections.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install dariofuzinato.vue-peek&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;React Extension Pack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Curated set of extensions for React development, bundling essential tools for React projects.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install jawandarajbir.react-vscode-extension-pack&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Angular Essentials&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Comprehensive pack of extensions tailored for Angular development, providing necessary tools and features.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install johnpapa.angular-essentials&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git Blame&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Displays Git blame information directly in the editor gutter, offering insights into the authorship of code lines.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install waderyan.gitblame&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VSCode PDF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Allows viewing PDF files directly within Visual Studio Code, avoiding the need for external PDF viewers.&lt;/p&gt;

&lt;p&gt;Installation: &lt;code&gt;ext install tomoki1207.pdf&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/best-vs-code-extensions-for-web-developers#conclusion"&gt;Conclusion&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;In conclusion, Visual Studio Code extensions serve as invaluable tools for enhancing your coding experience, offering a vast array of functionalities to streamline your workflow. Whether you're a web developer, programmer, or designer, these extensions cater to various needs, improving productivity and providing a personalized environment within the VS Code editor.&lt;/p&gt;

&lt;p&gt;By following simple steps within the interface or via the Command Palette, you can effortlessly explore, install, and manage extensions to suit your specific requirements. From code formatting and autocomplete features to specialized tools for different frameworks and languages, the VS Code extension marketplace offers a treasure trove of possibilities.&lt;/p&gt;

&lt;p&gt;So, dive into the extensions’ marketplace, explore the vast selection available, and equip yourself with the tools that best fit your development needs. With the right extensions installed, you'll witness a significant boost in efficiency and enjoy a more seamless coding journey within Visual Studio Code. Happy coding!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/blog/google-search-experiments-add-note-button"&gt;Google Search Experiment: Add Note Button For Search Results&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keywords:&lt;br&gt;
&lt;a href="https://madhusudan.live/blog/tag/extensions"&gt;extensions&lt;/a&gt;, &lt;a href="https://madhusudan.live/blog/tag/vscode"&gt;vscode&lt;/a&gt;, &lt;a href="https://madhusudan.live/blog/tag/plugins"&gt;plugins&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>extensions</category>
      <category>vscode</category>
      <category>plugins</category>
    </item>
    <item>
      <title>Google Search Experiment: Add Note Button For Search Results</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Wed, 29 Nov 2023 00:25:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/google-search-experiment-add-note-button-for-search-results-7pd</link>
      <guid>https://dev.to/madhusudanlive/google-search-experiment-add-note-button-for-search-results-7pd</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/google-search-experiments-add-note-button#what-is-the-google-search-notes-experiment"&gt;What is the Google Search Notes Experiment?&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Notes is an experiment by Google search&lt;/strong&gt; that allows users to create and post the insights of the displayed search results, these posts are public and anyone can view your notes as well. this experiment can be enabled via Search Labs.&lt;/p&gt;

&lt;p&gt;The best part is that notes are indexed by Google so having notes can also be beneficial for your website rank, as your site may get backlinks&lt;/p&gt;

&lt;p&gt;These notes are not only text-based but support images as well, however, we cannot add links to the notes, and they'll be rendered as text. As of now, there's no way for webmasters to get insights of notes however Google is coming up with some solution in the future.&lt;/p&gt;

&lt;p&gt;Notes can be added for Google Search results and Google Discover results.&lt;/p&gt;

&lt;p&gt;Notes are only available on the Google app on Android and iPhones only.&lt;/p&gt;

&lt;p&gt;You can add multiple elements to Notes, such as images, stickers, GIFs, emojis, and text, also you can customize the background i.e., the Theme of the Note.&lt;/p&gt;

&lt;p&gt;The images can be added from local storage as well and they can be generated on the fly using AI using the create AI Image option furthermore these images can have frames, and masks as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/google-search-experiments-add-note-button#how-notes-on-google-search-works"&gt;How Notes on Google Search Works&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Google Notes is a search experiment by Google&lt;/strong&gt; , so it's not available for all users, however, if you have signed up for the search labs, you may see an option to enable the notes in the Google App on your smartphone.&lt;/p&gt;

&lt;p&gt;Once the notes option is enabled, 2 buttons called add a note and x notes will start showing for all your Google Search results and Google Discover Results. However, these buttons are visible only from Google App on Android and iPhones, not on the website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--acISAVPm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/google-search-experiment/google-search-notes-feature.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--acISAVPm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/google-search-experiment/google-search-notes-feature.png" alt="Google App displaying Add Note and Notes buttons" title="Google App displaying Add Note and Notes buttons" width="800" height="1778"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Google App displaying Add Note and Notes buttons&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Tapping on the Add Note Button opens the page as shown in the screenshot below&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2liGX8kd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/google-search-experiment/google-search-notes-editor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2liGX8kd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/google-search-experiment/google-search-notes-editor.png" alt="Preview of Google Search Notes Editor" title="Preview of Google Search Notes Editor" width="800" height="1778"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Preview of Google Search Notes Editor&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;As I said earlier, these notes support stickers, images, and GIFs, and they also allow you to customize the theme.&lt;/p&gt;

&lt;p&gt;Once you're satisfied with the customizations, you can post the note, these notes are not shown instantly but undergo a review process, and once done, your notes are live for the public.&lt;/p&gt;

&lt;p&gt;Once the notes are live, they can by clicking the Notes button&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NxtrgHa8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/google-search-experiment/google-search-notes-preview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NxtrgHa8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/google-search-experiment/google-search-notes-preview.png" alt="Google Search Notes Preview" title="Google Search Notes Preview" width="800" height="1778"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Google Search Notes Preview&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Important point is that these notes are indexed by Google, and so can be shown on SERP&lt;/p&gt;

&lt;p&gt;Here's an example of my note&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G8dMHchf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/google-search-experiment/notes-in-google-serp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G8dMHchf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/google-search-experiment/notes-in-google-serp.png" alt="Notes in Google Search Results" title="Notes in Google Search Results" width="800" height="1778"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Notes in Google Search Results&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;The 3rd result in this screenshot comes from the Google Notes feature, this result is shown on both mobile as well as desktop SERP and it can be seen on the Google App as well as the Website.&lt;/p&gt;

&lt;p&gt;This can be a positive signal for your website as having notes, and insights by real people shows the engagement and impressions of your article.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/google-search-experiments-add-note-button#wrapping-up"&gt;Wrapping up&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;In conclusion, the addition of the “Notes” feature in Google search is an exciting experiment that allows users to share their insights and comments about search results. With the ability to post public notes and the potential benefits for website ranking, this feature opens up new possibilities for user engagement and interaction with search results. Although currently available only on the Google app for Android and iPhones, the Notes feature provides users with a convenient way to contribute to the search experience. As Google continues to develop and refine this experiment, it will be interesting to see how webmasters can leverage these notes to gain insights and improve their website's performance. Overall, the Notes feature enhances the search experience by incorporating user-generated content and fostering a sense of community within the Google search ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide"&gt;Basic Electronic Components with Functions &amp;amp; Working: PDF&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keywords:&lt;br&gt;
&lt;a href="https://madhusudan.live/blog/tag/google"&gt;google&lt;/a&gt;, &lt;a href="https://madhusudan.live/blog/tag/seo"&gt;seo&lt;/a&gt;, &lt;a href="https://madhusudan.live/blog/tag/experiments"&gt;experiments&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>google</category>
      <category>seo</category>
      <category>experiments</category>
    </item>
    <item>
      <title>Mappls MapMyIndia vs. Google Maps: Which One's Better?</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Fri, 17 Nov 2023 09:49:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/mappls-mapmyindia-vs-google-maps-which-ones-better-38lm</link>
      <guid>https://dev.to/madhusudanlive/mappls-mapmyindia-vs-google-maps-which-ones-better-38lm</guid>
      <description>&lt;p&gt;When it comes to digital maps there are plenty of options, such as Google Maps, Mappls MapMyIndia Maps, HERE Maps, Apple Maps, and the list goes on. However, some of these have limited features, not all of them have Public APIs for developers / third-party integration, and some of them have low coverage.&lt;/p&gt;

&lt;p&gt;Out of these options, we will focus on only two navigation platforms, targeting specifically for Indian territory: Google Maps and Mappls - A swadeshi app developed by Indian couple Rakesh and Rashmi Verma.&lt;/p&gt;

&lt;p&gt;We will compare these apps from both perspectives, whether you are an end-user looking for a better navigation app within India or a developer looking to integrate the navigation suite into your application.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/google-maps-vs-mappls-by-mapmyindia#google-maps-vs-mappls"&gt;Google Maps VS Mappls&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Mappls and Google Maps are the most popular and feature-rich navigation platforms. While both apps offer similar features such as turn-by-turn navigation, voice commands, voice assistance, street view, 360-degree view or 3d view, photos, reviews, etc, there are some major differences as well, we will cover these differences one by one.&lt;/p&gt;

&lt;p&gt;Although both apps share many common features, Mappls has surely its advantages over Google Maps. As Mappls is specifically tailored for India and surrounding regions, it is focusing on India primarily, so we can expect it to have a greater accuracy and in-depth knowledge of India and surrounding regions.&lt;/p&gt;

&lt;p&gt;Even for some Government-related activities, Mappls was always the first choice. Mappls has dedicated support for events such as the G20 Summit, Fit India, Swachh Bharat, UP International Trade Show, Moto GP Racing event, and many more. Surely this proves the point that Mappls is made for India, and the continuous development to incorporate these changes makes Mappls a better choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  History
&lt;/h2&gt;

&lt;p&gt;Google Maps was launched in 2005, 18 years ago, whereas Mappls is a swadeshi app, developed by MapMyIndia in 1995, nearly 28 years ago. Both of these apps have a huge user base and growing rapidly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coverage
&lt;/h2&gt;

&lt;p&gt;Coverage area is one of the important points. Mappls by MapMyIndia as the name suggests has maps of India and surrounding regions, while Google Maps has more comprehensive coverage of the entire world.&lt;/p&gt;

&lt;p&gt;Both the maps provide good coverage, but when it comes to rural areas, Google Maps takes first place, it provides good coverage and detailed maps of rural areas, whereas Mappls shows only blanks for the same area.&lt;/p&gt;

&lt;p&gt;Also, there are a few incidents where some roads exist in reality but don't show on the Mappls app so need to take a longer route, although these cases are rare and continuous improvement is going on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accuracy
&lt;/h2&gt;

&lt;p&gt;While comparing these navigation systems, it's crucial to consider the location accuracy, Google Maps specifies the location accuracy up to around 20 meters, however, there is no mention of location accuracy for Mappls.&lt;/p&gt;

&lt;p&gt;Workmate, another app by MapMyIndia has similar functions and has a location accuracy of 20 meters, so we can infer the same level of accuracy for Mappls (as searching 'location accuracy' on Mappls takes to this page).&lt;/p&gt;

&lt;p&gt;However, there are certain areas where Mappls outperforms, especially in cities, Mappls shows very precise details, even the house numbers. In contrast, Google Maps shows comparatively fewer details, meaning that if you're primarily using maps for navigation within India, MapMyIndia can be a far better option.&lt;/p&gt;

&lt;p&gt;Mappls provides you Mappls pin, which is your digital address for precisely pointing to a particular location, Google Maps also offers the same thing called plus codes, they work similarly to street addresses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Navigation Features
&lt;/h2&gt;

&lt;p&gt;Both applications have excellent navigation features such as real-time traffic updates, alternate routes, voice-guided directions, 3D maps, and road conditions. But when it comes to Mappls, it even shows the speed breakers, weather, Air Quality Index (AQI), speed limits, potholes, water logging, junction view/flyovers, estimated fuel and EV Charging costs, 3D metaverse and real-view imagery, these features make the navigation a lot easier.&lt;/p&gt;

&lt;p&gt;Moreover, Mappls comes with support for additional hardware as well, these are called Mappls gadgets. This includes Smart Helmets, Vehicle dash cameras, Advanced plug-and-play Trackers, in-dash navitainment systems, and many more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local Knowledge
&lt;/h2&gt;

&lt;p&gt;In February 2021, Mappls partnered with ISRO to offer India’s best, and entirely indigenous, mapping system and geospatial services. By combining the power of MapmyIndia’s digital mapping technologies with ISRO’s catalog of satellite imagery and earth observation data. the end user would benefit from ISRO’s huge catalog of satellite imagery and earth observation data.&lt;/p&gt;

&lt;p&gt;Consequently, the apps and services would be a much better, more detailed, and comprehensive, as well as privacy-centric, hyper-local local and indigenous mapping solution tailored for Indian users.&lt;/p&gt;

&lt;p&gt;While both the apps share great similarities in these criteria, as discussed earlier, Mappls shows exceptional details of a city locality, up to house no. Recently, at the time of Independence Day, Mappls started &lt;em&gt;‘Har Ghar Tiranga’&lt;/em&gt; &amp;amp; &lt;em&gt;‘Meri Maati Mera Desh’&lt;/em&gt; where the houses were marked with an Indian flag if there was a flag on the house physically.&lt;/p&gt;

&lt;p&gt;Moreover, for some official events happening in India, Mappls is the first place where authentic information is provided, such as G20 summits detailed information is available on Mappls.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D0Fx_NLk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/Mappls/Mappls.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D0Fx_NLk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/Mappls/Mappls.avif" alt="Screenshot: Mappls MapMyIndia showing options related to G20 Summit held in Delhi" title="G20 summit" width="800" height="1713"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;G20 summit&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u5S9mu3E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/Mappls/Mappls-ambulance-assistance.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u5S9mu3E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/Mappls/Mappls-ambulance-assistance.png" alt="Screenshot: Mappls MapMyIndia showing ambulance assistance related options" title="G20 summit-related options" width="800" height="1066"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;G20 summit-related options&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qOZBNkZE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/Mappls/Mappls-medical-emergency.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qOZBNkZE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/Mappls/Mappls-medical-emergency.png" alt="Screenshot: Mappls MapMyIndia showing medical emergency vehicle assistance teams related options" title="G20 summit-related options" width="800" height="1066"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;G20 summit-related options&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;To improve the local knowledge and add/verify area-specific details, both of these have provisions for the same, Google Maps calls it a local guide and Mappls has local leaders. These people verify the details of places, incidents, and events happening in that particular area.&lt;/p&gt;

&lt;p&gt;Mappls app is suggested for use by government bodies as well, see the &lt;a href="https://twitter.com/_rohanverma/status/1704697687579177223/photo/2"&gt;tweet from CEO Rohan Verma&lt;/a&gt;. This underlines the platform's reliability and utility in official contexts.&lt;/p&gt;
&lt;h2&gt;
  
  
  Privacy and Data Security
&lt;/h2&gt;

&lt;p&gt;If you have concerns about data privacy, rest assured that both maps offer incognito mode for web usage. In the case of mobile applications, you can use certain map features without the need to log in, ensuring your privacy.&lt;/p&gt;

&lt;p&gt;However, it's worth noting that Mappls goes a step further by exclusively storing all data on Indian servers. This approach ensures that your data remains within our country, enhancing data privacy and security.&lt;/p&gt;
&lt;h2&gt;
  
  
  Developer’s Perspective and Third-Party Integration
&lt;/h2&gt;

&lt;p&gt;Let's discuss which navigation suite provides the better developer experience, along with the features, prices, cost, and support.&lt;/p&gt;

&lt;p&gt;Google Maps has gained popularity in the market as well as the developer community, many apps use Google Maps services for their operation, but on the other hand, Mappls is being used by various automobile brands, government organizations, financial institutions, etc.&lt;/p&gt;
&lt;h3&gt;
  
  
  Apps using Google Maps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Uber: Uber uses Google map to show driver location, select pick-up and drop-off locations, provide directions, and display the traffic conditions&lt;/li&gt;
&lt;li&gt;OLA: Similar to Uber, OLA uses Google Maps for selecting pickup, and drop-off locations and for navigation purposes&lt;/li&gt;
&lt;li&gt;Zomato: Zomato uses Google Maps for navigation, route optimizations, and estimating ETA for delivery partners&lt;/li&gt;
&lt;li&gt;OYO Rooms: OYO uses Google Maps to point the hotels on maps&lt;/li&gt;
&lt;li&gt;Practo: Practo also uses Google Maps to show doctors, clinics laboratories, and hospitals on the map&lt;/li&gt;
&lt;li&gt;Paytm, Flipkart, and many other apps use Google Maps&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Apps using Mappls by MapMyIndia
&lt;/h3&gt;

&lt;p&gt;Mappls is growing in India rapidly, there are so many companies and brands using Mappls for various purposes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PhonePe: PhonePe uses Mappls to show addresses/locations of nearby stores&lt;/li&gt;
&lt;li&gt;Amazon Alexa: Alexa uses Mappls to assist users with queries related to navigation&lt;/li&gt;
&lt;li&gt;PayTM: Paytm uses Mappls’ &lt;code&gt;Reverse GeoCoding API&lt;/code&gt; to set delivery locations&lt;/li&gt;
&lt;li&gt;MG Motors: MG Motors has Mappls Maps installed in their infotainment system for Navigation, offline maps are also preloaded&lt;/li&gt;
&lt;li&gt;MacDonalds: Similar to Paytm, MacDonald’s also uses &lt;code&gt;Reverse Geocode API&lt;/code&gt; for pinpoint delivery location&lt;/li&gt;
&lt;li&gt;Bajaj Auto: Bajaj Uses Mappls Maps for locating nearby EV stations, storing trip histories&lt;/li&gt;
&lt;li&gt;ULIP: The government of India’s Unified Logistics Interface Platform (ULIP) uses Mappls&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Cost and Pricing
&lt;/h3&gt;

&lt;p&gt;Google Maps offers 28,500 map loads every month for free, after that there are charges per API usage, for more info see &lt;a href="https://mapsplatform.google.com/pricing/"&gt;Google Maps Pricing&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/blog/google-maps-vs-mappls-by-mapmyindia#updates-and-support"&gt;Updates and Support&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;For Google Maps, there are 65,905 questions tagged on &lt;a href="https://stackoverflow.com/questions/tagged/google-maps"&gt;Stackoverflow&lt;/a&gt;, and for Mappls there are only &lt;a href="https://stackoverflow.com/questions/tagged/mapmyindia-api"&gt;39 questions&lt;/a&gt; at the time of writing this article. So, developer community support for Mappls is very low.&lt;/p&gt;

&lt;p&gt;Although both the maps provide various SDKs, Google Maps has JavaScript APIs even with TypeScript support but on the other hand, Mappls has only a CDN and not even an NPM package, typescript support is far away.&lt;/p&gt;
&lt;h3&gt;
  
  
  Comparision
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Google Maps&lt;/th&gt;
&lt;th&gt;Mappls ( MapMyIndia)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Coverage&lt;/td&gt;
&lt;td&gt;Google Maps is available in over 256 countries worldwide countries&lt;/td&gt;
&lt;td&gt;Mappls is available for 231 countries &amp;amp; territories across the world.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Location Accuracy&lt;/td&gt;
&lt;td&gt;Generally more accurate, especially outside of India&lt;/td&gt;
&lt;td&gt;Better in india, somewhat les accurate outside india&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Features&lt;/td&gt;
&lt;td&gt;real-time traffic updates, alternate routes, voice-guided directions, 360-degree view or 3d view, photos, reviews, street-view, plus codes for address&lt;/td&gt;
&lt;td&gt;real-time traffic updates, alternate routes, voice-guided directions, 3D maps, road conditions, speed breakers, weather, Air Quality Index (AQI), speed limits, potholes, water logging, junction view/flyovers, estimated fuel/Charging costs, 3D metaverse, real-view imagery, NAVIC support, Mappls ID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Offline Usage&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API Prices&lt;/td&gt;
&lt;td&gt;Google Maps offers 28,500 map loads every month for free, after that there are charges per API usage&lt;/td&gt;
&lt;td&gt;Freemium, usually costs around 30% lesser than other competitors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  TL;DR
&lt;/h3&gt;



&lt;p&gt;Thanks for reading this Article! Here is a quick recap of Mappls MapMyIdia.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/web-stories/mappls-navigation-features"&gt;Mappls MapMyIndia Recap&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Google Maps and Mappls are very good options for navigation suites for end users as well as developers for integrating these services/APIs into their apps. However, Mappls is a Swadeshi app and is growing rapidly, so looking at all the pros and cons, I would say, that Mappls is better than Google Maps for Indian users, Mappls is continuously adding new features and improving the user experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide"&gt;Basic Electronic Components with Functions &amp;amp; Working: PDF&lt;/a&gt;, &lt;a href="https://madhusudan.live/blog/ethical-hacking-for-absolute-beginners"&gt;Ethical Hacking For Absolute Beginners: Expert Guide in 2023&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keywords:&lt;br&gt;
&lt;a href="https://madhusudan.live/tag/comparison"&gt;comparison&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>comparison</category>
    </item>
    <item>
      <title>Ethical Hacking For Absolute Beginners: Expert Guide in 2023</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Fri, 10 Nov 2023 01:20:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/ethical-hacking-for-absolute-beginners-expert-guide-in-2023-oi0</link>
      <guid>https://dev.to/madhusudanlive/ethical-hacking-for-absolute-beginners-expert-guide-in-2023-oi0</guid>
      <description>&lt;p&gt;Who doesn't want to be a hacker? We all are so fascinated by the term hacking, isn't it? so let's talk about ethical hacking. it's like being a digital detective in today's super-connected world.&lt;/p&gt;

&lt;p&gt;Everything, from our mobile phones to smart TVs, is connected to the internet, making our lives easier but at the same time, riskier too!&lt;/p&gt;

&lt;p&gt;But, as they say, "With great power comes great responsibility." Messing up in this digital playground can be a real headache. It might mean losing your hard-earned cash, getting into trouble you didn't ask for, or even facing some serious privacy invasions.&lt;/p&gt;

&lt;p&gt;That's why being a cybersecurity pro is so important. It's like having a digital shield that defends us against the bad guys, keeps our info safe, and helps make the online world a better place. So let's start learning the cybersecurity, I will help you get started with the easiest possible way!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Ethical Hacking?
&lt;/h2&gt;

&lt;p&gt;Ethical Hacking is an act of finding the loopholes, vulnerabilities, to attempt to gain unauthorized access to a system, application, or a device in an authorized manner. In simple words, it's about hacking the systems with permission of the owner.&lt;/p&gt;

&lt;p&gt;This is done to test the security of systems and fix the vulnerabilities to prevent any possible attacks that may happen in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fields in Ethical Hacking
&lt;/h2&gt;

&lt;p&gt;The realm of ethical hacking and cybersecurity is vast and includes specialized fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Digital Forensics&lt;/li&gt;
&lt;li&gt;Reverse Engineering&lt;/li&gt;
&lt;li&gt;Binary Exploitation&lt;/li&gt;
&lt;li&gt;Website Hacking&lt;/li&gt;
&lt;li&gt;Penetration Testing&lt;/li&gt;
&lt;li&gt;Cryptography&lt;/li&gt;
&lt;li&gt;Steganography&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To begin your journey, grasp the basics of Linux (operating systems, file systems), command-line interface (CLI), a programming language (preferably Python or any other scripting language), ciphers, and cryptography.&lt;/p&gt;

&lt;p&gt;This beginners guide breaks down each topic in cybersecurity / ethical hacking, providing resource links for self-learning and hands-on practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Digital forensics
&lt;/h2&gt;

&lt;p&gt;Digital forensics involves recovering, analyzing, and examining digital device contents, such as mobile phones, hard disks, and memory cards. It plays a vital role in criminal investigations, providing essential evidence for court proceedings.&lt;/p&gt;

&lt;p&gt;Digital forensics plays an important role in investing criminal cases and nowadays has become a crucial part of criminal investigation. The devices found at the crime scene are transferred to the digital forensics department for recovering the data, this information is vital for the court proceedings and is used as evidence. These pieces of evidence are crucial for investigations.&lt;/p&gt;

&lt;p&gt;A career in digital forensics offers lucrative job opportunities, with salaries ranging from 5L to 20L minimum in India. To excel in this field, you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Attention to detail&lt;/li&gt;
&lt;li&gt;in-depth knowledge of computer hardware/software&lt;/li&gt;
&lt;li&gt;Knowledge of various technologies&lt;/li&gt;
&lt;li&gt;Networking concepts&lt;/li&gt;
&lt;li&gt;Cyber-security concepts&lt;/li&gt;
&lt;li&gt;Ready to learn new tools/skills&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;for practice refer this &lt;a href="https://dev.to/blog/secarmy-ctf-2-0#forensics"&gt;article&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reverse Engineering
&lt;/h2&gt;

&lt;p&gt;Reverse engineering is a process of understanding how a device or a system is constructed by means of software as well as hardware. It is a way of identifying the internals of a system and backtracking to recreate it, by analyzing its processes or flow. It’s also known as backward engineering or back engineering. Furthermore, it enables us to find out how a system or a particular device works so that we can create an updated or improved version of it, use our own system to fill the necessary gaps or create a modified system with the functionality to work for our intended task.&lt;/p&gt;

&lt;p&gt;In the cyber-security world, reverse engineering is used to analyze malware or viruses and to find out how they work. It is often used to create the tools to patch the damage caused by the malware or neutralize the malware. It’s also used to find vulnerabilities in software/apps.&lt;/p&gt;

&lt;p&gt;Proficiency in reverse engineering requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proficiency with debugging tools&lt;/li&gt;
&lt;li&gt;Understanding of Operating systems, CPU architecture and platforms&lt;/li&gt;
&lt;li&gt;Familiarity of tools like hex editors, disassemblers, debuggers and compilers&lt;/li&gt;
&lt;li&gt;Programming language as well as understanding of assembly language is a must&lt;/li&gt;
&lt;li&gt;Understanding of executable file formats, their basics&lt;/li&gt;
&lt;li&gt;concepts like obfuscation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Binary Exploitation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tyxi2QoP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/secarmy/binary.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tyxi2QoP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/secarmy/binary.png" alt="Screenshot of a disassembled binary" title="binary exploitation" width="755" height="656"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;binary exploitation&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Binary exploitation is an act of using the security loopholes/vulnerabilities in a software or system to manipulate the software to perform unauthorized actions or that are not normally allowed for the specific user/role. Binary exploitation is used to manipulate the software to perform actions it was not designed to do. These loopholes are used to take control of the system and acquire the shell/perform unauthorized activities.&lt;/p&gt;

&lt;p&gt;Mastery of binary exploitation requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Familiarity with Linux operating systems and command-line interfaces&lt;/li&gt;
&lt;li&gt;Understanding of Programs/Softwares, Operating systems&lt;/li&gt;
&lt;li&gt;Understanding of CPU Registers, CPU architecture&lt;/li&gt;
&lt;li&gt;Knowledge of a scripting language or C&lt;/li&gt;
&lt;li&gt;Understanding of tools like hex dump, hex editors, file command, strings command&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Website hacking
&lt;/h2&gt;

&lt;p&gt;Website hacking is an act of manipulating or accessing the contents of a website in an unauthorized manner. Website hacking is used to access credentials, and sensitive information of a website and its users, or to stop/block its services of it. It also involves changing the contents of the website and acting on behalf of the users.&lt;/p&gt;

&lt;p&gt;Website hacking is commonly done by XSS or cross-site scripting, SQL Injection, Brute Force attacks, Hacking admin panels, Dictionary attacks, Denial of service attacks and more.&lt;/p&gt;

&lt;p&gt;For website hacking, the following skills are essential.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding of web technologies&lt;/li&gt;
&lt;li&gt;Knowledge of various databases and their types&lt;/li&gt;
&lt;li&gt;Proficiency in Linux CLI&lt;/li&gt;
&lt;li&gt;Social Engineering skills&lt;/li&gt;
&lt;li&gt;Scripting language knowledge&lt;/li&gt;
&lt;li&gt;Networking concepts&lt;/li&gt;
&lt;li&gt;HTTP verbs (GET, POST, PUT, DELETE)&lt;/li&gt;
&lt;li&gt;Web servers&lt;/li&gt;
&lt;li&gt;TCP/UPD protocols, ports&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Penetration testing
&lt;/h2&gt;

&lt;p&gt;Penetration testing are the activities performed to find out the security vulnerabilities in software/systems and exploit them, penetration testing is performed by ethical hackers and these are authorized cyberattacks on the system to find out the weak points in the system to prevent the loss that may happen by the actual attacks, it is also called as pentest in short.&lt;/p&gt;

&lt;p&gt;Penetration testing is useful for assessing the security of an organization, penetration testers use the same tools, techniques and processes as that of an attacker, thus to find out the weaknesses in the system, and performing pen tests helps reduce the risk of data breach from exploiting these vulnerabilities and validate system security.&lt;/p&gt;

&lt;p&gt;To excel in this field, you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Networking skills&lt;/li&gt;
&lt;li&gt;Proficiency in Linux and CLI&lt;/li&gt;
&lt;li&gt;Knowledge of wireless networks&lt;/li&gt;
&lt;li&gt;Understanding of system administration&lt;/li&gt;
&lt;li&gt;Familiarity with network services, protocols, and types&lt;/li&gt;
&lt;li&gt;Knowledge of Active Directory&lt;/li&gt;
&lt;li&gt;Strong Attention to detail&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Cryptography
&lt;/h2&gt;

&lt;p&gt;Cryptography is the branch of cyber-security that deals with hiding or converting information so that no unauthorized person can read it. It is a way of securing sensitive information using a set of mathematical rules, and formulae to convert the information in a format that only the intended receiver can retrieve the original contents of the information.&lt;/p&gt;

&lt;p&gt;Cryptography is used while storing and transmitting information in a secure communication system, so that no third party, unauthorized user can read the original information, only the receiver with the particular secret key can process the information and retrieve it back.&lt;/p&gt;

&lt;p&gt;You need to have following skills to master the cryptography&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Strong mathematical skills&lt;/li&gt;
&lt;li&gt;Knolwedge of any programming language, python preferred&lt;/li&gt;
&lt;li&gt;Number Theory and Number Systems (binary, octal, decimal, hexadecimal)&lt;/li&gt;
&lt;li&gt;Understanding of Encryption standards&lt;/li&gt;
&lt;li&gt;Ready to learn tools and write own decryption algorithms&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Steganography
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kotLfYPm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/secarmy/steganography.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kotLfYPm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/secarmy/steganography.png" alt="a meme on image steganography" title="image steganography" width="500" height="626"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;image steganography&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Steganography is a set of techniques used to hide the secret data inside the general non-secret files. the information is hidden in images, audio, video files, these files works normally so one cannot detect that there's something inside these files normally.&lt;/p&gt;

&lt;p&gt;Steganograhy is generally performed on image files, zip files, pdf files, audio/video files.&lt;/p&gt;
&lt;h2&gt;
  
  
  Additional resources
&lt;/h2&gt;

&lt;p&gt;Well, I have something more for you, excited? grab these hand picked tools and prepare yourself to fight the evil in this digital world.&lt;/p&gt;
&lt;h2&gt;
  
  
  Digital forensics Tools
&lt;/h2&gt;

&lt;p&gt;For digital forensics, you need to investigate the given media files/images and retrieve the important information from that, there are various tools to get started with digital forensics, many of them are free and if you are using kali linux they will come preinstalled.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hexedit&lt;/li&gt;
&lt;li&gt;Hexdump&lt;/li&gt;
&lt;li&gt;Wireshark&lt;/li&gt;
&lt;li&gt;NMAP&lt;/li&gt;
&lt;li&gt;TCPdump&lt;/li&gt;
&lt;li&gt;Aircrack-ng&lt;/li&gt;
&lt;li&gt;Netcat&lt;/li&gt;
&lt;li&gt;Maltego&lt;/li&gt;
&lt;li&gt;Digital forensics framework&lt;/li&gt;
&lt;li&gt;Forensic toolkit&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Reverse Engineering Tools
&lt;/h2&gt;

&lt;p&gt;There are many tools for reverse engineering, some provides GUI and rest are based on CLI&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ghidra&lt;/li&gt;
&lt;li&gt;IDA Pro&lt;/li&gt;
&lt;li&gt;radare&lt;/li&gt;
&lt;li&gt;objdump&lt;/li&gt;
&lt;li&gt;objconv&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Binary Exploitation Tools
&lt;/h2&gt;

&lt;p&gt;For binary exploitation, the above listed tools are also useful&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;objdump&lt;/li&gt;
&lt;li&gt;Immunity Debugger&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Steganography Tools
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;zsteg&lt;/li&gt;
&lt;li&gt;steghide&lt;/li&gt;
&lt;li&gt;OutGuess&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Esoteric languages (esolang)
&lt;/h2&gt;

&lt;p&gt;Esoteric languages are programming languages used to confuse, entertain the reader, these languages are meant to test the boundaries of programming language design, but these languages are often used in cybersecurity wargames, CTFs, so having familarity with esoteric languages is always good, it can even used to communicate secretly.&lt;/p&gt;

&lt;p&gt;You can find this &lt;a href="https://esolangs.org/wiki/Joke_language_list"&gt;article&lt;/a&gt; for complete list, but here are the few ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;moo language&lt;/li&gt;
&lt;li&gt;brainfuck&lt;/li&gt;
&lt;li&gt;Ook&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Terms used in this article
&lt;/h2&gt;

&lt;dl&gt;
  
    &lt;dt&gt;CTF&lt;/dt&gt;
    &lt;dd&gt;Capture The Flag, CTFs are the cybersecurity competitions that are used to challenge the participants on various concepts in cybersecurity&lt;/dd&gt;
  
  
    &lt;dt&gt;CLI&lt;/dt&gt;
    &lt;dd&gt;CLI is an abbreivation for Command Line Interface, a CLI tool uses the terminal on your system to interact, perform actions, unlike standard apps with user interface&lt;/dd&gt;
  
  
    &lt;dt&gt;GUI&lt;/dt&gt;
    &lt;dd&gt;GUI is an abbreviation for Graphical User Interface, software apps come with various interfaces, some are CLI based while some provides beautiful experiences to interact with, that is called GUI&lt;/dd&gt;
  
  
    &lt;dt&gt;CIA&lt;/dt&gt;
    &lt;dd&gt;CIA or CIA Triad is abbreviation for Confidentiality, Integrity and Availability&lt;/dd&gt;
  
&lt;/dl&gt;
&lt;h2&gt;
  
  
  Platforms to practice
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;XSS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://xss-game.appspot.com/"&gt;XSS Game&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://alf.nu/alert1?world=alert&amp;amp;level=alert0"&gt;Alert 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://prompt.ml/0"&gt;Prompt 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Others&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/blog/secarmy-ctf-2-0"&gt;Secarmy CTF Writeup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hackthissite.org/"&gt;Hack This Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://owasp.org/www-project-webgoat/"&gt;OWASP WebGoat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vulnweb.com/"&gt;Vuln Web&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://overthewire.org/wargames/"&gt;OverTheWire&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hackthebox.com/hacker"&gt;HackTheBox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tryhackme.com/games/koth"&gt;TryHackMe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://overthewire.org/wargames/bandit/"&gt;OverTheWire: Bandit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ctftime.org/"&gt;CTF Time&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this ever-evolving technology landscape, the importance of cybersecurity cannot be neglected. the cybersecurity is a vast field and one needs to have patience and practise to master it.&lt;/p&gt;

&lt;p&gt;Participating in CTFs, Practising on the sites I listed above can be a good start for your career in ethical hacking, I personally have played a lot of CTFs and it's a great way to grasp these concepts in ethical hacking.&lt;/p&gt;

&lt;p&gt;As we explored different fields in Ethical Hacking, I hope you liked this articles and may help you understand at least some extent about what ethical hacking is and how can you get started as a beginner.&lt;/p&gt;

&lt;p&gt;The tools and resources I provided may come to your rescue in your journey in this ever evolving field. wishing you all the best - krypton!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/blog/google-maps-vs-mappls-by-mapmyindia"&gt;Mappls MapMyIndia vs. Google Maps: Which One's Better?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/blog/electronic-data-interchange-examples-process-flow"&gt;EDI Electronic Data Interchange Basics, Examples, Benefits PDF&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keywords:&lt;br&gt;
&lt;a href="https://madhusudan.live/tag/cybersecurity"&gt;cybersecurity&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/ctf"&gt;ctf&lt;/a&gt;&lt;a href="https://madhusudan.live/tag/hacking"&gt;hacking&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/linux"&gt;linux&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>ctf</category>
      <category>hacking</category>
      <category>linux</category>
    </item>
    <item>
      <title>EDI Electronic Data Interchange Basics, Examples, Benefits PDF</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Wed, 08 Nov 2023 13:58:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/edi-electronic-data-interchange-basics-examples-benefits-pdf-111h</link>
      <guid>https://dev.to/madhusudanlive/edi-electronic-data-interchange-basics-examples-benefits-pdf-111h</guid>
      <description>&lt;p&gt;As a developer in EDI technology, here are the insights that I learned over these years. These insights will help you get started with the electronic data interchange.&lt;/p&gt;

&lt;p&gt;When I started with EDI, the articles/content I referred to was a bit complex and not at all beginner-friendly, I learned it the hard way but I'm sharing these learnings my hand-curated notes about EDI technology with you in very simple language.&lt;/p&gt;

&lt;p&gt;I'll cover each topic in brief and will provide necessary examples, I struggled a lot to grasp these things but I'm gonna make sure you will get it with ease, and yes, I'll give you proper examples, PDF notes to help you understand better, and &lt;a href="https://madhusudan.live/web-stories/introduction-to-electronic-data-interchange-edi"&gt;here's a quick summary of Electronic Data Interchange (EDI)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So without further ado, let's start learning the basics of EDI, how it's important, where it's used and what the most important concepts are there. let's begin our journey in the world of electronic data interchange.&lt;/p&gt;

&lt;h2&gt;
  
  
  EDI Basics
&lt;/h2&gt;

&lt;p&gt;Let's start with the definition first, what EDI is, and what it stands for.&lt;/p&gt;

&lt;p&gt;EDI stands for Electronic Data Interchange, is a process of &lt;strong&gt;exchanging information from one company to other company electronically&lt;/strong&gt; , without using paper documents. Mainly used in supply chain management or e-commerce to handle transactions effectively and easily.&lt;/p&gt;

&lt;p&gt;EDI is completely based on computer system, the data interchange happens over the network, using standard electronic format to communicate the data / information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Benefits of Electronic Data Interchange
&lt;/h2&gt;

&lt;p&gt;EDI has so many benefits over the traditional paper documents approach, let's see the benefits first:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;These processes work without human intervention.&lt;/li&gt;
&lt;li&gt;EDI is fast, efficient, and can be automated which also reduces errors.&lt;/li&gt;
&lt;li&gt;It is cost-efficient.&lt;/li&gt;
&lt;li&gt;EDI Can Increase Sales.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OlzQWbUQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/order-processing-with-and-without-edi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OlzQWbUQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/order-processing-with-and-without-edi.png" alt="(Source: Google) Processing with and without EDI" title="(Source: Google) Processing with and without EDI" width="800" height="442"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Source: Google) Processing with and without EDI&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Difference between EDI &amp;amp; Paper-based Transactions
&lt;/h2&gt;

&lt;p&gt;Okay, but how does traditional approaches work? You might ask me.&lt;/p&gt;

&lt;p&gt;here's a quick comparison between the traditional approach (without EDI) and with EDI.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Traditional methods require a lengthy and time-consuming process which is difficult to manage, has several drawbacks and has a cumbersome structure.&lt;/li&gt;
&lt;li&gt;The traditional methods take too long to process, it can be as long as 3 to 5 days.&lt;/li&gt;
&lt;li&gt;Traditional methods require a lot of human intervention, so there are chances of data manipulation. Also, the operation does not occur in real time.&lt;/li&gt;
&lt;li&gt;Whereas, EDI is time-saving and normally occurs overnight and can take less than an hour.&lt;/li&gt;
&lt;li&gt;EDI is fast, secure, and reliable as it doesn’t need human intervention and updates within very few minutes, we can say near real-time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, I hope you have understood the importance and benefits of EDI, now see where EDI is applicable.&lt;/p&gt;

&lt;p&gt;Let's discuss what kinds of business categories can benefit from the EDI technology.&lt;/p&gt;
&lt;h2&gt;
  
  
  Applications in E-Commerce Business
&lt;/h2&gt;

&lt;p&gt;Typically, there are two categories of a business:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B2C, i.e., Business to Customer:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;EDI has less exposure to this Business type as the data or the processing can be comparatively smaller and done easily without the need to have the EDI tools.&lt;/p&gt;

&lt;p&gt;An example would be (DMart to Customer)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B2B, i.e., Business to Business:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;B2B has a great EDI exposure as the data needs to reflect both parties (Businesses). Also, there is slightly higher complexity and thus processing is not easier, hence we use EDI tools.&lt;/p&gt;

&lt;p&gt;For example, DMart to Maggie.&lt;/p&gt;
&lt;h2&gt;
  
  
  EDI Standards
&lt;/h2&gt;

&lt;p&gt;EDI standards define the structure and format of electronic documents exchanged between trading partners. They ensure that the data is consistent and can be interpreted correctly by both parties.&lt;/p&gt;

&lt;p&gt;There are several EDI standards used for electronic data interchange. Here are some commonly used standards:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ANSI (American National Standards Institute):&lt;/strong&gt; ANSI is a non-profit organization in the United States that governs a set of rules or standards for products, services, systems, or personnel.&lt;/p&gt;

&lt;p&gt;Example: If the driver forgot to wear a seat belt, then give a beep sound as an alarm. An example could be if you are driving a car the speed exceeds the limit of 120KMPH then it starts beeping.&lt;/p&gt;

&lt;p&gt;The ANSI-specified formats for EDI include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;X12 transaction sets: Widely used in the United States and globally.&lt;/li&gt;
&lt;li&gt;EDIFACT: Mainly used in European countries, but can also be found globally in rare instances.&lt;/li&gt;
&lt;li&gt;Excel, CSV, JSON, IDOC: Other file formats that can be used for EDI.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Communication Modes / Protocols
&lt;/h2&gt;

&lt;p&gt;To exchange EDI documents, various communication protocols can be used. Some common communication modes/protocols include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;AS2:&lt;/strong&gt; Applicability Statement 2 is a widely used protocol for secure data transmission over the Internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FTP (File Transfer Protocol):&lt;/strong&gt; A standard network protocol used to transfer files between a client and a server on a computer network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SFTP (SSH File Transfer Protocol):&lt;/strong&gt; A secure version of FTP that uses SSH to encrypt data during transmission.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP (Hypertext Transfer Protocol):&lt;/strong&gt; A protocol used for transmitting hypertext over the internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTPS (HTTP Secure):&lt;/strong&gt; An extension of HTTP that provides secure communication over a computer network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ROSET TANET:&lt;/strong&gt; A proprietary communication protocol used for EDI exchange.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Calls:&lt;/strong&gt; Application Programming Interface (API) calls can be used to exchange data between systems.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These communication protocols ensure the secure and reliable transmission of EDI documents between trading partners.&lt;/p&gt;

&lt;p&gt;In summary, EDI standards define the structure and format of electronic documents, while communication modes facilitate the secure exchange of these documents between trading partners.&lt;/p&gt;
&lt;h2&gt;
  
  
  How does Eelectronic Data Interchange work?
&lt;/h2&gt;

&lt;p&gt;Let’s understand the working of EDI with an example, let’s say this is a B2B communication between DMart and Maggie. understand the flow below.&lt;/p&gt;

&lt;p&gt;DMart adds a file in FTP and Maggie will have access to the same file and Maggie will update the file with the requirements. This communication will happen over any ANSI-specified communication mode (here consider FTP), and thus both parties will have the file with the updated requirements in an instant.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tools used for EDI Transactions
&lt;/h2&gt;

&lt;p&gt;We use many tools to handle these documents, edit, manage the documents, and work with them efficiently, there are several tools available:&lt;/p&gt;
&lt;h3&gt;
  
  
  Middleware Tools
&lt;/h3&gt;

&lt;p&gt;These are used for communication purposes and are used at the front end&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sterling Integrator&lt;/li&gt;
&lt;li&gt;Seeburger&lt;/li&gt;
&lt;li&gt;Web methods&lt;/li&gt;
&lt;li&gt;Dell Boomi&lt;/li&gt;
&lt;li&gt;AxWay&lt;/li&gt;
&lt;li&gt;Customized tools (Amazon, OpenText, GXS)&lt;/li&gt;
&lt;li&gt;SAP SD (Sales and Distribution)&lt;/li&gt;
&lt;li&gt;SAP WMS (Logistics)&lt;/li&gt;
&lt;li&gt;SAP HANA&lt;/li&gt;
&lt;li&gt;ERP (Enterprise Resource Planning) ERP is used by businesses/organizations to manage key parts such as accounting, manufacturing, sales, and marketing. It is used for backend operations such as order creation. ERP is used by businesses/organizations to manage key parts such as accounting, manufacturing, sales, and marketing. It is used for backend operations such as order creation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1Dsnjr4K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-process-flow-diagram.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1Dsnjr4K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-process-flow-diagram.png" alt="(Source: Google) Process Flow Diagram" title="(Source: Google) Process Flow Diagram" width="800" height="671"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Source: Google) Process Flow Diagram&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Let’s understand this flow with the example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G4_Cb-kO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-flow-example-parle-industries.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G4_Cb-kO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-flow-example-parle-industries.png" alt="EDI flow example" title="EDI flow example" width="800" height="733"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;EDI flow example&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  EDI Messages and Their Flow
&lt;/h2&gt;

&lt;p&gt;For General Store (Customer):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Inbound Messages&lt;/th&gt;
&lt;th&gt;Outbound Messages&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;855, 856, 810&lt;/td&gt;
&lt;td&gt;850&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For Parle Industries:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Inbound Messages&lt;/th&gt;
&lt;th&gt;Outbound Messages&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;850, 945&lt;/td&gt;
&lt;td&gt;855, 856, 810, 940&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For Parle Godown:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Inbound Messages&lt;/th&gt;
&lt;th&gt;Outbound Messages&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;940&lt;/td&gt;
&lt;td&gt;856, 945&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  Difference between X12 and EDIFact
&lt;/h2&gt;

&lt;p&gt;X12 and EDIFACT have the same messages and same documents, just that their notation is different.&lt;/p&gt;

&lt;p&gt;following are the differences between X12 and EDIFACT&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;X12 messages are numeric&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: 850 (Purchase Order), 855 (Purchase Order Acknowledgement), 810 (Invoice), 940 (Warehouse Shipping Order) and many more.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;EDIFACTs are alphabetic&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: ORDER, ORDRSP ( Order Response ), DISADV ( Disadvice ), INVOIC, ORDCHG ( Order Changed)&lt;/p&gt;
&lt;h2&gt;
  
  
  Package Structure
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VPKZBFjy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-shipment-structure.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VPKZBFjy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-shipment-structure.png" alt="EDI Shipment Structure" title="EDI Shipment Structure" width="800" height="497"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;EDI Shipment Structure&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Identifying File Formats
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;X12 File Structure -&lt;/strong&gt; The X12 file starts with ISA and ends with IEA.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EDIFACT File Structure -&lt;/strong&gt; The EDIFACT file starts with UNA and ends with UNZ.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IDOC File Structure -&lt;/strong&gt; IDOC files start with IDOC. These are the positional files. ERP only understands the IDOC format. So we have to convert the given file into IDOC Format.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Document Envelope Structures
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ISA/IEA - Interchange Control:&lt;/strong&gt; It shows the total number of functional groups present in the transaction set.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GS/GE - GROUP CONTROL/ FUNCTION GROUP:&lt;/strong&gt; It shows the total number of transaction sets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ST/SE - TRANSACTION:&lt;/strong&gt; It shows the total number of lines present in the transaction set.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;X12 Message&lt;/th&gt;
&lt;th&gt;GS01&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;850&lt;/td&gt;
&lt;td&gt;PO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;855&lt;/td&gt;
&lt;td&gt;PR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;856&lt;/td&gt;
&lt;td&gt;SH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;810&lt;/td&gt;
&lt;td&gt;IN&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  ISA Segment Structure
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ISA*00* _00_ *12*6194537845 *12*8997372426 *051101*0306*U*00401*100000799*0*P*&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ISA-06 -&lt;/strong&gt; In the above example, the ISA-06 field is the sender ID.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ISA-08:-&lt;/strong&gt; This field holds the receiver's ID.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ISA-12:-&lt;/strong&gt; This field holds the Interchange version number.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ISA-13:-&lt;/strong&gt; This field contains the control number used for tracking purposes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ISA-15:-&lt;/strong&gt; This field indicates whether data is for “T”(Testing) purpose or for “P”(Production) purpose or “I” (information).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Delimiters:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;★ (Star) Element/ Field Separator –&lt;/strong&gt; It separates elements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;~&lt;/strong&gt; &lt;strong&gt;(Tilde) Segment Separator –&lt;/strong&gt; It is used to separate segments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&amp;gt; Composite Element Separator -&lt;/strong&gt; It is used to make a group. It is not a field or element separator. Example:-&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mXtVKLUv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-segment-delimiters.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mXtVKLUv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-segment-delimiters.png" alt="EDI segment delimiters" title="EDI segment delimiters" width="662" height="322"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;EDI segment delimiters&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  EDI Transactions Flow
&lt;/h2&gt;

&lt;p&gt;Let's understand the EDI transactions with an example, refer the image below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g2pNW0At--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-document-exchange.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g2pNW0At--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-document-exchange.png" alt="EDI Document Exchange Flow" title="EDI Document Exchange Flow" width="762" height="552"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;EDI Document Exchange Flow&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Here the Front End converts the given document in IDOC. ERP is at the backend, which only accepts IDOC format. In X12 File Format, 997 is a Functional Acknowledgement.Whereas in EDIFACT, 997 is a Control Message i.e. it is a confirmation message. Example:- If A sends a document to B, then B will send 997 i.e. acknowledgement to A that confirms B has received the document.&lt;/p&gt;
&lt;h2&gt;
  
  
  Transaction Errors
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Syntax Error – This segment is valid only when both fields are present.&lt;/li&gt;
&lt;li&gt;Code Error – This error occurs when the code is not as per the respected version or provided version.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Acknowledgement Segments and Elements:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;**AK1*PO*1421** Segment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GS01 along with Functional group control number.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AK1 – Functional Group Response Header&lt;/li&gt;
&lt;li&gt;01 – Functional Identifier (GS01)&lt;/li&gt;
&lt;li&gt;02 – Group Control Number (GS06). It is unique.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;**AK2*850*000000010** Segment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Transaction set identifier ST01 along with transaction set control number.&lt;/p&gt;

&lt;p&gt;AK9: Functional Group Response&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;**AK9*A*000003*000003*000002** Segment&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;01 – Functional group acknowledgement. It shows the status of the transaction set, whether it is accepted or rejected. In the above segment, the transaction set is accepted.&lt;/li&gt;
&lt;li&gt;02 – Number of Transactions. In the above segment, there are 3 transaction sets.&lt;/li&gt;
&lt;li&gt;03 – Number of Received Transaction Set. In the above segment, all the 3 Transaction Sets are received.&lt;/li&gt;
&lt;li&gt;04 – Number of Accepted Transaction Set. In the above segment, only 2 Transaction Sets are accepted among 3.&lt;/li&gt;
&lt;li&gt;05 – Functional Group Syntax Error Code.&lt;/li&gt;
&lt;li&gt;06 – Functional Group Syntax Error Code.&lt;/li&gt;
&lt;li&gt;07 – Functional Group Syntax Error Code.&lt;/li&gt;
&lt;li&gt;08 – Functional Group Syntax Error Code.&lt;/li&gt;
&lt;li&gt;09 – Functional Group Syntax Error Code.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;AK1&lt;/strong&gt; and &lt;strong&gt;AK9&lt;/strong&gt; are paired and refer to the Group level.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;AK2&lt;/strong&gt; and &lt;strong&gt;AK5&lt;/strong&gt; are paired and refer to the Transaction level.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;AK3&lt;/strong&gt; and &lt;strong&gt;AK4&lt;/strong&gt; are &lt;strong&gt;not&lt;/strong&gt; paired and refer to any errors received in the Transaction being acknowledged.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Order Types
&lt;/h2&gt;

&lt;p&gt;There are several Types of Orders in EDI, StandAlone orders, Bulk orders, and Release orders are B2B orders as they may contain resellers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;StandAlone Order (SA)&lt;/strong&gt;:- When anyone places an order, and it ships the given order. For Example:- Veena is placing an order at Amazon, then it is a StandAlone order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bulk Order (BK)&lt;/strong&gt;:- When an order is placed in advance or bulk quantity. For Example:- On the occasion of Diwali reseller places an order to the manufacturer in advance telling the manufacturer the quantity of goods required of them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Release Order (RL)&lt;/strong&gt;:- This releases some quantity of order in reserved order. For Example:- If Aptronix (Reseller for Apple) placed a bulk order to Apple (Manufacturer or sender) and if Aptronix ordered some quantity of iPhones now, then this type of order is used to order some quantity of phones in bulk order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drop-ship Order (DP/ D)&lt;/strong&gt;:- It is a Direct Customer Order. For Example:- Ordering a Realme phone from the Realme website directly. It doesn’t contain any 3rd person or reseller.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SDQ Order&lt;/strong&gt; :- It is used to place orders at once for multiple locations. For Example:- SQD order segment P01 contains Item Details such as, example: &lt;code&gt;SDQ*001*10*002*8*003*13*004*2~&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consider the corelation between the following table, it states that for &lt;strong&gt;store 001&lt;/strong&gt; , the &lt;strong&gt;No. of Quantities required&lt;/strong&gt; are 10&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;For Store&lt;/th&gt;
&lt;th&gt;quantities required&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;001&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;002&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;003&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;004&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;In CTT –&lt;/strong&gt; This tells that while shipping, use the carrier mentioned in CTT. For example:- UPS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  PO (850) Segment
&lt;/h3&gt;

&lt;p&gt;Following is the Structure breakdown of 850 i.e. Purhcase Order Segment&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TKuI9a__--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-850-segment-structure.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TKuI9a__--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/edi/edi-850-segment-structure.png" alt="850 segment structure" title="850 segment structure" width="800" height="262"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;850 segment structure&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Hierarchical Level
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;HL ~ 1 ~ 0 ~ S&lt;/li&gt;
&lt;li&gt;HL ~ 2 ~ 1 ~ O&lt;/li&gt;
&lt;li&gt;HL ~ 3 ~ 2 ~ P&lt;/li&gt;
&lt;li&gt;HL ~ 4 ~ 3 ~ I&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;HL 01 - Sequence no of HL segment&lt;/li&gt;
&lt;li&gt;HL 02 - Parent HL sequence ID&lt;/li&gt;
&lt;li&gt;HL 03 - HL type (Packing type)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  HL Structures
&lt;/h3&gt;

&lt;p&gt;S - Shipment level&lt;/p&gt;

&lt;p&gt;O - Order level&lt;/p&gt;

&lt;p&gt;P - Pack/Carton level&lt;/p&gt;

&lt;p&gt;I - Item Level&lt;/p&gt;
&lt;h3&gt;
  
  
  SOI Structure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;S - Shipment level&lt;/li&gt;
&lt;li&gt;O - Order level&lt;/li&gt;
&lt;li&gt;I - Item Level&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  SOTPI Structure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;S - Shipment level&lt;/li&gt;
&lt;li&gt;O - Order level&lt;/li&gt;
&lt;li&gt;T - Tare/Pallet level&lt;/li&gt;
&lt;li&gt;P - Pack/Carton level&lt;/li&gt;
&lt;li&gt;I - Item Level&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where ACK is Item acknowledgement&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;X12 Message&lt;/th&gt;
&lt;th&gt;Beginning Segment&lt;/th&gt;
&lt;th&gt;First Field/Element&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;850&lt;/td&gt;
&lt;td&gt;BEG&lt;/td&gt;
&lt;td&gt;PO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;856&lt;/td&gt;
&lt;td&gt;BSN&lt;/td&gt;
&lt;td&gt;SH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;855&lt;/td&gt;
&lt;td&gt;BAK&lt;/td&gt;
&lt;td&gt;PR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;810&lt;/td&gt;
&lt;td&gt;BIG&lt;/td&gt;
&lt;td&gt;IN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;997&lt;/td&gt;
&lt;td&gt;AKI/AK5&lt;/td&gt;
&lt;td&gt;FA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;855:- In this only acknowledgement there rest is the same as 850.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
ACK01 - Code&lt;/p&gt;
&lt;h2&gt;
  
  
  EDIFact
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UNH-UNT - Transaction Set&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UNH 01 -&lt;/strong&gt; Type of Information (Eg: DESADV - Shipping Information)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UNH 02 OR 03 -&lt;/strong&gt; Version&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NAD Segment -&lt;/strong&gt; Address Information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UNG-UNE (optional) - Functional Group&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UNA&amp;amp;UNB-UNZ - Interchange&lt;/strong&gt; : &lt;strong&gt;UNB&lt;/strong&gt; holds the Sender and Receiver ID.&lt;/li&gt;
&lt;li&gt;In EDIFACT the BGM is unique all the time.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Customer Specifications
&lt;/h2&gt;

&lt;p&gt;In customers’ specifications, we have some codes by looking at those we can consider. E.g. -  Cancel after, ship not before.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;00 - Original&lt;/li&gt;
&lt;li&gt;07 - Duplicate - To resend the order if we made any mistake in the original order.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;EDI FACT Message&lt;/th&gt;
&lt;th&gt;X12 Message&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ORDER&lt;/td&gt;
&lt;td&gt;850&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DESADV&lt;/td&gt;
&lt;td&gt;856&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;INVOICE&lt;/td&gt;
&lt;td&gt;810&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;INVOICE&lt;/strong&gt; Its beginning segment is BIG&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IT1&lt;/strong&gt; - Item Information includes prices, quantity, and discounts (same information in 850, 856) shipping numbers, payment terms&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Bonus: PDF download
&lt;/h2&gt;



&lt;p&gt;Thanks for exploring the basics of EDI with us. We hope you found this article insightful. As a bonus, we've prepared a 'Comprehensive EDI Guide PDF' that includes examples and in-depth insights on its benefits. Download your PDF here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/edi/madhusudan.live-electronic-data-interchange-basics-examples-process-flow.pdf"&gt;Download Bonus PDF&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In conclusion, Electronic Data Interchange (EDI) is a process of exchanging information electronically between companies without using paper documents. It offers numerous benefits such as automation, efficiency, cost-effectiveness, and increased sales. EDI is widely used in supply chain management and e-commerce to handle transactions effectively.&lt;/p&gt;

&lt;p&gt;EDI standards, such as ANSI X12 and EDIFACT, define the structure and format of electronic documents exchanged between trading partners, ensuring consistent and interpretable data. Communication modes like AS2, FTP, SFTP, HTTP, and HTTPS facilitate secure transmission of EDI documents.&lt;/p&gt;

&lt;p&gt;EDI works by exchanging files between trading partners, where one party adds a file in FTP and the other party updates it with the required information. This communication occurs through ANSI-specified modes like FTP, ensuring real-time data exchange.&lt;/p&gt;

&lt;p&gt;Different types of orders, such as Standalone, Bulk, Release, and Drop-ship orders, are commonly used in EDI. These orders enable efficient business-to-business (B2B) communication and data exchange.&lt;/p&gt;

&lt;p&gt;EDI tools like Sterling Integrator, Seeburger, and Web methods are utilized for communication purposes. Enterprise Resource Planning (ERP) systems, such as SAP SD and SAP WMS, are also employed for backend operations and order management.&lt;/p&gt;

&lt;p&gt;Overall, EDI streamlines business processes reduces manual intervention and enhances the efficiency of data exchange between trading partners. By leveraging EDI technology, businesses can achieve faster, more accurate, and secure transactions in the ever-evolving digital landscape.&lt;/p&gt;

&lt;p&gt;Remember, EDI is a powerful tool that revolutionizes the way companies exchange information. Embrace this technology to unlock its full potential and stay ahead in the world of electronic data interchange.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/ethical-hacking-for-absolute-beginners"&gt;Ethical Hacking For Absolute Beginners: Expert Guide in 2023&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/diy-smoke-detector-system-mq135-and-arduino"&gt;Smoke Detector Alarm Using Arduino and MQ135 Gas Sensor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keywords:&lt;br&gt;
&lt;a href="https://madhusudan.live/tag/edi"&gt;edi&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>edi</category>
    </item>
    <item>
      <title>Smoke Detector Alarm Using Arduino and MQ135 Gas Sensor</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Wed, 08 Nov 2023 12:58:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/smoke-detector-alarm-using-arduino-and-mq135-gas-sensor-115p</link>
      <guid>https://dev.to/madhusudanlive/smoke-detector-alarm-using-arduino-and-mq135-gas-sensor-115p</guid>
      <description>&lt;p&gt;Hello guys, today we will build a smoke detector system, in two different ways with the most simple and easy tutorial.&lt;/p&gt;

&lt;p&gt;In our world, safety takes prime importance, there's no room for compromise. If you're a non-smoker concerned about unexpected fires, a student looking for project ideas or simply a hobbyist who values a secure environment.&lt;/p&gt;

&lt;p&gt;creating your own smoke detector is a smart and responsible choice, and that too, with two distinctive ways - with or without the help of a microcontroller like Arduino, isn't it amazing?&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Smoke Detector Alarm?
&lt;/h2&gt;

&lt;p&gt;Firstly, let's understand what is a smoke detector. A smoke detector is an electronic device that senses the presence of fire and smoke and also other harmful gases in the air. It's a device designed not only to detect the presence of smoke or gas but also to quantify it in parts per million (PPM).&lt;/p&gt;

&lt;p&gt;All this is made possible through the gas sensors such as MQ135 gas sensor or MQ2 gas sensor. Imagine having the ability to early detect the smoke, air quality and gas levels in your living space, all at your fingertips with this simple yet powerful system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working Video of smoke detector system
&lt;/h2&gt;





&lt;h2&gt;
  
  
  How to build your own Smoke Detector?
&lt;/h2&gt;

&lt;p&gt;There are two ways in which we can build the smoke detector or the fire alarm system. one is a simplest one and does not involves any usage of the microcontroller while the other is simple yet feature equipped, where we can see the air quality and display the same on the LCD display, and alert the user with the help of a buzzer, we will implement the smoke detector system with both of these ways as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Using MQ135 Gas Sensor without any microcontroller&lt;/li&gt;
&lt;li&gt;Smoke detector using arduino and MQ135 Gas sensor&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to build a Simple Smoke Detector using MQ135 sensor?
&lt;/h2&gt;

&lt;p&gt;Smoke detector or a fire alarm system can be built just using the gas sensors such MQ135 gas sensor or MQ2 gas sensor, without microcontroller. for this project, we will be using MQ135. MQ135 is a powerful sensor and is capable of driving your smoke detector system without any need of a microcontroller, this is a simple yet complete guide to build the minimal smoke detector system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Required Components:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/3rRdeGd"&gt;MQ135&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;12 x &lt;a href="https://amzn.to/45q0xA1"&gt;Wires&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/45n6EF9"&gt;Buzzer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/3ZOhkLT"&gt;Breadboard&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;MQ135 Gas Sensor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eB-RfdqL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/mq135-front.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eB-RfdqL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/mq135-front.jpeg" alt="Photo of MQ135 gas Sensor showing front Side" title="MQ135 Sensor Front Side" width="800" height="768"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;MQ135 Sensor Front Side&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3L5SLbKb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/mq135back.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3L5SLbKb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/mq135back.jpeg" alt="Photo of MQ135 Sensor showing Back Side" title="MQ135 Sensor Back Side" width="800" height="945"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;MQ135 Sensor Back Side&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;MQ135 is a small but powerful sensor, that can detect harmful gases at very high accuracy, also it boasts multiple features, its operation can be carried out with or without any microcontroller and this can provide the outputs in digital as well as analog forms, hence it is a popular choice for similar kind of projects.&lt;/p&gt;

&lt;p&gt;MQ135 is an air quality sensor that detects hazardous gases like ammonium, sulfide, and benzene-based gases, hence it is a perfect choice for detecting smoke and other harmful gases. The smoke has the aforementioned elements. The component used to detect smoke is nothing but MOS (metal oxide semiconductor) It consists of a small heater built with some electrochemical that is reactive to the above-mentioned gaseous at room temperature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pin Configuration of MQ135&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;VCC : This pin is connected to the positive supply (+5V), which powers the MQ135 gas sensor.&lt;/p&gt;

&lt;p&gt;GND : This pin is connected to the ground pin of MQ135 gas sensor.&lt;/p&gt;

&lt;p&gt;DO : This is DOut or Digital Out pin, that gives the output of the sensor in digital form w.r.t to the threshold value set on the MQ135 module, this pin gives the consumable output values directly, thus making the sensor work without additional support for any microcontroller.&lt;/p&gt;

&lt;p&gt;AO : This pin is used when using MQ135 as an analog sensor, for now, we are not going to use, this pin provides analog output, that can be varied within the range of 0V to 5V and which totally depends on gas sensitivity. The output signal by the analog pin is proportional to the concentration of gas vapours in the air. This measures the gas in PPM (Parts Per Million)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Buzzer for alarm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DR8-5QyO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/buzzer.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DR8-5QyO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/buzzer.jpeg" alt="Photo of a Buzzer Module" title="Buzzer Module" width="800" height="688"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Buzzer Module&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;A buzzer is a simple electromagnetic device that produces a beeping sound when connected to VCC. Here it is used to alert the user with a beeping sound after the detection of smoke or harmful contents in air.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9v DC Battery&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kMyy4HiN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/battery.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kMyy4HiN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/battery.jpeg" alt="Photo of a 9V DC Battery" title="9V DC Battery" width="800" height="791"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;9V DC Battery&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;The battery is an essential component, used to provide supply to our system which is 9 volts with the help of a cap that is easy to connect with our system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Breadboard and single-strand cables&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A2CqwAQq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/breadboard.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A2CqwAQq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/breadboard.jpeg" alt="Photo of a Breadboard" title="Breadboard" width="800" height="1067"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Breadboard&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Sl7NTkP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/single-strand-wires.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Sl7NTkP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/single-strand-wires.jpeg" alt="A photo of a ribbon of single-stranded wires" title="Ribbon of single-stranded wires" width="800" height="1479"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Ribbon of single-stranded wires&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;A breadboard is a platform that we will use to build our system, the necessary connections are made with single-stranded wires by interconnection of necessary components in the system.&lt;/p&gt;
&lt;h2&gt;
  
  
  Connections for simple Smoke detector system
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Make a connection of the VCC pin of the MQ135 sensor to the Positive Terminal of the battery.&lt;/li&gt;
&lt;li&gt;Connect the GND pin of MQ135 to the Negative terminal of the battery.&lt;/li&gt;
&lt;li&gt;Connect the analog output pin from the MQ135 sensor i.e. AO to the negative pin of the buzzer.&lt;/li&gt;
&lt;li&gt;Now connect the positive pin of the buzzer with the positive terminal of the battery.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Testing the smoke detector system
&lt;/h2&gt;

&lt;p&gt;To test the smoke detector or fire alarm system, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Place the smoke detector in the desired location, where you can see it clearly.&lt;/li&gt;
&lt;li&gt;generate a small amount of smoke, such as a matchstick or an incense stick, and hold it close to the smoke detector.&lt;/li&gt;
&lt;li&gt;Now look at the smoke detector. The buzzer should start producing a continuous beep sound, indicating the presence of smoke.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Smoke Detector using Arduino and MQ135 Gas Sensor
&lt;/h2&gt;

&lt;p&gt;Now we will jump to the advanced module, in this section we will create another version of our system but with some extra features, such as displaying the concentration of gases in PPM along with safety messages, also lighting up different LEDs based on safety level: red for Hazardous environment and Green for Safe Environment.&lt;/p&gt;
&lt;h3&gt;
  
  
  Components:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/3toubIy"&gt;Arduino UNO&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/3Q5s5pQ"&gt;16x2 LCD&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/3toubIy"&gt;Data cable&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;2 x &lt;a href="https://amzn.to/3PPvs2O"&gt;Led (red, green) (1.8 to 3.3 V )&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/46oAzhM"&gt;Pot ( 10 k )&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/3rRdeGd"&gt;MQ135&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/45n6EF9"&gt;Buzzer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/3RM1u2v"&gt;Battery and cap (9v)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;1 x &lt;a href="https://amzn.to/3ZOhkLT"&gt;Breadboard&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;~25 &lt;a href="https://amzn.to/45q0xA1"&gt;single-strand wires&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Arduino UNO&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A-fCch72--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/arduino.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A-fCch72--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/arduino.jpeg" alt="Arduino UNO Development board" title="Arduino UNO Development board" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Arduino UNO Development board&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino&lt;/a&gt; is a development board and framework for the IC ATmega328P Microcontroller. It is an open-source electronic platform that we are going to use for building this smoke detector system.&lt;/p&gt;

&lt;p&gt;Pins of Arduino are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There are a total of 32 pins available for Arduino&lt;/li&gt;
&lt;li&gt;Out of 32 pins, there are 22 pins that work as I/O pins.&lt;/li&gt;
&lt;li&gt;Of those pins, 14 pins from D0 to D13 (where D stands for digital )are truly digital IO (input and output) pins. that can be configured according to our application&lt;/li&gt;
&lt;li&gt;There are 6 Pins from A0 to A5 which are known as analog input pins ( where A stands for analog ). these pins can also be configured as digital IO pins if required&lt;/li&gt;
&lt;li&gt;The remaining pins supply power to the board i.e. VCC and GND.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Read more on Arduino&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;16x2 LCD Display&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VPBA9lyY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/lcd.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VPBA9lyY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/lcd.jpeg" alt="A photo of 16x2 LCD Display placed on white paper" title="16x2 LCD Display" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;16x2 LCD Display&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;16x2 LCD (liquid crystal display) display that is used to show messages/data. and is called 16x2 because it has 16 columns and 2 rows. This LCD display can show 32 characters at once.&lt;/p&gt;

&lt;p&gt;Pins of LCD are as follows&lt;/p&gt;

&lt;p&gt;GND1 This pin refers to the ground pin of the display, which is used to connect with the ground terminal of the power supply or microcontroller&lt;/p&gt;

&lt;p&gt;VCC2 This pin refers to the voltage supply pin of the LCD display which is used to connect with the supply pin of the power supply&lt;/p&gt;

&lt;p&gt;VEE3 This pin refers to the change in display view, which can be adjusted by using the potentiometer&lt;/p&gt;

&lt;p&gt;RS4 This pin refers to toggling among the data register&lt;/p&gt;

&lt;p&gt;RW5 This pin toggles our LCD display among read and write modes of operation&lt;/p&gt;

&lt;p&gt;EN6 This pin refers to enabling the pin for display, and it must be kept high during all operation&lt;/p&gt;

&lt;p&gt;Data7-14 Data pins D0 to D7: These pins used to send data to display for displaying messages and can be used in 4-wire or 8-wire mode&lt;/p&gt;

&lt;p&gt;Anode15 +ve for backlight&lt;/p&gt;

&lt;p&gt;Cathode16 for backlight&lt;/p&gt;

&lt;p&gt;PS: read &lt;a href="https://madhusudan.live/tag/display"&gt;more about displays&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LEDs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xwagUp4u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/leds.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xwagUp4u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/leds.jpeg" alt="Photo of a Red LED and white LED" title="Multicolour LEDs" width="800" height="619"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Multicolour LEDs&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;LEDs are simple light-emitting diodes with two pins: Anode (+) and Cathode (-). They are used to indicate safe and danger zones based on smoke or gas leakage in the air.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data cable or Power cable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4xw5KUT1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/data-cable.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4xw5KUT1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/data-cable.jpeg" alt="Type A Data Cable for programming the arduino" title="Type A Data Cable" width="800" height="898"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Type A Data Cable&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;A data cable is primarily used to transfer code to our Arduino board. It can also be used to provide power to our system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Potentiometer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ht7WvKow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/pot.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ht7WvKow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/pot.jpeg" alt="Photo of a Potentiometer" title="Potentiometer" width="800" height="790"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Potentiometer&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;The potentiometer is mostly used to change the display views by connecting it to pin no. 3 of the LCD display. It is simply a variable resistor that can be adjusted by changing the position of the resistive wire. The potentiometer has a sliding rotating shaft that controls the position of the resistive wire inside, allowing us to adjust the intensity of characters displayed on the screen by rotating the shaft on the potentiometer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MQ135 Gas/Air Quality Sensor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eB-RfdqL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/mq135-front.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eB-RfdqL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/mq135-front.jpeg" alt="Photo of MQ135 gas Sensor showing front Side" title="MQ135 Sensor Front Side" width="800" height="768"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;MQ135 Sensor Front Side&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3L5SLbKb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/mq135back.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3L5SLbKb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/mq135back.jpeg" alt="Photo of MQ135 Sensor showing Back Side" title="MQ135 Sensor Back Side" width="800" height="945"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;MQ135 Sensor Back Side&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;MQ135 is nothing but a smoke sensor that is used to detect smoke which is nothing but MOS (metal oxide semiconductor) It consists of a small heater built with some electrochemical that is reactive to some gaseous at room temperature&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pins of MQ135&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;VCC This pin is connected to the positive supply (+5V), which powers our MQ135.&lt;/p&gt;

&lt;p&gt;GND This pin refers to the Negative supply or Ground, which connects the MQ135 sensor to the ground&lt;/p&gt;

&lt;p&gt;DO This is the output pin of the sensor which gives digital output with respect to the threshold value that can be adjusted on the MQ135 module with the help of a preset, this pin is responsible for measuring and detecting any specific gas thus making the sensor work without additional support for any microcontroller.&lt;/p&gt;

&lt;p&gt;AO When using MQ135 as an analog sensor, this pin provides analog output, that can be varied within the range of 0V to 5V and which totally depends on gas sensitivity. The output signal by the analog pin is proportional to the concentration of gas vapours in the air. This measures the gas in PPM (Parts Per Million)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Buzzer alarm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DR8-5QyO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/buzzer.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DR8-5QyO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/buzzer.jpeg" alt="Photo of a Buzzer Module" title="Buzzer Module" width="800" height="688"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Buzzer Module&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;A buzzer is nothing but a simple electromagnetic device that produces a beeping sound when connected to VCC. Here it is used to alert the user with a beeping sound after the detection of smoke 💨 or gas ⛽️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9V Battery&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kMyy4HiN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/battery.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kMyy4HiN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/battery.jpeg" alt="Photo of a 9V DC Battery" title="9V DC Battery" width="800" height="791"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;9V DC Battery&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;The battery is an essential component for this smoke detector system, and used to provide supply to our system which is 9 volts with the help of a cap that is easy to connect with our system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Breadboard and single-strand cables&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A2CqwAQq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/breadboard.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A2CqwAQq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/breadboard.jpeg" alt="Photo of a Breadboard" title="Breadboard" width="800" height="1067"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Breadboard&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Sl7NTkP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/single-strand-wires.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Sl7NTkP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/single-strand-wires.jpeg" alt="A photo of a ribbon of single-stranded wires" title="Ribbon of single-stranded wires" width="800" height="1479"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Ribbon of single-stranded wires&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;A breadboard is a platform on which we will build our system, whereas single-strand wires are used for the interconnection of necessary components in the system&lt;/p&gt;
&lt;h2&gt;
  
  
  connections for smoke detector system with arduino
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zRnXmPfz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/cover-circuit.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zRnXmPfz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/cover-circuit.png" alt="circuit diagram of Smoke detector using arduino and mq135 gas sensor" title="circuit diagram of Smoke detector system" width="800" height="334"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;circuit diagram of Smoke detector system&lt;/em&gt;&lt;/p&gt;



&lt;ol&gt;
&lt;li&gt;Connect pin 1 (GND) of the display to the GND terminal of the supply&lt;/li&gt;
&lt;li&gt;Connect pin 2 (VCC) of the display to the +ve terminal of the supply&lt;/li&gt;
&lt;li&gt;Connect pin 3 (VEE) of the display to a variable terminal of the potentiometer (pin 2) which is the middle pin of the potentiometer while the other ( pin 1 and pin 3) of the potentiometer are connected to the +ve and -ve terminals of the supply respectively&lt;/li&gt;
&lt;li&gt;Connect pin 4 (RS) of the display to the D7 pin of the Arduino&lt;/li&gt;
&lt;li&gt;Connect pin 5 (RW) pin of the display to the GND terminal&lt;/li&gt;
&lt;li&gt;Connect pin 6 (EN) of the display to the D6 pin of the Arduino&lt;/li&gt;
&lt;li&gt;Connect the data pins of the display (pins 11-14) as follows: connect D4 to pin D5 of the Arduino, D5 to pin D4 of the Arduino, D6 to pin D3 of the Arduino, and D7 to pin D2 of the Arduino.&lt;/li&gt;
&lt;li&gt;connect pin 15 of the LCD backlight of the display to the positive terminal of the power supply then connect pin 16 to the negative ( Ground ) terminal of the battery&lt;/li&gt;
&lt;li&gt;Connect the positive terminals (Anode) of the red LED to pin 10 of Arduino and the positive terminal of the green LED to pin 12 of Arduino then connect their negative terminals (Cathode) to ground via a 1K resistor&lt;/li&gt;
&lt;li&gt;Connect the positive terminal of the buzzer to PIN number D8 of the Arduino, and connect the negative terminal to the ground terminal of the power supply.&lt;/li&gt;
&lt;li&gt;Connect the VCC of Arduino to the positive terminal of the power supply, and connect GND to the ground terminal of the supply.&lt;/li&gt;
&lt;li&gt;To connect the MQ135 sensor to an Arduino, follow these steps:&lt;/li&gt;
&lt;li&gt;Connect the AO (analog output) pin of the MQ135 to pin A0 of the Arduino.&lt;/li&gt;
&lt;li&gt;Connect the VCC terminal of the MQ135 to the VCC (power supply) of the Arduino.&lt;/li&gt;
&lt;li&gt;Connect the GND terminal of the MQ135 to the GND (ground) of the Arduino.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pXd-9RiP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/implementation-of-smoke-detector-alarm-system.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pXd-9RiP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/smoke-detector/implementation-of-smoke-detector-alarm-system.jpeg" alt="LCD of smoke detector system showing gas level and alert message" title="Implementation of system" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Implementation of system&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Arduino code for smoke detector system
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;LiquidCrystal.h&amp;gt;
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

int red = 10;
int green = 12;
int buzzer = 8;
int MQOut = A0;
// Your threshold value
int sensorThres = 170;

void setup() {
  pinMode(red, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(MQOut, INPUT);
  Serial.begin(9600);
  lcd.begin(16,2);
}

void loop() {
  int analogSensor = analogRead(MQOut);

  Serial.print("Pin A0: ");
  Serial.println(analogSensor);
  lcd.print("Smoke Level:");
  lcd.print(analogSensor-50);
  // Checks if it has reached the threshold value
  if (analogSensor-50 &amp;lt; sensorThres)
  {
    digitalWrite(red, LOW);
    digitalWrite(green, HIGH);
    lcd.setCursor(0, 2);
    lcd.print("Safe Zone");
    noTone(buzzer);
  }
  else if (analogSensor-50 &amp;gt;= 170 &amp;amp;&amp;amp; analogSensor-50 &amp;lt;= 200)
  {
    digitalWrite(red, HIGH);
    lcd.setCursor(0, 2);
    lcd.print("Warning...");
    digitalWrite(green, LOW);
    tone(buzzer, 5000 , 200);
  }

  else
  {
    digitalWrite(red, HIGH);
    lcd.setCursor(0, 2);
    lcd.print("Evacuate...");
    digitalWrite(green, LOW);
    tone(buzzer, 2000 , 550);
  }
  delay(600);
  lcd.clear();
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Testing the smoke detection alarm system
&lt;/h2&gt;

&lt;p&gt;To test this advanced smoke detector system, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Place the smoke detector in the desired location, where you can see it clearly.&lt;/li&gt;
&lt;li&gt;generate some kind of smoke, using a matchstick or an incense stick, and place it close to the smoke detector system.&lt;/li&gt;
&lt;li&gt;The buzzer should start producing a continuous beep sound, indicating the presence of smoke.&lt;/li&gt;
&lt;li&gt;Now look at the smoke detector. The LCD display will show the &lt;strong&gt;Alert&lt;/strong&gt; Message and the Red LED will glow&lt;/li&gt;
&lt;li&gt;Now go to a normal safe environment, the LCD will display the &lt;strong&gt;Safe Zone&lt;/strong&gt; message and the Green LED Light will glow.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Conclusion: Your Safety, Your Creativity
&lt;/h2&gt;

&lt;p&gt;Well, my dear techies, we are heading towards an end of this journey, building a smoke detector system, we hope you were able to learn something new from this article, and we are glad if you were able to follow along and build the smoke detector or fire alarm system to safeguard your loved ones, we're proud of you, if you make it to the end and complete the project successfully, however, if you stuck somewhere and need some help, please use the contact form below to reach out to us.&lt;/p&gt;

&lt;p&gt;Happy crafting!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/electronic-data-interchange-examples-process-flow"&gt;EDI Electronic Data Interchange Basics, Examples, Benefits PDF&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino UNO Explained: Features, Shields, IDE: Nano, ESP32&lt;/a&gt;&lt;br&gt;
Keywords:&lt;br&gt;
&lt;a href="https://madhusudan.live/tag/embedded"&gt;embedded&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/arduino"&gt;arduino&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/electronics"&gt;electronics&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/programming"&gt;programming&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/microcontroller"&gt;microcontroller&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>embedded</category>
      <category>arduino</category>
      <category>electronics</category>
      <category>programming</category>
    </item>
    <item>
      <title>Arduino UNO Explained: Features, Shields, IDE: Nano, ESP32</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Mon, 06 Nov 2023 01:59:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/arduino-uno-explained-features-shields-ide-nano-esp32-3692</link>
      <guid>https://dev.to/madhusudanlive/arduino-uno-explained-features-shields-ide-nano-esp32-3692</guid>
      <description>&lt;p&gt;Hey there, future tech gurus and engineering enthusiasts! Are you ready to dive into the electrifying world of basic electronic components? I'm thrilled to be your virtual guide on this exciting journey! Now, I know that talking about electronic components might sound a bit frightening, but fear not! I'll make this topic as clear and engaging as possible.&lt;/p&gt;

&lt;p&gt;Hey everyone! So, let's talk about electronic components, shall we? These little guys are the foundation of every electronic device you can imagine, like smartphones, laptops, and even those cool wearable gadgets we can't get enough of. They're the building blocks of any electronic device you can imagine! Learning these components is a must, as no electronic project can be completed without these building blocks.&lt;/p&gt;

&lt;p&gt;So, what exactly are these basic components, you ask? Well, these fundamental components are resistors, capacitors, and inductors, the passive components. These components are simple but the most important ones and are present in almost every circuit. Their functioning ensures everything runs smoothly.&lt;/p&gt;

&lt;p&gt;Now comes the transistors, diodes, and integrated circuits, these are the active components, and are responsible for amplifying signals, controlling electronic flow, and making all those mind-boggling complex calculations.&lt;/p&gt;

&lt;p&gt;But wait, did you see, I used active components and passive components? You may ask, what are active components? The electronic components that can modify, amplify, modulate and switch the electrical signals are called as active components. These components need an external power source for their operation. They are transistors, diodes, Integrated Circuits, etc.&lt;/p&gt;

&lt;p&gt;Now, what are passive components? Passive components include resistors, capacitors and inductors. These components can filter, modify or store electrical signals without actively controlling or amplifying them. So basically, the electronic components that do not require any additional power source and can modify, filter, or store the electrical signals are called passive components.&lt;/p&gt;

&lt;p&gt;We will discuss all these components in detail, along with their functions, symbols, units, formulae, and relevant laws if any, so hold tight for this electrifying journey.&lt;/p&gt;

&lt;p&gt;But wait, there's more! We also have sensors actuators, and microcontrollers. They are like tiny spies (James Bond) that gather information from the outside world, think of temperature, light intensity, motion or sound, and even the touch, we will go through these as well, as they are the senses and brains of our electronic world.&lt;/p&gt;

&lt;p&gt;Okay, so let's explore one by one:&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#resistors"&gt;Resistors:&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3J5y_lnw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/resistors.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3J5y_lnw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/resistors.jpg" alt="Photo of resistors with colour code on their body" title="resistors" width="800" height="560"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;resistors&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;These tiny devices are called as resistors, their function is to limit the speed of electron flow i.e. current. Think of them as speed breakers, similar to how speed breakers encourage us to limit the speed while driving, the resistors function the same for controlling the flow of electric current.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of resistors:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;there are two main types of resistors&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;fixed resistors&lt;/strong&gt; :&lt;/p&gt;

&lt;p&gt;The resistance value is fixed on these resistors and can't be changed, examples of these resistors are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Carbon Film Resistor&lt;/li&gt;
&lt;li&gt;Metal Film Resistor&lt;/li&gt;
&lt;li&gt;Wire wound Resistor&lt;/li&gt;
&lt;li&gt;Thick Film Resistor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;variable resistors:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The resistors whose value i.e. resistance can be changed or varied are called as variable resistors. e.g. potentiometers, presets, etc.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#resistor-colour-code"&gt;Resistor colour code&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;For fixed resistors, their value can be calculated by looking at their colours, the stripes that you can see in the above image have special meanings, refer to the following table to see their values.&lt;/p&gt;

&lt;p&gt;Generally, these resistors have 3 or 4 bands, but they can also be up to 6 bands, but the logic to calculate their values is similar.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;colour&lt;/th&gt;
&lt;th&gt;band&lt;/th&gt;
&lt;th&gt;multiplier&lt;/th&gt;
&lt;th&gt;tolerance&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Black&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1Ω&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Brown&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10 Ω&lt;/td&gt;
&lt;td&gt;±1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Red&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;100 Ω&lt;/td&gt;
&lt;td&gt;±2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Orange&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;1 KΩ&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yellow&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;10 KΩ&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Green&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;100 Ω&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blue&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;1 MΩ&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Violet&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grey&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;White&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gold&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;0.1 Ω&lt;/td&gt;
&lt;td&gt;±5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Silver&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;0.01 Ω&lt;/td&gt;
&lt;td&gt;±10%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;For calculating 3 band resistor value:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1st band: it signifies 1st digit&lt;/p&gt;

&lt;p&gt;2nd band: it signifies the 2nd digit&lt;/p&gt;

&lt;p&gt;3rd band: this band signifies a multiplier&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For calculating 4 band resistor value:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1st band: it signifies 1st digit&lt;/p&gt;

&lt;p&gt;2nd band: it signifies the 2nd digit&lt;/p&gt;

&lt;p&gt;3rd band: this band signifies a multiplier&lt;/p&gt;

&lt;p&gt;4th band: this band signifies tolerance&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For 5, 6 band resistors:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The last 2 bands have the same meaning but the first 3 or 4 bands are the significant digits in the case of 5 and 6-band resistors respectively&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yv7RjLtv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/resistor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yv7RjLtv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/resistor.png" alt="Photo of Resistor with 5 striped bands on its body" title="resistor with colour code" width="400" height="104"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;resistor with colour code&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Here in this example&lt;/p&gt;

&lt;p&gt;1st three bands refer to the 1st three significant digits the 4th band is the multiplier, the last one is the tolerance&lt;/p&gt;

&lt;p&gt;let's calculate:&lt;/p&gt;

&lt;p&gt;put the 1st 3 digits as it is: i.e. 426, next is a multiplier i.e. 10^3, last one is tolerance i.e. ±10%&lt;/p&gt;

&lt;p&gt;putting it all together: 426KΩ ± 10%&lt;/p&gt;

&lt;p&gt;Some important formulae about resistors:&lt;/p&gt;

&lt;p&gt;Ohm’s law:&lt;/p&gt;

&lt;p&gt;It states that the current flowing through a conductor is directly proportional to the voltage across its two ends. &lt;a href="https://en.wikipedia.org/wiki/Ohm%27s_law"&gt;Read more on Ohm’s law&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#capacitors"&gt;Capacitors&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A capacitor is an electronic device that stores electric energy in the form of electrical charge accumulated on their plates. When a capacitor is connected to a power source, it gets charged as the charges accumulate on its plates. Soon the power source is disconnected, the charges on the plate are released, and hence the capacitor acts like a mini battery.&lt;/p&gt;

&lt;p&gt;But hey, did you see, I said a capacitor stores the charges in its plates, so let me show you the internals of a capacitor.&lt;/p&gt;

&lt;p&gt;See these grey parts below, these are called as the plates and the blackish material inside is called a dielectric. The plates of the capacitor are conducting, but the dielectric material is an insulating or non-conducting material. The dielectric material prevents the flow of electrons, but it allows the electric field to exist.&lt;/p&gt;

&lt;p&gt;The capacitor has a property called capacitance, capacitance is defined as the ratio of electric charge (Q) stored in the capacitor to the voltage (V) applied to it and its unit is farads(F).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C = Q / V&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9L_suSPd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/capacitor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9L_suSPd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/capacitor.png" alt="Construction of capacitor" title="Construction of capacitor" width="350" height="300"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Construction of capacitor&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Types of capacitors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Following are the types of capacitors along with their dielectric material, capacitance, voltage ratings and important characteristics.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
### &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#ceramic-capacitor"&gt;Ceramic Capacitor:&lt;/a&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Ceramic
&lt;strong&gt;Capacitance&lt;/strong&gt; : Typically ranges from picofarads (pF) to microfarads (uF).
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Can range from a few volts to hundreds of volts.
&lt;strong&gt;Characteristics&lt;/strong&gt; : Commonly used for high-frequency applications, compact size, and low cost.&lt;/li&gt;
&lt;li&gt;
### &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#electrolytic-capacitor"&gt;Electrolytic Capacitor:&lt;/a&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Oxide layer
&lt;strong&gt;Capacitance&lt;/strong&gt; : Higher values, often in microfarads (uF) to farads (F).
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Usually for higher voltage applications.
&lt;strong&gt;Characteristics&lt;/strong&gt; : Polarized (must be connected with the correct polarity), higher capacitance values, used for power supply filtering.&lt;/li&gt;
&lt;li&gt;
### &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#tantalum-capacitor"&gt;Tantalum Capacitor:&lt;/a&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Tantalum Oxide
&lt;strong&gt;Capacitance&lt;/strong&gt; : Typically in the range of microfarads (uF) to farads (F).
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Suitable for higher voltage applications.
&lt;strong&gt;Characteristics&lt;/strong&gt; : Polarized, high stability, used in applications where reliability is critical.&lt;/li&gt;
&lt;li&gt;
### &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#film-capacitor"&gt;Film Capacitor:&lt;/a&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Various types, including polyester (Mylar), polypropylene, and polyethylene.
&lt;strong&gt;Capacitance&lt;/strong&gt; : Ranges from picofarads (pF) to microfarads (uF).
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Varies, but can handle moderate voltage levels.
&lt;strong&gt;Characteristics&lt;/strong&gt; : Non-polarized, good for precision applications, and available in various materials like polyester, polypropylene, and more.&lt;/li&gt;
&lt;li&gt;
### &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#variable-capacitor"&gt;Variable Capacitor:&lt;/a&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Conductive polymer
&lt;strong&gt;Capacitance&lt;/strong&gt; : Adjustable, often used in tuning circuits.
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Varies, typically low.
&lt;strong&gt;Characteristics&lt;/strong&gt; : Designed to vary capacitance for tuning purposes in radios and other devices.&lt;/li&gt;
&lt;li&gt;
### &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#supercapacitor"&gt;Supercapacitor:&lt;/a&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Electrochemical double layer.
&lt;strong&gt;Capacitance&lt;/strong&gt; : Typically in the range of farads (F) or even hundreds of farads.
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Can handle moderate voltages.
&lt;strong&gt;Characteristics&lt;/strong&gt; : Known for high capacitance, rapid charge/discharge, and used in applications requiring quick energy storage and release.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#applications-of-capacitors"&gt;Applications of capacitors:&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Capacitors are like tiny energy storage tanks in electronics.&lt;/strong&gt; They have three main jobs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Filter Noise:&lt;/strong&gt; They clean up electrical signals, like removing static from music.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Store Energy:&lt;/strong&gt; They save and release electrical energy when needed, like a battery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start Motors:&lt;/strong&gt; In things like fans or toy cars, capacitors give the initial push to make them start spinning. You might have seen your fans, those big cylinders-like guys.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block Static:&lt;/strong&gt; They keep your computer chips safe from sudden electricity spikes, like a shield.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Signal Boost:&lt;/strong&gt; In radios and antennas, capacitors help to make weak signals stronger, like using a magnifying glass to see things better.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#diodes"&gt;Diodes&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Here comes the semiconductor devices, diodes are basically semiconductor devices that allow the flow of electric current in only one direction and block the other.&lt;/p&gt;

&lt;p&gt;A diode is a two-terminal device, and it is made by joining P-Type and N-Type semiconductors.&lt;/p&gt;

&lt;p&gt;Now, you may ask what are these semiconductors? What are P-type and N-type semiconductors? A semiconductor, as its name suggests, is neither a conductor nor an insulator, its conductivity lies between them, meaning that, a semiconductor device acts as a conductor when it meets certain conditions otherwise it acts as an insulator.&lt;/p&gt;

&lt;p&gt;Let me break it down even further, a semiconductor, when it meets certain conditions, allows the electric current to flow and blocks it otherwise.&lt;/p&gt;

&lt;p&gt;The electrons in the outermost orbit of the semiconductor are responsible for this behaviour, the valence electrons or the valency of these semiconductor atoms, the construction is out of scope, &lt;a href="https://en.wikibooks.org/wiki/Semiconductor_Electronics/Diode/Construction_and_Operation"&gt;read more about diodes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now P-type and N-type semiconductors are nothing but when p-type impurities are added to these semiconductors they form a p-type semiconductor, similarly, when an n-type impurity is added to it, they form an n-type semiconductor&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u7HgSryG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/construction-of-diode.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u7HgSryG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/construction-of-diode.png" alt="Construction of diode" title="Construction of diode" width="307" height="150"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Construction of diode&lt;/em&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#types-and-applications-of-diodes"&gt;Types and applications of diodes&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;There are various types of diodes, each designed for specific applications. Here's an overview of some common types of diodes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;PN Junction Diode:&lt;/strong&gt; The standard diode is composed of P-N semiconductor materials. Allows current to flow in one direction while blocking it in the other.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Light Emitting Diode (LED):&lt;/strong&gt;Emits light when current flows through it. Widely used in displays, indicators, and lighting applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zener Diode:&lt;/strong&gt; Designed for voltage regulation and voltage reference applications. Provides a constant voltage across its terminals when operated in the reverse breakdown region.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schottky Diode:&lt;/strong&gt; Known for its fast switching capabilities. Used in high-frequency and high-speed applications. Has a lower forward voltage drop compared to standard diodes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Varactor Diode (Varicap Diode):&lt;/strong&gt;Used in tuning circuits, such as in radio receivers, to change the capacitance and tune specific frequencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avalanche Diode:&lt;/strong&gt; Operates in the avalanche breakdown region. Used in avalanche photodiodes for detecting light.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#transistors"&gt;Transistors&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Transistors are fundamental electronic components that play a crucial role in amplifying and controlling electrical signals in our electronic world of circuits. They are often described as the "building blocks" of modern electronics.&lt;/p&gt;

&lt;p&gt;Without transistors, it would be challenging to build the complex electronic devices and systems that have become an integral part of our daily lives.&lt;/p&gt;

&lt;p&gt;In other words, transistors act like electronic switches and signal boosters that allow us to create everything from simple on-off switches to powerful computers. yes, you saw it right, the computer CPUs that we use have millions of transistors in them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5Ad18X6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/transistor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5Ad18X6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/transistor.png" alt="Photo of a transistor" title="transistor" width="188" height="345"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;transistor&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Here's an overview of transistors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bipolar Junction Transistor (BJT):&lt;/strong&gt;BJTs are three-layer semiconductor devices (N-P-N or P-N-P). They amplify current and can be used as switches. Commonly used in analog applications and amplifiers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Field-Effect Transistor (FET):&lt;/strong&gt;FETs control current flow using an electric field. They are classified into MOSFETs (Metal-Oxide-Semiconductor FET) and JFETs (Junction FET). MOSFETs are commonly used in digital and power applications, while JFETs are used in low-frequency applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MOSFET (Metal-Oxide-Semiconductor FET):&lt;/strong&gt;MOSFETs are widely used in digital and power electronics. They have low power consumption, making them suitable for integrated circuits (ICs).&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#key-functions-and-significance"&gt;Key Functions and Significance:&lt;/a&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Amplification:&lt;/strong&gt; Transistors amplify weak electrical signals, making them stronger. This is essential in audio amplifiers, radios, and other signal-processing applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Switching:&lt;/strong&gt; Transistors can act as electronic switches, controlling the flow of electrical current. In digital circuits, they enable us the representation of binary logic i.e. 0s and 1s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Signal Modulation:&lt;/strong&gt; Transistors also play a vital role in amplitude modulation (AM) and frequency modulation (FM) in communication systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voltage Regulation:&lt;/strong&gt; They help regulate voltage levels in power supplies, ensuring stable and precise output voltages.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#integrated-circuits-ics"&gt;Integrated Circuits (ICs)&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Integrated Circuits often called ICs are miniature electronic circuits made up of semiconductor materials, mostly silicon. you might have seen those black squares/rectangles with legs.&lt;/p&gt;

&lt;p&gt;These circuits house thousands, millions, or even billions of electronic components, including transistors, resistors, capacitors, and more, all on a single chip.&lt;/p&gt;

&lt;p&gt;The components are interconnected to perform various functions, from processing data to controlling electrical signals.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Aen64TD0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/integrated_circuits.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Aen64TD0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/integrated_circuits.jpg" alt="Photo of Integrated Circuits" title="Integrated Circuits" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Integrated Circuits&lt;/em&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#types-of-integrated-circuits"&gt;Types of Integrated Circuits&lt;/a&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Analog ICs:&lt;/strong&gt; Handle continuous signals for tasks like amplification and voltage regulation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digital ICs:&lt;/strong&gt; Process discrete binary signals (0s and 1s) for computing and memory functions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mixed-Signal ICs:&lt;/strong&gt; Combine analog and digital circuitry, used in devices like smartphones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RF ICs:&lt;/strong&gt; Specialized for radio-frequency applications, like amplifying and processing wireless signals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory ICs:&lt;/strong&gt; Store and retrieve data, from computer DRAM to flash memory in USB drives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power Management ICs (PMICs):&lt;/strong&gt; Regulate voltage and manage power in electronic devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communication ICs:&lt;/strong&gt; Enable data transmission, including Ethernet controllers and wireless communication.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#microcontrollers"&gt;Microcontrollers&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;These are small, &lt;a href="https://madhusudan.live/blog/tag/embedded"&gt;embedded&lt;/a&gt; computers on a chip, used to control devices and processes in appliances, automobiles, and industrial systems. they are like the brains of the system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qcUJ_nKr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/microcontrollers.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qcUJ_nKr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/microcontrollers.jpg" alt="Photo of ESP8266, ESP32, HC05 and Nordic Semiconductors’ development board" title="Photo of ESP8266, ESP32, HC05 and Nordic Semiconductors’ development board" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Photo of ESP8266, ESP32, HC05 and Nordic Semiconductors’ development board&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;8051 microcontrollers&lt;/strong&gt; : This intel-developed family of microcontrollers is widely used. these are 8-bit microcontrollers suitable for small projects, robotics, and simple applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Arduino:&lt;/strong&gt; well &lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino&lt;/a&gt; is not a microcontroller but for its wide use and simplicity I’m adding here, that &lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266#arduino-development-boards"&gt;Arduino boards&lt;/a&gt; are basically development boards based on the ATMega328P microcontroller, they make the development and prototyping of &lt;a href="https://madhusudan.live/blog/tag/embedded"&gt;embedded systems&lt;/a&gt; a lot easier, and they have &lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266#understanding-arduino-programming-language"&gt;Arduino IDE&lt;/a&gt;, framework and support for several libraries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wireless microcontrollers:&lt;/strong&gt; ESP32, ESP8266, and Nordic Semiconductor MCUs are a few to list, they provide wireless connectivity, and some offer Wi-Fi, Bluetooth or other networking protocols and hence are suitable for IoT-based applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#bonus-pdf-download"&gt;Bonus: PDF download&lt;/a&gt;
&lt;/h2&gt;



&lt;p&gt;Thanks for reading this Article! As a token of our appreciation, download a free bonus PDF with Basic Electronic Components for Embedded Systems and IoT. Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/electronic-components/basic-electronic-components-madhusudan.live.pdf"&gt;Download Bonus PDF&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/basic-electronic-components-simple-yet-detailed-guide#conclusion"&gt;Conclusion&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;In the world of electronics, understanding the diverse range of components and technologies is crucial for those who seek to innovate, whether you're a seasoned developer or a curious beginner. From fundamental concepts like active components to the intricate workings of capacitors and diodes, the electronic landscape is vast and rich with possibilities.&lt;/p&gt;

&lt;p&gt;As you embark into more advanced territories, the likes of transistors and integrated circuits (ICs) take centre stage, enabling the incredible devices and systems we rely on daily. Each of these components and technologies plays a unique role, from amplifying signals to controlling power and even facilitating wireless communication.&lt;/p&gt;

&lt;p&gt;It's within this intricate framework that microcontrollers find their place, offering the power to control, automate, and create. Whether you're exploring &lt;a href="https://dev.to/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino&lt;/a&gt; for creative projects or delving into the world of 8051 microcontrollers for practical applications, these tiny but mighty devices open the door to endless possibilities.&lt;/p&gt;

&lt;p&gt;Ultimately, electronics is a journey that allows creators like me 😜 to bring their visions to life. With the right knowledge and tools, the possibilities are limitless, from designing smart homes to crafting interactive art installations. It's a world where curiosity and innovation unite to shape the technology of tomorrow.&lt;/p&gt;

&lt;p&gt;So, whether you're a developer, a hobbyist, or a curious explorer, the electronic realm is yours to explore, experiment with, and innovate upon.&lt;/p&gt;

&lt;p&gt;And that's a wrap on the basics of electronics. In the future, we'll dive deeper into the fascinating world of electronic terminologies. Stay tuned for more electrifying insights. Signing off, Krypton.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino UNO Explained: Features, Shields, IDE: Nano, ESP32&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/interfacing-dot-matrix-display-with-arduino"&gt;Interface Dot Matrix Display with Arduino: Code &amp;amp; Connections&lt;/a&gt;&lt;br&gt;
Keywords:&lt;br&gt;
&lt;a href="https://madhusudan.live/blog/tag/embedded"&gt;embedded&lt;/a&gt;, &lt;br&gt;
&lt;a href="https://madhusudan.live/blog/tag/electronics"&gt;electronics&lt;/a&gt;, &lt;a href="https://madhusudan.live/blog/tag/microcontroller"&gt;microcontroller&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>arduino</category>
      <category>embedded</category>
      <category>electronics</category>
      <category>microcontroller</category>
    </item>
    <item>
      <title>Basic Electronic Components with Functions &amp; Working: PDF</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Sat, 04 Nov 2023 23:59:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/basic-electronic-components-with-functions-working-pdf-hp8</link>
      <guid>https://dev.to/madhusudanlive/basic-electronic-components-with-functions-working-pdf-hp8</guid>
      <description>&lt;p&gt;Hey there, future tech gurus and engineering enthusiasts! Are you ready to dive into the electrifying world of basic electronic components? I'm thrilled to be your virtual guide on this exciting journey! Now, I know that talking about electronic components might sound a bit frightening, but fear not! I'll make this topic as clear and engaging as possible.&lt;/p&gt;

&lt;p&gt;Hey everyone! So, let's talk about electronic components, shall we? These little guys are the foundation of every electronic device you can imagine, like smartphones, laptops, and even those cool wearable gadgets we can't get enough of. They're the building blocks of any electronic device you can imagine! Learning these components is a must, as no electronic project can be completed without these building blocks.&lt;/p&gt;

&lt;p&gt;So, what exactly are these basic components, you ask? Well, these fundamental components are resistors, capacitors, and inductors, the passive components. These components are simple but the most important ones and are present in almost every circuit. Their functioning ensures everything runs smoothly.&lt;/p&gt;

&lt;p&gt;Now comes the transistors, diodes, and integrated circuits, these are the active components, and are responsible for amplifying signals, controlling electronic flow, and making all those mind-boggling complex calculations.&lt;/p&gt;

&lt;p&gt;But wait, did you see, I used active components and passive components? You may ask, what are active components? The electronic components that can modify, amplify, modulate and switch the electrical signals are called as active components. These components need an external power source for their operation. They are transistors, diodes, Integrated Circuits, etc.&lt;/p&gt;

&lt;p&gt;Now, what are passive components? Passive components include resistors, capacitors and inductors. These components can filter, modify or store electrical signals without actively controlling or amplifying them. So basically, the electronic components that do not require any additional power source and can modify, filter, or store the electrical signals are called passive components.&lt;/p&gt;

&lt;p&gt;We will discuss all these components in detail, along with their functions, symbols, units, formulae, and relevant laws if any, so hold tight for this electrifying journey.&lt;/p&gt;

&lt;p&gt;But wait, there's more! We also have sensors actuators, and microcontrollers. They are like tiny spies (James Bond) that gather information from the outside world, think of temperature, light intensity, motion or sound, and even the touch, we will go through these as well, as they are the senses and brains of our electronic world.&lt;/p&gt;

&lt;p&gt;Okay, so let's explore one by one:&lt;/p&gt;

&lt;h2&gt;
  
  
  Resistors:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3J5y_lnw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/resistors.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3J5y_lnw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/resistors.jpg" alt="Photo of resistors with colour code on their body" title="resistors" width="800" height="560"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;resistors&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;These tiny devices are called as resistors, their function is to limit the speed of electron flow i.e. current. Think of them as speed breakers, similar to how speed breakers encourage us to limit the speed while driving, the resistors function the same for controlling the flow of electric current.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of resistors:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;there are two main types of resistors&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;fixed resistors&lt;/strong&gt; :&lt;/p&gt;

&lt;p&gt;The resistance value is fixed on these resistors and can't be changed, examples of these resistors are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Carbon Film Resistor&lt;/li&gt;
&lt;li&gt;Metal Film Resistor&lt;/li&gt;
&lt;li&gt;Wire wound Resistor&lt;/li&gt;
&lt;li&gt;Thick Film Resistor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;variable resistors:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The resistors whose value i.e. resistance can be changed or varied are called as variable resistors. e.g. potentiometers, presets, etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resistor colour code
&lt;/h3&gt;

&lt;p&gt;For fixed resistors, their value can be calculated by looking at their colours, the stripes that you can see in the above image have special meanings, refer to the following table to see their values.&lt;/p&gt;

&lt;p&gt;Generally, these resistors have 3 or 4 bands, but they can also be up to 6 bands, but the logic to calculate their values is similar.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;colour&lt;/th&gt;
&lt;th&gt;band&lt;/th&gt;
&lt;th&gt;multiplier&lt;/th&gt;
&lt;th&gt;tolerance&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Black&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1Ω&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Brown&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10 Ω&lt;/td&gt;
&lt;td&gt;±1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Red&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;100 Ω&lt;/td&gt;
&lt;td&gt;±2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Orange&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;1 KΩ&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yellow&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;10 KΩ&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Green&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;100 Ω&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blue&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;1 MΩ&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Violet&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grey&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;White&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gold&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;0.1 Ω&lt;/td&gt;
&lt;td&gt;±5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Silver&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;0.01 Ω&lt;/td&gt;
&lt;td&gt;±10%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;For calculating 3 band resistor value:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1st band: it signifies 1st digit&lt;/p&gt;

&lt;p&gt;2nd band: it signifies the 2nd digit&lt;/p&gt;

&lt;p&gt;3rd band: this band signifies a multiplier&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For calculating 4 band resistor value:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1st band: it signifies 1st digit&lt;/p&gt;

&lt;p&gt;2nd band: it signifies the 2nd digit&lt;/p&gt;

&lt;p&gt;3rd band: this band signifies a multiplier&lt;/p&gt;

&lt;p&gt;4th band: this band signifies tolerance&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For 5, 6 band resistors:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The last 2 bands have the same meaning but the first 3 or 4 bands are the significant digits in the case of 5 and 6-band resistors respectively&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yv7RjLtv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/resistor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yv7RjLtv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/resistor.png" alt="Photo of Resistor with 5 striped bands on its body" title="resistor with colour code" width="400" height="104"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;resistor with colour code&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Here in this example&lt;/p&gt;

&lt;p&gt;1st three bands refer to the 1st three significant digits the 4th band is the multiplier, the last one is the tolerance&lt;/p&gt;

&lt;p&gt;let's calculate:&lt;/p&gt;

&lt;p&gt;put the 1st 3 digits as it is: i.e. 426, next is a multiplier i.e. 10^3, last one is tolerance i.e. ±10%&lt;/p&gt;

&lt;p&gt;putting it all together: 426KΩ ± 10%&lt;/p&gt;

&lt;p&gt;Some important formulae about resistors:&lt;/p&gt;

&lt;p&gt;Ohm’s law:&lt;/p&gt;

&lt;p&gt;It states that the current flowing through a conductor is directly proportional to the voltage across its two ends. &lt;a href="https://en.wikipedia.org/wiki/Ohm%27s_law"&gt;Read more on Ohm’s law&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Capacitors
&lt;/h2&gt;

&lt;p&gt;A capacitor is an electronic device that stores electric energy in the form of electrical charge accumulated on their plates. When a capacitor is connected to a power source, it gets charged as the charges accumulate on its plates. Soon the power source is disconnected, the charges on the plate are released, and hence the capacitor acts like a mini battery.&lt;/p&gt;

&lt;p&gt;But hey, did you see, I said a capacitor stores the charges in its plates, so let me show you the internals of a capacitor.&lt;/p&gt;

&lt;p&gt;See these grey parts below, these are called as the plates and the blackish material inside is called a dielectric. The plates of the capacitor are conducting, but the dielectric material is an insulating or non-conducting material. The dielectric material prevents the flow of electrons, but it allows the electric field to exist.&lt;/p&gt;

&lt;p&gt;The capacitor has a property called capacitance, capacitance is defined as the ratio of electric charge (Q) stored in the capacitor to the voltage (V) applied to it and its unit is farads(F).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C = Q / V&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9L_suSPd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/capacitor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9L_suSPd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/capacitor.png" alt="Construction of capacitor" title="Construction of capacitor" width="350" height="300"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Construction of capacitor&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Types of capacitors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Following are the types of capacitors along with their dielectric material, capacitance, voltage ratings and important characteristics.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Ceramic Capacitor:&lt;br&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Ceramic&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Capacitance&lt;/strong&gt; : Typically ranges from picofarads (pF) to microfarads (uF).&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Can range from a few volts to hundreds of volts.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt; : Commonly used for high-frequency applications, compact size, and low cost.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Electrolytic Capacitor:&lt;br&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Oxide layer&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Capacitance&lt;/strong&gt; : Higher values, often in microfarads (uF) to farads (F).&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Usually for higher voltage applications.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt; : Polarized (must be connected with the correct polarity), higher capacitance values, used for power supply filtering.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tantalum Capacitor:&lt;br&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Tantalum Oxide&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Capacitance&lt;/strong&gt; : Typically in the range of microfarads (uF) to farads (F).&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Suitable for higher voltage applications.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt; : Polarized, high stability, used in applications where reliability is critical.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Film Capacitor:&lt;br&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Various types, including polyester (Mylar), polypropylene, and polyethylene.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Capacitance&lt;/strong&gt; : Ranges from picofarads (pF) to microfarads (uF).&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Varies, but can handle moderate voltage levels.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt; : Non-polarized, good for precision applications, and available in various materials like polyester, polypropylene, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Variable Capacitor:&lt;br&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Conductive polymer&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Capacitance&lt;/strong&gt; : Adjustable, often used in tuning circuits.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Varies, typically low.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt; : Designed to vary capacitance for tuning purposes in radios and other devices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supercapacitor:&lt;br&gt;
&lt;strong&gt;Dielectric Material&lt;/strong&gt; : Electrochemical double layer.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Capacitance&lt;/strong&gt; : Typically in the range of farads (F) or even hundreds of farads.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Voltage Rating&lt;/strong&gt; : Can handle moderate voltages.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt; : Known for high capacitance, rapid charge/discharge, and used in applications requiring quick energy storage and release.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Applications of capacitors:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Capacitors are like tiny energy storage tanks in electronics.&lt;/strong&gt; They have three main jobs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Filter Noise:&lt;/strong&gt; They clean up electrical signals, like removing static from music.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Store Energy:&lt;/strong&gt; They save and release electrical energy when needed, like a battery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start Motors:&lt;/strong&gt; In things like fans or toy cars, capacitors give the initial push to make them start spinning. You might have seen your fans, those big cylinders-like guys.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block Static:&lt;/strong&gt; They keep your computer chips safe from sudden electricity spikes, like a shield.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Signal Boost:&lt;/strong&gt; In radios and antennas, capacitors help to make weak signals stronger, like using a magnifying glass to see things better.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Diodes
&lt;/h2&gt;

&lt;p&gt;Here comes the semiconductor devices, diodes are basically semiconductor devices that allow the flow of electric current in only one direction and block the other.&lt;/p&gt;

&lt;p&gt;A diode is a two-terminal device, and it is made by joining P-Type and N-Type semiconductors.&lt;/p&gt;

&lt;p&gt;Now, you may ask what are these semiconductors? What are P-type and N-type semiconductors? A semiconductor, as its name suggests, is neither a conductor nor an insulator, its conductivity lies between them, meaning that, a semiconductor device acts as a conductor when it meets certain conditions otherwise it acts as an insulator.&lt;/p&gt;

&lt;p&gt;Let me break it down even further, a semiconductor, when it meets certain conditions, allows the electric current to flow and blocks it otherwise.&lt;/p&gt;

&lt;p&gt;The electrons in the outermost orbit of the semiconductor are responsible for this behaviour, the valence electrons or the valency of these semiconductor atoms, the construction is out of scope, &lt;a href="https://en.wikibooks.org/wiki/Semiconductor_Electronics/Diode/Construction_and_Operation"&gt;read more about diodes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now P-type and N-type semiconductors are nothing but when p-type impurities are added to these semiconductors they form a p-type semiconductor, similarly, when an n-type impurity is added to it, they form an n-type semiconductor&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u7HgSryG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/construction-of-diode.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u7HgSryG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/construction-of-diode.png" alt="Construction of diode" title="Construction of diode" width="307" height="150"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Construction of diode&lt;/em&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  Types and applications of diodes
&lt;/h3&gt;

&lt;p&gt;There are various types of diodes, each designed for specific applications. Here's an overview of some common types of diodes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;PN Junction Diode:&lt;/strong&gt; The standard diode is composed of P-N semiconductor materials. Allows current to flow in one direction while blocking it in the other.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Light Emitting Diode (LED):&lt;/strong&gt;Emits light when current flows through it. Widely used in displays, indicators, and lighting applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zener Diode:&lt;/strong&gt; Designed for voltage regulation and voltage reference applications. Provides a constant voltage across its terminals when operated in the reverse breakdown region.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schottky Diode:&lt;/strong&gt; Known for its fast switching capabilities. Used in high-frequency and high-speed applications. Has a lower forward voltage drop compared to standard diodes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Varactor Diode (Varicap Diode):&lt;/strong&gt;Used in tuning circuits, such as in radio receivers, to change the capacitance and tune specific frequencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avalanche Diode:&lt;/strong&gt; Operates in the avalanche breakdown region. Used in avalanche photodiodes for detecting light.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Transistors
&lt;/h2&gt;

&lt;p&gt;Transistors are fundamental electronic components that play a crucial role in amplifying and controlling electrical signals in our electronic world of circuits. They are often described as the "building blocks" of modern electronics.&lt;/p&gt;

&lt;p&gt;Without transistors, it would be challenging to build the complex electronic devices and systems that have become an integral part of our daily lives.&lt;/p&gt;

&lt;p&gt;In other words, transistors act like electronic switches and signal boosters that allow us to create everything from simple on-off switches to powerful computers. yes, you saw it right, the computer CPUs that we use have millions of transistors in them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5Ad18X6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/transistor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5Ad18X6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/transistor.png" alt="Photo of a transistor" title="transistor" width="188" height="345"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;transistor&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Here's an overview of transistors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bipolar Junction Transistor (BJT):&lt;/strong&gt;BJTs are three-layer semiconductor devices (N-P-N or P-N-P). They amplify current and can be used as switches. Commonly used in analog applications and amplifiers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Field-Effect Transistor (FET):&lt;/strong&gt;FETs control current flow using an electric field. They are classified into MOSFETs (Metal-Oxide-Semiconductor FET) and JFETs (Junction FET). MOSFETs are commonly used in digital and power applications, while JFETs are used in low-frequency applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MOSFET (Metal-Oxide-Semiconductor FET):&lt;/strong&gt;MOSFETs are widely used in digital and power electronics. They have low power consumption, making them suitable for integrated circuits (ICs).&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Key Functions and Significance:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Amplification:&lt;/strong&gt; Transistors amplify weak electrical signals, making them stronger. This is essential in audio amplifiers, radios, and other signal-processing applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Switching:&lt;/strong&gt; Transistors can act as electronic switches, controlling the flow of electrical current. In digital circuits, they enable us the representation of binary logic i.e. 0s and 1s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Signal Modulation:&lt;/strong&gt; Transistors also play a vital role in amplitude modulation (AM) and frequency modulation (FM) in communication systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voltage Regulation:&lt;/strong&gt; They help regulate voltage levels in power supplies, ensuring stable and precise output voltages.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Integrated Circuits (ICs)
&lt;/h2&gt;

&lt;p&gt;Integrated Circuits often called ICs are miniature electronic circuits made up of semiconductor materials, mostly silicon. you might have seen those black squares/rectangles with legs.&lt;/p&gt;

&lt;p&gt;These circuits house thousands, millions, or even billions of electronic components, including transistors, resistors, capacitors, and more, all on a single chip.&lt;/p&gt;

&lt;p&gt;The components are interconnected to perform various functions, from processing data to controlling electrical signals.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Aen64TD0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/integrated_circuits.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Aen64TD0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/integrated_circuits.jpg" alt="Photo of Integrated Circuits" title="Integrated Circuits" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Integrated Circuits&lt;/em&gt;&lt;/p&gt;



&lt;h3&gt;
  
  
  Types of Integrated Circuits
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Analog ICs:&lt;/strong&gt; Handle continuous signals for tasks like amplification and voltage regulation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digital ICs:&lt;/strong&gt; Process discrete binary signals (0s and 1s) for computing and memory functions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mixed-Signal ICs:&lt;/strong&gt; Combine analog and digital circuitry, used in devices like smartphones.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RF ICs:&lt;/strong&gt; Specialized for radio-frequency applications, like amplifying and processing wireless signals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory ICs:&lt;/strong&gt; Store and retrieve data, from computer DRAM to flash memory in USB drives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Power Management ICs (PMICs):&lt;/strong&gt; Regulate voltage and manage power in electronic devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communication ICs:&lt;/strong&gt; Enable data transmission, including Ethernet controllers and wireless communication.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Microcontrollers
&lt;/h2&gt;

&lt;p&gt;These are small, &lt;a href="https://madhusudan.live/blog/tag/embedded"&gt;embedded&lt;/a&gt; computers on a chip, used to control devices and processes in appliances, automobiles, and industrial systems. they are like the brains of the system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qcUJ_nKr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/microcontrollers.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qcUJ_nKr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/blog/electronic-components/microcontrollers.jpg" alt="Photo of ESP8266, ESP32, HC05 and Nordic Semiconductors’ development board" title="Photo of ESP8266, ESP32, HC05 and Nordic Semiconductors’ development board" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Photo of ESP8266, ESP32, HC05 and Nordic Semiconductors’ development board&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;8051 microcontrollers&lt;/strong&gt; : This intel-developed family of microcontrollers is widely used. these are 8-bit microcontrollers suitable for small projects, robotics, and simple applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Arduino:&lt;/strong&gt; well &lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino&lt;/a&gt; is not a microcontroller but for its wide use and simplicity I’m adding here, that &lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266#arduino-development-boards"&gt;Arduino boards&lt;/a&gt; are basically development boards based on the ATMega328P microcontroller, they make the development and prototyping of &lt;a href="https://madhusudan.live/blog/tag/embedded"&gt;embedded systems&lt;/a&gt; a lot easier, and they have &lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266#understanding-arduino-programming-language"&gt;Arduino IDE&lt;/a&gt;, framework and support for several libraries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wireless microcontrollers:&lt;/strong&gt; ESP32, ESP8266, and Nordic Semiconductor MCUs are a few to list, they provide wireless connectivity, and some offer Wi-Fi, Bluetooth or other networking protocols and hence are suitable for IoT-based applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Bonus: PDF download
&lt;/h2&gt;



&lt;p&gt;Thanks for reading this Article! As a token of our appreciation, download a free bonus PDF with Basic Electronic Components for Embedded Systems and IoT. Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/electronic-components/basic-electronic-components-madhusudan.live.pdf"&gt;Download Bonus PDF&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In the world of electronics, understanding the diverse range of components and technologies is crucial for those who seek to innovate, whether you're a seasoned developer or a curious beginner. From fundamental concepts like active components to the intricate workings of capacitors and diodes, the electronic landscape is vast and rich with possibilities.&lt;/p&gt;

&lt;p&gt;As you embark into more advanced territories, the likes of transistors and integrated circuits (ICs) take centre stage, enabling the incredible devices and systems we rely on daily. Each of these components and technologies plays a unique role, from amplifying signals to controlling power and even facilitating wireless communication.&lt;/p&gt;

&lt;p&gt;It's within this intricate framework that microcontrollers find their place, offering the power to control, automate, and create. Whether you're exploring &lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino&lt;/a&gt; for creative projects or delving into the world of 8051 microcontrollers for practical applications, these tiny but mighty devices open the door to endless possibilities.&lt;/p&gt;

&lt;p&gt;Ultimately, electronics is a journey that allows creators like me 😜 to bring their visions to life. With the right knowledge and tools, the possibilities are limitless, from designing smart homes to crafting interactive art installations. It's a world where curiosity and innovation unite to shape the technology of tomorrow.&lt;/p&gt;

&lt;p&gt;So, whether you're a developer, a hobbyist, or a curious explorer, the electronic realm is yours to explore, experiment with, and innovate upon.&lt;/p&gt;

&lt;p&gt;And that's a wrap on the basics of electronics. In the future, we'll dive deeper into the fascinating world of electronic terminologies. Stay tuned for more electrifying insights. Signing off, Krypton.&lt;/p&gt;

</description>
      <category>embedded</category>
      <category>electronics</category>
      <category>microcontroller</category>
    </item>
    <item>
      <title>Interface Dot Matrix Display with Arduino: Code &amp; Connections</title>
      <dc:creator>Krypton | Madhusudan Babar</dc:creator>
      <pubDate>Sun, 29 Oct 2023 18:00:00 +0000</pubDate>
      <link>https://dev.to/madhusudanlive/interface-dot-matrix-display-with-arduino-code-connections-4b8g</link>
      <guid>https://dev.to/madhusudanlive/interface-dot-matrix-display-with-arduino-code-connections-4b8g</guid>
      <description>&lt;p&gt;Displays play a crucial role to communicate information, in any institute, organization or public. The information may be related to current situations, updates, or can be advertisements about the products. People are currently adapting to the idea of the world having information at their fingertips.A Dot-Matrix Display is made up of LEDs arranged or wired in the form of a matrix. Symbol, Graphics, Characters, Alphabets, and Numbers can be displayed with a Dot Matrix Display.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/interfacing-dot-matrix-display-with-arduino#understanding-dot-matrix-displays"&gt;Understanding Dot Matrix Displays&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;A Dot-Matrix Display is made up of light-emitting diodes arranged or wired in the form of a matrix. Symbols, Graphics, Characters, Alphabets, and Numbers are displayed in applications by using Dot-Matrix Display and can be displayed together in constant as well as scrolling motion. Variable dimensions in which Dot Matrix Display is manufactured are such as &lt;code&gt;5x7&lt;/code&gt;, &lt;code&gt;8x8&lt;/code&gt;, &lt;code&gt;16x8&lt;/code&gt;, &lt;code&gt;128x16&lt;/code&gt;, &lt;code&gt;128x32&lt;/code&gt; and &lt;code&gt;128x64&lt;/code&gt; where the first number shows LEDs in rows and the second number shows LEDs in columns, respectively. Displays are available and can be manufactured in different colours such as Red, Green, Yellow, Blue, Orange, and White and multicolour.&lt;/p&gt;

&lt;p&gt;In DMD, If we powered different LEDs separately we need different I/O pins physically which is not reliable In an 8×8 matrix, the LED's would need 64 I/O pins, one for each LED pixel. In order to minimize the number of pins required to drive them, many LEDs are wired together in rows and columns. Therefore, by wiring all the anodes together in rows (R1 through R8), and cathodes in columns (C1 through C8), the required number of I/O pins is reduced to. 16. Each LED is addressed by its row and column number. You may manufacture it can be as common cathode or common anode. The matrix pattern is made either in row anode-column cathode or row cathode-column anode pattern. In row anode-column cathode pattern, the entire row is anode while all columns serve as cathode which is shown below, and it is vice versa in row cathode-column anode pattern. If we want to display any character or number then according to that number we have to pull down or high the pins of the matrix. For example, we have to enable row and the column pins as per the table given below to display a character M where the on LED is denoted by red dot.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/interfacing-dot-matrix-display-with-arduino#displaying-the-letter-m-on-a-dot-matrix-display"&gt;Displaying the Letter “M” on a Dot Matrix Display&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jUVDdtd3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/images/DMD_MATRIX.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jUVDdtd3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/images/DMD_MATRIX.png" alt="Chart for displaying character M on Dot matrix Display" title="Chart for displaying character M on Dot matrix Display" width="556" height="202"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Chart for displaying character M on Dot matrix Display&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/interfacing-dot-matrix-display-with-arduino#creating-the-system-design-and-circuit-diagram"&gt;Creating the System Design and Circuit Diagram&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The following fig shows the interfacing diagram of Dot Matrix Display With &lt;a href="https://madhusudan.live/tag/arduino"&gt;Arduino&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h7WK_pFF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/images/DMD_Connections.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h7WK_pFF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/krypt9/image/upload/f_avif%2Cq_auto:good%2Cc_lfill%2Cg_auto%2Cw_2400/madhusudanlive/images/DMD_Connections.png" alt="Circuit diagram of dot matrix display interfaced with Arduino" title="Circuit diagram of dot matrix display interfaced with Arduino" width="516" height="446"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Circuit diagram of dot matrix display interfaced with Arduino&lt;/em&gt;&lt;/p&gt;



&lt;p&gt;Above fig shows hardware interconnection between &lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266#arduino-nano-features"&gt;Arduino nano&lt;/a&gt; (ATMEGA328P), HUB (pins) of Dot matrix display(DMD 16*96)&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://madhusudan.live/blog/interfacing-dot-matrix-display-with-arduino#pin-configuration-of-the-dot-matrix-display-dmd"&gt;Pin Configuration of the Dot Matrix Display (DMD)&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pin no. 1&lt;/strong&gt; : It is a (N0E) enable pin used to enable our main element of the project which is a dot matrix display&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin no. 2&lt;/strong&gt; : Digital communication pin A is connected to pin no 9 which is the D6 pin that is the digital out pin of Arduino&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin no. 3, 5, 7, 9, 11, 13, 15&lt;/strong&gt; : are connected to pin no. 4 which is the ground pin of Arduino&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin no. 4&lt;/strong&gt; : digital communication pin B is connected to pin no 10 which is a D7 pin which is also a digital out pin&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin no. 6&lt;/strong&gt; : Data line C for communication&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin no. 8&lt;/strong&gt; : this is the CLK pin connected to pin no 16 which is the D13 pin of Arduino&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin no. 10&lt;/strong&gt; : this is a system clock pin connected to pin 11 of Arduino, which is the D8 pin&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pin no. 12&lt;/strong&gt; : which is system ready check is connected to pin no 14 of the Arduino which is a D14 pin&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/interfacing-dot-matrix-display-with-arduino#scrolling-text-on-a-dot-matrix-display-dmd"&gt;Scrolling Text on a Dot Matrix Display (DMD)&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The coding part&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;SPI.h&amp;gt;
#include &amp;lt;DMD.h&amp;gt;
#include &amp;lt;TimerOne.h&amp;gt;
#include "SystemFont5x7.h"
#include "Arial_Black_16_ISO_8859_1.h"

#define DISPLAYS_ACROSS 3
#define DISPLAYS_DOWN 1

DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);

void ScanDMD() {
  dmd.scanDisplayBySPI();
}

void setup() {
  Timer1.initialize( 3000 );
  Timer1.attachInterrupt( ScanDMD );
  dmd.clearScreen( true );
  Serial.begin(115200);
}

void loop() {
  dmd.clearScreen( true );
  dmd.selectFont(Arial_Black_16_ISO_8859_1);
  const char *MSG = "WELCOME TO VED ELECTRONICS";
  dmd.drawMarquee(MSG, strlen(MSG), (30 * DISPLAYS_ACROSS) - 1, 0);
  long start = millis();
  long timer = start;

  while(1) {
    if ((timer + 39.9) &amp;lt; millis()) {
      dmd.stepMarquee(-1, 0);
      timer = millis();
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;a href="https://dev.to/blog/interfacing-dot-matrix-display-with-arduino#conclusion"&gt;Conclusion&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The prototype of the Arduino-based display toolkit was effectively designed. This prototype has to be facilities to be integrated with the display board it can solve the problem of instant information transfer on the campus, and it is the best replacement for regular flex boards. In the future, we can add an IR sensor to detect human motion where the display is mounted and the output of that sensor given to the primary of the relay. If the IR sensor detects a human around display then its output is given to display and the NO of the relay get closed, and the display will display our message for some programmed time. If there is no action around the display, then it will undergo standby mode and reduced power consumption.&lt;/p&gt;

&lt;p&gt;.ct-268635{color:#F92672;}&lt;br&gt;
.ct-183901{color:#F8F8F2;}&lt;br&gt;
.ct-141567{color:#E6DB74;}&lt;br&gt;
.ct-253592{color:#A6E22E;}&lt;br&gt;
.ct-674544{color:#AE81FF;}&lt;br&gt;
.ct-049000{color:#66D9EF;font-style:italic;}&lt;/p&gt;

&lt;p&gt;&lt;a href="https://madhusudan.live/blog/what-is-arduino-uno-boards-ide-programming-esp32-esp8266"&gt;Arduino UNO Explained: Features, Shields, IDE: Nano, ESP32&lt;/a&gt;, &lt;a href="https://madhusudan.live/blog/interfacing-16x2-lcd-with-8051"&gt;Interfacing a 16x2 LCD display with 8051 microcontrollers&lt;/a&gt;&lt;br&gt;
Keywords:&lt;br&gt;
&lt;a href="https://madhusudan.live/tag/embedded"&gt;embedded&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/dmd"&gt;dmd&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/arduino"&gt;arduino&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/display"&gt;display&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/microcontroller"&gt;microcontroller&lt;/a&gt;, &lt;a href="https://madhusudan.live/tag/electronics"&gt;electronics&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

</description>
      <category>embedded</category>
      <category>dmd</category>
      <category>arduino</category>
      <category>display</category>
    </item>
  </channel>
</rss>
