Fully Electronics
Technology | Electronics | Projects | Kits | Reviews
Technology | Electronics | Projects | Kits | Reviews
Edge computing refers to the practice of processing data near the edge of the network, where data is generated and often where it is needed, rather than in a centralized data processing location. This can help to reduce latency and improve the speed of data processing, as data does not need to be transmitted over long distances to a centralized location for processing. Edge computing is often used in situations where real-time data processing is required, such as in Internet of Things (IoT) applications, or in situations where it is not practical or cost-effective to transmit large amounts of data to a centralized location for processing.
Cloud computing refers to the practice of storing and processing data in remote locations, accessed over the internet. It allows users to access data and applications from any device with an internet connection, rather than storing data and running applications on a local computer or server. Cloud computing can be a highly scalable and cost-effective solution, as users only pay for the resources they consume and do not need to worry about the underlying infrastructure.
Edge computing, on the other hand, involves bringing computing power and data storage closer to the edge of the network, where data is generated and often where it is needed. This can be useful in situations where real-time processing is required, or where it is not practical or cost-effective to transmit large amounts of data to a centralized location for processing.
In general, cloud computing is more suitable for tasks that can be easily parallelized and do not require low latency, such as batch processing and data analytics. Edge computing is more suitable for tasks that require real-time processing or low latency, such as IoT applications or augmented reality.
By bringing computing power and data storage closer to the edge of the network, edge computing can help to reduce latency and improve the speed of data processing.
Edge computing can help to improve the reliability of data processing by reducing the dependence on centralized data centers, which can be vulnerable to outages and other issues.
Sensitive data can be processed and stored locally at the edge, rather than being transmitted over the internet to a centralized data center, which can help to improve security.
Edge computing can allow for more flexible and customized data processing, as it can be tailored to the specific needs of a particular location or application.
Edge computing can help to reduce the cost of data processing by eliminating the need to transmit large amounts of data over long distances to a centralized data center.
Edge computing can allow for more efficient scaling, as it can be easier to add computing resources at the edge of the network as needed, rather than having to scale up a centralized data center.
By processing data locally at the edge, edge computing can help to enhance privacy, as sensitive data is not transmitted over the internet to a centralized data center.
There are many examples of edge computing in use today. Some common applications of edge computing include:
One example of how edge computing can be used in the Internet of Things (IoT) is in a smart city application.
In a smart city, sensors and other IoT devices are deployed throughout the city to collect data on various aspects of the city’s operations, such as traffic flow, air quality, and energy usage. This data is then analyzed to identify trends and patterns, and to make decisions about how to optimize the city’s operations.
Using edge computing, this data can be processed and analyzed locally at the edge of the network, near where the data is generated. This can help to reduce latency and improve the speed of data processing, as the data does not need to be transmitted over long distances to a centralized location for processing.
For example, traffic sensors placed throughout the city could collect data on traffic flow and transmit it to edge computing devices located at key intersections. The edge computing devices could then analyze the data in real-time to identify congestion and adjust traffic signals to optimize traffic flow. This could help to reduce congestion, improve air quality, and save energy.
Overall, edge computing can be a powerful tool for enhancing the capabilities of IoT systems in smart cities and other applications.
Edge computing can be used to improve the performance of virtual reality (VR) and augmented reality (AR) systems by enabling real-time processing and rendering of VR and AR content.
In a VR or AR system, data from sensors and other devices is used to create a virtual or augmented environment for the user. This data must be processed and rendered in real-time in order to provide a seamless and immersive experience for the user.
Using edge computing, this data can be processed and rendered locally at the edge of the network, rather than being transmitted to a centralized location for processing. This can help to reduce latency and improve the speed and reliability of the VR or AR system.
For example, in an AR headset, edge computing could be used to process and render AR content in real-time, based on data collected from the headset’s sensors and cameras. This could enable the AR headset to provide a more seamless and responsive AR experience for the user.
Overall, edge computing can be a useful tool for enhancing the performance and reliability of VR and AR systems, and enabling a more immersive user experience.
Edge computing can be used to improve the performance of autonomous vehicles by enabling real-time processing and decision making based on data from the vehicle’s sensors and cameras.
In an autonomous vehicle, data from sensors such as cameras, lidar, and radar is used to perceive the vehicle’s surroundings and make decisions about how to navigate safely. This data must be processed and analyzed in real-time in order for the vehicle to respond appropriately to its environment.
Using edge computing, this data can be processed and analyzed locally at the edge of the network, rather than being transmitted to a centralized location for processing. This can help to reduce latency and improve the speed and reliability of the autonomous vehicle’s decision making.
For example, an autonomous vehicle could use edge computing to process and analyze data from its sensors in real-time, allowing it to detect and respond to obstacles in its path, and make decisions about how to navigate safely.
Overall, edge computing can be a useful tool for enhancing the performance and reliability of autonomous vehicles, and enabling them to make real-time decisions based on data from their sensors and cameras.
One example of a company that has implemented edge computing is Akamai Technologies, a provider of cloud services for delivering and securing online content.
Akamai implemented edge computing as part of its Intelligent Edge Platform, which is a network of servers and other computing resources located at the edge of the internet. The Intelligent Edge Platform allows Akamai to process and deliver online content more efficiently, by bringing computing resources closer to the users who are requesting the content.
By implementing edge computing, Akamai has been able to reduce latency and improve the speed of content delivery, resulting in a better user experience for its customers. The company has also been able to reduce its reliance on centralized data centers, which has helped to improve the reliability and scalability of its services.
Edge computing can be implemented using both hardware and software.
Hardware components of an edge computing system may include:
Software components of an edge computing system may include:
The ESP32 is a microcontroller that can be used to build edge computing systems. The ESP32 is a low-cost, low-power device that includes a processor, memory, and connectivity features, such as WiFi and Bluetooth.
One way to use the ESP32 for edge computing is to program it to perform data processing and analysis tasks locally, using the processor and memory on the device. The ESP32 can then be connected to sensors and other IoT devices to collect data that is processed and analyzed by the device.
For example, an ESP32 could be used to build an edge computing device that monitors temperature and humidity in a room, and adjusts the temperature of the room based on the data collected. The ESP32 could be programmed to process and analyze the data from the sensors in real-time, and to send control signals to a heating and cooling system to adjust the temperature of the room as needed.
Overall, the ESP32 can be a useful tool for building edge computing systems, due to its low cost, low power consumption, and versatile capabilities.
Here is an example of how you could use the ESP32 to build an edge computing device that monitors temperature and humidity in a room and adjusts the temperature based on the data collected:
#include <Arduino.h>
#include <DHT.h> // Library for the DHT sensor
#include <PID_v1.h> // Library for the PID controller
#define DHT_PIN 2 // Pin number for the DHT sensor
#define HEATER_PIN 14 // Pin number for the heater
#define DHT_TYPE DHT11 // Type of DHT sensor (DHT11, DHT22, etc.)
// Parameters for the PID controller
#define Kp 1
#define Ki 0.1
#define Kd 0.1
#define SAMPLE_TIME 1000 // Sample time in milliseconds
// Setpoint for the temperature (in degrees Celsius)
#define TEMPERATURE_SETPOINT 25
// Variables for the PID controller
double input = 0;
double output = 0;
double setpoint = TEMPERATURE_SETPOINT;
PID pid(&input, &output, &setpoint, Kp, Ki, Kd, REVERSE);
DHT dht(DHT_PIN, DHT_TYPE); // Initialize the DHT sensor
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
dht.begin();
pid.SetSampleTime(SAMPLE_TIME); // Set the sample time for the PID controller
pinMode(HEATER_PIN, OUTPUT); // Set the heater pin as an output
pid.SetMode(AUTOMATIC); // Enable the PID controller
}
void loop() {
// put your main code here, to run repeatedly:
// Read the temperature and humidity from the DHT sensor
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Set the input value for the PID controller
input = temperature;
// Compute the output value from the PID controller
pid.Compute();
// Set the output value as the duty cycle of the heater
analogWrite(HEATER_PIN, output);
// Print the temperature and humidity to the serial console
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print("C, Humidity: ");
Serial.print(humidity);
Serial.println("%");
// Delay for the sample time
delay(SAMPLE_TIME);
}
This code uses a DHT sensor to measure the temperature and humidity in the room, and a PID controller to adjust the duty cycle of a heater based on the temperature. The setpoint for the temperature is set to 25 degrees Celsius, and the PID controller is used to try to maintain the temperature at this setpoint by adjusting the duty cycle of the heater. The temperature and humidity are printed to the serial console, so you can monitor the performance of the system.
To run this code, you will need to install the Arduino Integrated Development Environment (IDE) and the necessary libraries for the ESP32 and the DHT sensor. You can find instructions for setting up the Arduino IDE and installing the libraries at https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html#get-started-
Overall, while edge computing can be a powerful tool for certain types of data processing tasks, it is important to carefully consider its limitations and whether it is the right fit for a particular application.