Artificial Intelligence (AI) has come a long way, from science fiction fantasies to real-world applications that are reshaping industries. Among the most revolutionary advancements is ChatGPT, a conversational AI tool that has not only captivated casual users but also found its way into various professional domains. While most people know ChatGPT as a chatbot capable of holding natural conversations, its true power lies in its transformative impact on industries—often in ways people don’t immediately recognize.
Let’s delve into how ChatGPT and similar AI tools are quietly revolutionizing industries and the unexpected ways they’re shaping our future.
1. Redefining Customer Service
What People Know:
ChatGPT can answer questions and resolve basic queries, making it an excellent customer service assistant.
What People Don’t Know:
ChatGPT is powering hyper-personalized customer experiences. By analyzing a customer’s history, preferences, and behavior, AI tools are:
Proactively suggesting solutions before customers even realize they need help.
Writing empathetic, human-like responses that improve customer satisfaction.
Handling simultaneous conversations, reducing the need for large customer service teams.
Unexpected Impact:
Startups and small businesses, which previously struggled with limited resources, are now offering 24/7 support that rivals large enterprises.
2. Transforming Content Creation
What People Know:
AI tools like ChatGPT can write blogs, emails, and social media posts.
What People Don’t Know:
ChatGPT is enabling dynamic content creation:
Automated Storytelling: Authors are using ChatGPT to generate creative ideas, write drafts, and even compose novels.
Localized Marketing: Brands are generating region-specific content in multiple languages, reaching global audiences effortlessly.
Real-Time Editing: ChatGPT can provide live feedback on grammar, tone, and readability, turning anyone into a polished writer.
Unexpected Impact:
Freelancers and marketers now rely on ChatGPT to boost productivity, opening doors for individuals in non-English-speaking countries to compete globally.
3. Revolutionizing Education
What People Know:
ChatGPT can act as a tutor, answering questions and explaining concepts to students.
What People Don’t Know:
AI tools are creating tailored educational experiences:
Personalized lesson plans based on a student’s learning pace and style.
Instant feedback on assignments and practice tests.
Interactive simulations that make complex subjects, like quantum physics, engaging and easy to understand.
Unexpected Impact:
Students in underprivileged areas, with limited access to quality education, can now learn from AI tutors, leveling the educational playing field.
4. Enhancing Healthcare
What People Know:
AI can assist in diagnosing diseases and providing health information.
What People Don’t Know:
ChatGPT is aiding mental health therapy by:
Offering conversational support for people with mild mental health issues.
Screening symptoms and guiding patients toward professional help.
Translating complex medical jargon into simple terms, empowering patients to make informed decisions.
Unexpected Impact:
Healthcare providers are integrating AI tools into their systems, enabling them to serve more patients with fewer resources.
5. Empowering Legal and Financial Services
What People Know:
AI tools can process documents and analyze data.
What People Don’t Know:
ChatGPT is simplifying legal and financial complexities:
Drafting contracts, legal documents, and agreements with minimal human intervention.
Assisting individuals in understanding tax laws, financial planning, and investment strategies.
Detecting anomalies in financial transactions, aiding fraud prevention.
Unexpected Impact:
Small law firms and independent consultants are now competing with bigger firms by leveraging AI for cost-efficient operations.
6. Driving Innovation in Creative Industries
What People Know:
AI tools can generate images, music, and videos.
What People Don’t Know:
ChatGPT is becoming a co-creator in art and design:
Collaborating with artists to brainstorm unique ideas for paintings, sculptures, and fashion.
Helping game developers script dialogues, design characters, and create story arcs.
Assisting filmmakers with screenplay drafts and production planning.
Unexpected Impact:
AI is democratizing creativity, allowing people with no formal training to produce professional-grade content.
7. Transforming Human Resources
What People Know:
AI tools can scan resumes and shortlist candidates.
What People Don’t Know:
ChatGPT is revolutionizing talent management:
Conducting pre-screening interviews through conversational AI.
Assisting employees in onboarding with interactive FAQ sessions.
Creating personalized career development plans based on employee goals and performance metrics.
Unexpected Impact:
Companies are significantly reducing hiring costs and improving employee retention rates with AI-driven HR processes.
8. Automating Coding and Software Development
What People Know:
ChatGPT can generate code snippets and debug errors.
What People Don’t Know:
ChatGPT is evolving into a virtual software engineer:
Automating repetitive coding tasks, such as writing boilerplate code.
Documenting codebases in real-time for better collaboration among teams.
Assisting non-technical founders in building MVPs (Minimum Viable Products) without hiring a developer.
Unexpected Impact:
Startups are rapidly prototyping and launching products with fewer resources, accelerating innovation cycles.
The Future of ChatGPT and AI Tools
While ChatGPT is already making waves, its potential remains largely untapped. Future advancements could include:
Emotional Intelligence: Developing AI that understands and responds to human emotions more accurately.
Ethical AI: Addressing concerns about bias, privacy, and misuse.
Cross-Industry Synergy: Integrating AI tools across industries for holistic solutions, such as combining healthcare and education for better well-being.
Conclusion
The rise of AI tools like ChatGPT is more than just a technological advancement—it’s a paradigm shift in how industries operate, innovate, and serve people. By understanding the hidden ways these tools are shaping the world, we can better prepare for a future where AI is an integral part of our personal and professional lives.
Have you experienced how AI is changing the way we work and live? Share your thoughts in the comments below!
Swarm algorithms are a fascinating branch of artificial intelligence inspired by the behavior of natural groups like flocks of birds, schools of fish, colonies of ants, or hives of bees. These algorithms simulate collective behavior to solve problems that are difficult or time-consuming for traditional methods. Let’s dive into the basics of swarm algorithms and explore their real-world applications with simple examples.
What Are Swarm Algorithms?
Swarm algorithms use a group of simple, autonomous agents (like particles, ants, or bees) that interact locally with each other and their environment. Despite having no central control, these agents work together to find optimal solutions to complex problems. This collective intelligence allows swarm algorithms to adapt, self-organize, and efficiently solve tasks.
Key Characteristics of Swarm Algorithms:
Decentralized Control: No single agent controls the system; decisions are made locally.
Emergent Behavior: Simple individual actions lead to complex group behavior.
Scalability: Works well with both small and large numbers of agents.
Robustness: Can handle failures of individual agents without affecting the overall system.
The year 2025 marks a groundbreaking era in technology, where innovation continues to transform the way we live, work, and interact with the world. From artificial intelligence to blockchain, these technologies are driving the digital revolution, creating endless opportunities for businesses and individuals alike. Let’s explore the top trending technologies in 2025 and their real-world applications.
1. Artificial Intelligence (AI) and Machine Learning (ML)
AI and ML remain at the forefront of technological advancement. With improved algorithms and access to big data, AI-powered solutions are becoming more intelligent, adaptive, and versatile.
Applications:
Healthcare: Predictive diagnostics, drug discovery, and personalized treatment plans.
Retail: AI-driven recommendation systems and customer insights.
Autonomous Vehicles: Enhanced navigation and safety systems.
Trending Example:
AI-generated art and content creation tools like ChatGPT and DALL·E are revolutionizing the creative industries.
2. Quantum Computing
Quantum computing is no longer a distant dream. With significant breakthroughs in qubits and error correction, quantum computers are solving problems that were once impossible for classical computers.
Applications:
Cryptography: Revolutionizing data encryption and cybersecurity.
Drug Discovery: Simulating complex molecular interactions.
Financial Modeling: Risk analysis and portfolio optimization.
Trending Example:
IBM and Google are making strides in developing commercial quantum computers.
3. Blockchain and Decentralized Finance (DeFi)
Blockchain technology has evolved beyond cryptocurrencies. It is transforming industries by enabling transparency, security, and decentralized applications (dApps).
Applications:
Finance: Decentralized lending and payment systems.
Supply Chain: Tracking and verifying product origins.
Healthcare: Secure patient record management.
Trending Example:
NFTs (Non-Fungible Tokens) are booming in art, gaming, and digital ownership.
4. 5G and Beyond
The rollout of 5G networks is enabling ultra-fast connectivity, low latency, and massive IoT deployment. Research into 6G has also begun, promising even greater speeds and capabilities.
Applications:
Smart Cities: Connected infrastructure and services.
Healthcare: Remote surgeries using real-time video feeds.
Entertainment: Seamless VR and AR streaming.
Trending Example:
Autonomous drones and robots powered by 5G networks are transforming logistics.
5. Internet of Things (IoT) and Smart Devices
IoT continues to expand, connecting billions of devices globally. Smart homes, wearable tech, and industrial IoT are reshaping how we interact with technology.
Applications:
Smart Homes: Voice-controlled appliances and security systems.
Smart cities integrating IoT for traffic management and energy efficiency.
6. Edge Computing
As IoT devices generate massive amounts of data, edge computing brings computation closer to the source, reducing latency and bandwidth usage.
Applications:
Autonomous Vehicles: Real-time decision-making.
Industrial Automation: Faster response times in manufacturing.
Healthcare: Real-time monitoring of critical patient data.
Trending Example:
Edge AI chips are being embedded into IoT devices for faster processing.
7. Renewable Energy and Green Tech
Sustainability is driving the development of renewable energy technologies and eco-friendly innovations.
Applications:
Solar and Wind Energy: Enhanced efficiency and storage solutions.
Green Buildings: Smart systems optimizing energy use.
Electric Vehicles (EVs): Faster charging and extended range.
Trending Example:
Solid-state batteries are revolutionizing energy storage for EVs.
8. Augmented Reality (AR) and Virtual Reality (VR)
AR and VR technologies are no longer confined to gaming. They are redefining how we experience entertainment, education, and work.
Applications:
Education: Immersive learning environments.
Healthcare: Virtual surgeries and training simulations.
Retail: Virtual try-on experiences.
Trending Example:
The metaverse is blending AR and VR to create shared virtual spaces for work and play.
9. Robotics and Automation
Robotics is advancing rapidly, with AI-powered robots performing tasks in healthcare, manufacturing, and even personal assistance.
Applications:
Healthcare: Robotic surgeries and patient care.
Logistics: Automated warehouses and delivery drones.
Retail: Robots for customer service and inventory management.
Trending Example:
Humanoid robots like Tesla’s Optimus are being developed for household and industrial tasks.
10. Cybersecurity Innovations
As technology grows, so do cyber threats. Advanced cybersecurity solutions are leveraging AI, blockchain, and quantum cryptography to stay ahead of attackers.
Applications:
Zero Trust Security: Ensuring robust data protection.
AI-Driven Threat Detection: Identifying vulnerabilities in real time.
Secure Communications: Encrypted messaging apps and networks.
Trending Example:
Decentralized identity systems are providing secure authentication for online services.
Conclusion
The technologies trending in 2025 are reshaping industries, creating new opportunities, and addressing global challenges. Whether you're a tech enthusiast, a professional, or a business leader, staying updated on these trends is essential to thrive in the digital age. From AI to renewable energy, the future is here—and it’s incredibly exciting.
OPC is the interoperability standard for the secure and reliable exchange of data in the industrial automation space and in other industries. It is platform independent and ensures the seamless flow of information among devices from multiple vendors. The OPC Foundation is responsible for the development and maintenance of this standard.
Initially, the OPC standard was restricted to the Windows operating system. As such, the acronym OPC was borne from OLE (object linking and embedding) for Process Control. These specifications, which are now known as OPC Classic, have enjoyed widespread adoption across multiple industries, including manufacturing, building automation, oil and gas, renewable energy and utilities, among others.
When the standard was first released in 1996, its purpose was to abstract PLC specific protocols (such as Modbus, Profibus, etc.) into a standardized interface allowing HMI/SCADA systems to interface with a “middle-man” who would convert generic-OPC read/write requests into device-specific requests and vice-versa. As a result, an entire cottage industry of products emerged allowing end-users to implement systems using best-of-breed products all seamlessly interacting via OPC.
When examining the standards of OPC, OPC server / client terms should also be emphasized.OPC server (server); is a software application designed to work with one or more OPC features. OPC servers can be thought of as interpreters connecting the OPC environment with the devices’ local communication protocols or interfaces.
The task of the OPC server is to receive or send information to the device according to the commands of the OPC client. If it is an OPC client; are software used by an application to communicate with any compatible OPC server. OPC clients can be considered as a data-sink, as they carry out the initiation and control of communication with OPC servers. The OPC client sends communication requests to the OPC server.
Let's understand the data transmission between OPC Client & Server diagrammatically.
When data is returned from the OPC server, the OPC client converts this data to the local format in the application to be used; Thus, correct operation of the application is checked and ensured.
OPC servers can provide communication from one OPC client to another, and if we consider this in reverse, OPC clients can communicate with more than one OPC server at the same time.
The purpose of the initial creation of OPC was to read data from automation devices such as PLC / DCS. However, OPC interface is also available in software to be found in other data communications today.
What is OPC DA?
OPC Data Access is a group of clients–server standards that provides specifications for communicating real-time data from data acquisition devices such as PLCs to display and interface devices like Human–Machine Interfaces (HMI), SCADA systems and also ERP/MESsystems. The specifications focus on the continuous communication of data.
OPC DA Data consists of:
a value,
the quality of the value, and
a timestamp.
OPC DA Architecture:
What is OPC UA?
OPC UA is the next generation of OPC technology. It’s a more secure, open, reliable mechanism for transferring information between servers and clients. It provides more open transports, better security and a more complete information model than the original OPC DA (a.k.a. OPC Classic). It provides a very flexible and adaptable mechanism for moving data between enterprise-type systems and the kinds of controls, monitoring devices and sensors that interact with real-world data.
OPC UA uses scalable platforms, multiple security models, multiple transport layers and a sophisticated information model to allow the smallest dedicated controller to freely interact with complex, high-end server applications. It can communicate anything from simple downtime status to massive amounts of highly complex plant-wide information.
OPC UA Architecture:
OPC UA Implementation Diagram
OPC UA Features:
Scalability – It’s scalable and platform-independent. Both high-end servers and low-end sensors can support it. UA uses discoverable profiles to include tiny, embedded platforms as servers in a UA system.
A Flexible Address Space – The address space is organized around the concept of an object. Objects are entities that consist of variables and methods and provide a standard way for servers to transfer information to clients.
Common Transports and Encodings – It uses standard transports and encodings to ensure that connectivity can be easily achieved in both embedded and enterprise environments.
Security – It implements a sophisticated security model that ensures the authentication of clients and servers, the authentication of users and the integrity of their communication.
Internet Capability – It’s fully capable of moving data over the internet.
A Robust Set of Services – OPC UA provides a full suite of services for eventing, alarming, reading, writing, discovery and more.
Certified Interoperability – It certifies profiles such that connectivity between a client and server using a defined profile can be guaranteed.
A Sophisticated Information Model – It profiles more than just an object model. True Information is shared between clients and servers because of the way it connects objects.
Sophisticated Alarming and Event Management – UA provides a highly configurable mechanism for providing alarms and event notifications to interested Clients. The alarming and event mechanisms go well beyond the standard change-in-value type alarming found in most protocols.
Integration with Standard Industry-Specific Data Models – The OPC Foundation is working with several industry trade groups that define specific information models for their industries to support those information models within UA.
OPC UA vs OPC DA protocol:
Let's Start Working on Open Source OPC UA Client using Python:
Installation:
Using Python PIP:
pip install opcua
For Ubuntu / Raspberry Pi / Any Debian System Terminal:
import sys
sys.path.insert(0, "..")
import logging
import time
try:
from IPython import embed
except ImportError:
import code
def embed():
vars = globals()
vars.update(locals())
shell = code.InteractiveConsole(vars)
shell.interact()
from opcua import Client
from opcua import ua
class SubHandler(object):
"""
Subscription Handler. To receive events from server for a subscription
data_change and event methods are called directly from receiving thread.
Do not do expensive, slow or network operation there. Create another
thread if you need to do such a thing
"""
def datachange_notification(self, node, val, data):
print("Python: New data change event", node, val)
def event_notification(self, event):
print("Python: New event", event)
if __name__ == "__main__":
logging.basicConfig(level=logging.WARN)
#logger = logging.getLogger("KeepAlive")
#logger.setLevel(logging.DEBUG)
client = Client("opc.tcp://localhost:4840/freeopcua/server/")
# client = Client("opc.tcp://admin@localhost:4840/freeopcua/server/") #connect using a user
try:
client.connect()
client.load_type_definitions() # load definition of server specific structures/extension objects
# Client has a few methods to get proxy to UA nodes that should always be in address space such as Root or Objects
root = client.get_root_node()
print("Root node is: ", root)
objects = client.get_objects_node()
print("Objects node is: ", objects)
# Node objects have methods to read and write node attributes as well as browse or populate address space
print("Children of root are: ", root.get_children())
# get a specific node knowing its node id
#var = client.get_node(ua.NodeId(1002, 2))
#var = client.get_node("ns=3;i=2002")
#var = client.get_node("ns=2;g=1be5ba38-d004-46bd-aa3a-b5b87940c698")
#print(var)
#var.get_data_value() # get value of node as a DataValue object
#var.get_value() # get value of node as a python builtin
#var.set_value(ua.Variant([23], ua.VariantType.Int64)) #set node value using explicit data type
#var.set_value(3.9) # set node value using implicit data type
# gettting our namespace idx
uri = "http://examples.freeopcua.github.io"
idx = client.get_namespace_index(uri)
# Now getting a variable node using its browse path
myvar = root.get_child(["0:Objects", "{}:MyObject".format(idx), "{}:MyVariable".format(idx)])
obj = root.get_child(["0:Objects", "{}:MyObject".format(idx)])
print("myvar is: ", myvar)
# subscribing to a variable node
handler = SubHandler()
sub = client.create_subscription(500, handler)
handle = sub.subscribe_data_change(myvar)
time.sleep(0.1)
# we can also subscribe to events from server
sub.subscribe_events()
# sub.unsubscribe(handle)
# sub.delete()
# calling a method on server
res = obj.call_method("{}:multiply".format(idx), 3, "klk")
print("method result is: ", res)
embed()
finally:
client.disconnect()
Code to Connect to Kepware OPCUA Server:
import sys
sys.path.insert(0, "..")
import logging
from opcua import Client
class SubHandler(object):
"""
Client to subscription. It will receive events from server
"""
def datachange_notification(self, node, val, data):
print("Python: New data change event", node, val)
def event_notification(self, event):
print("Python: New event", event)
if __name__ == "__main__":
#from IPython import embed
logging.basicConfig(level=logging.WARN)
client = Client("opc.tcp://192.168.56.100:49320/OPCUA/SimulationServer/")
#client = Client("opc.tcp://192.168.56.100:4840/OPCUA/SimulationServer/")
#client = Client("opc.tcp://olivier:olivierpass@localhost:53530/OPCUA/SimulationServer/")
try:
client.connect()
root = client.get_root_node()
print("Root is", root)
print("childs of root are: ", root.get_children())
print("name of root is", root.get_browse_name())
objects = client.get_objects_node()
print("childs og objects are: ", objects.get_children())
tag1 = client.get_node("ns=2;s=Channel1.Device1.Tag1")
print("tag1 is: {0} with value {1} ".format(tag1, tag1.get_value()))
tag2 = client.get_node("ns=2;s=Channel1.Device1.Tag2")
print("tag2 is: {0} with value {1} ".format(tag2, tag2.get_value()))
handler = SubHandler()
sub = client.create_subscription(500, handler)
handle1 = sub.subscribe_data_change(tag1)
handle2 = sub.subscribe_data_change(tag2)
from IPython import embed
embed()
sub.unsubscribe(handle1)
sub.unsubscribe(handle2)
sub.delete()
finally:
client.disconnect()
Open source is a term that originally referred to open source software (OSS). Open source software is code that is designed to be publicly accessible—anyone can see, modify, and distribute the code as they see fit.
Open source software is developed in a decentralized and collaborative way, relying on peer review and community production. Open source software is often cheaper, more flexible, and has more longevity than its proprietary peers because it is developed by communities rather than a single author or company.
As Per OSI:
Open-source software is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative public manner.
Why Open Source is important?
Open source licensing encourages innovation through collaboration. Without it, many of the technologies we take for granted today would never have developed, or would be locked away behind patent law. The open source movement is the reason that technology has developed at such a breakneck pace for the past few decades.
Open source has become a movement and a way of working that reaches beyond software production. The open source movement uses the values and decentralized production model of open source software to find new ways to solve problems in their communities and industries.
Brainfuck is undoubtedly one of the quirkiest and most minimalistic programming languages ever created. With just eight simple commands, a data pointer, and an instruction pointer, this language is fully Turing complete, though it isn’t meant for practical use. Instead, it challenges and amuses programmers with its extreme simplicity and unconventional approach.
The language's name is a nod to the slang term "brainfuck," referring to something so complex or unusual that it pushes the limits of understanding. While it's not practical for mainstream programming, Brainfuck has garnered a cult following among programming enthusiasts who enjoy the challenge it offers.
Key Features of Brainfuck
Minimalistic Design: Only 8 operators (<>+-[],.) make up the entire language.
Explanation:
This program enters a loop that decreases the value at the current memory pointer until it reaches zero. However, since all memory blocks start at zero, the loop never runs.
Example 2: Increment and Decrement
Code:
+++++[-]
Equivalent in C:
*p = +5;
while (*p != 0) {
*p--;
}
Explanation:
The program increments the current memory block's value to 5, then loops to decrement it until it reaches zero.
Explanation:
This program meticulously sets values in memory blocks and uses the . operator to output ASCII characters one by one. It demonstrates the precision required to work in Brainfuck.
Advanced Examples
1. Factorial Program
This program calculates the factorial of a number using loops and memory manipulation. Code Snippet:
Brainfuck is a fascinating exploration of programming minimalism. While not practical, it challenges conventional programming paradigms and provides a fun way to test your logical thinking. Are you ready to fuck your brain with Brainfuck? 😈
ESP32 is a system on a chip(SoC) that integrates the following features:
Wi-Fi (2.4 GHz band):
Bluetooth
Dual high performance cores
Ultra Low Power co-processor
Multiple peripherals
Powered by 40 nm technology, ESP32 provides a robust, highly integrated platform, which helps meet the continuous demands for efficient power usage, compact design, security, high performance, and reliability.
Espressif provides basic hardware and software resources to help application developers realize their ideas using the ESP32 series hardware. The software development framework by Espressif is intended for development of Internet-of-Things (IoT) applications with Wi-Fi, Bluetooth, power management and several other system features.
Features:
Following block diagram explains all inbuilt features of ESP32
UltraLowPower Solution
ESP32 is designed for mobile, wearable electronics, and Internet-of-Things (IoT) applications. It features all the
state-of-the-art characteristics of low-power chips, including fine-grained clock gating, multiple power modes,
and dynamic power scaling. For instance, in a low-power IoT sensor hub application scenario, ESP32 is woken
up periodically and only when a specified condition is detected. Low-duty cycle is used to minimize the amount
of energy that the chip expends. The output of the power amplifier is also adjustable, thus contributing to an
optimal trade-off between communication range, data rate and power consumption.
WiFi Key Features :
802.11 b/g/n
802.11 n (2.4 GHz), up to 150 Mbps
WMM
TX/RX A-MPDU, RX A-MSDU
Defragmentation
Automatic Beacon monitoring (hardware TSF)
4 × virtual Wi-Fi interfaces
Simultaneous support for Infrastructure Station, SoftAP, and Promiscuous modes
Antenna diversity
BT Key Features :
Compliant with Bluetooth v4.2 BR/EDR and BLE specifications
Class-1, class-2 and class-3 transmitter without external power amplifier
ESP32 Supports many firmwares and Programming languages. It does matter for a developpper to choose right firmware before developming any product. Right firmware and supported libraries are the main building blocks for developing a good product.
Following table represents the Firmware Types Programming Language support with Links..
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
void setup() {
Serial.begin(115200);
Serial.println("Starting BLE work!");
BLEDevice::init("Long name works now");
BLEServer *pServer = BLEDevice::createServer();
BLEService *pService = pServer->createService(SERVICE_UUID);
BLECharacteristic *pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristic->setValue("Hello World says Neil");
pService->start();
// BLEAdvertising *pAdvertising = pServer->getAdvertising(); // this still is working for backward compatibility
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinPreferred(0x06); // functions that help with iPhone connections issue
pAdvertising->setMinPreferred(0x12);
BLEDevice::startAdvertising();
Serial.println("Characteristic defined! Now you can read it in your phone!");
}
void loop() {
// put your main code here, to run repeatedly:
delay(2000);
}
OTA Update Code and Support:
#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
const char* ssid = "..........";
const char* password = "..........";
void setup() {
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// Port defaults to 3232
// ArduinoOTA.setPort(3232);
// Hostname defaults to esp3232-[MAC]
// ArduinoOTA.setHostname("myesp32");
// No authentication by default
// ArduinoOTA.setPassword("admin");
// Password can be set with it's md5 value as well
// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");
ArduinoOTA
.onStart([]() {
String type;
if (ArduinoOTA.getCommand() == U_FLASH)
type = "sketch";
else // U_SPIFFS
type = "filesystem";
// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
Serial.println("Start updating " + type);
})
.onEnd([]() {
Serial.println("\nEnd");
})
.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
})
.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
ArduinoOTA.handle();
}
For More in Details: htpts://lastminuteengineers.com/esp32-ota-updates-arduino-ide/...