#esp32 arduino tutorial
Explore tagged Tumblr posts
gantengpermanen · 7 months ago
Text
youtube
Simple beginners guide how to build create WebHID API Electron JS Desktop App for windows 10 & windows 11. Electron webhid api Desktop App html js Script: https://bit.ly/4egIyAw or https://drive.google.com/file/d/1euT1JxtpOgdZwVpA5C1nXOZRZ7bnbsoa/ Electron JS Desktop App Project Tutorial for Beginners: WebHID API Example w/ Source Code
0 notes
adafruit · 6 months ago
Text
The first test for our WLED board codename "Sparkle Motion" 🌈💖💡 … 🐇⏳🌌
We got our WLED-friend PCBs today, and we only made one mistake: the wrong resistor on the 3.3V feedback line. Now that it's fixed, the board seems to work great with the latest version of WLED
We are checking all 4 signal outputs with this handy 256-LED grid that sits on our desk. Next, we will test the onboard IR receiver, USB PD, I2S microphone, extra I/O pins, and I2C. We'll also do an Arduino IDE board definition in case folks want to use it as a generic ESP32-to-LED-driver board. We're calling the board "Sparkle Motion" for now, but if you have other naming ideas, let us know - if we pick your name, you get a free board
Sign up, coming soon.
17 notes · View notes
techlogics · 5 months ago
Link
2 notes · View notes
draegerit · 4 months ago
Text
Smarthome ohne Spionage: ESP32 und Shelly i4 DC als drahtlose Steuerung für dein Zuhause
Tumblr media
Ich möchte dir eine drahtlose Steuerung mit ESP32 und einem Shelly i4 DC vorstellen, mit der du Smart-Home-Geräte komfortabel bedienen kannst. Viele setzen dabei auf Sprachassistenten wie Alexa oder Google Assistant – doch nicht jeder möchte sich einen „Spion“ ins Haus holen, der dauerhaft zuhört. Eine Funksteuerung mit ESP32 und Shelly i4 DC ist eine sichere, lokale und flexible Alternative, die ohne Cloud oder Internet funktioniert. https://youtu.be/oVJkW2YQ7To Den Shelly i4 DC habe ich bereits ausführlich in meinem Beitrag "Smarter Schalter für Gleichspannung: Der Shelly i4 DC im Detail" vorgestellt. Zudem findest du auf meinem Blog bereits zahlreiche Beiträge zum ESP32, da dieser Mikrocontroller eine perfekte Grundlage für smarte DIY-Projekte bietet. Mit einer 4-Tasten-Funkfernbedienung und dem Shelly i4 DC lassen sich bis zu vier verschiedene Aktionen ausführen – von der Lichtsteuerung bis zum Öffnen des Garagentors. In diesem Beitrag zeige ich dir, wie du diese praktische und datenschutzfreundliche Smart-Home-Lösung umsetzt.
Tumblr media
Schaltung - Shelly i4 DC mit Relais Modul und ESP32-S3-Zero
Warum diese Schaltung, wenn Shelly auch per WebHook steuerbar ist?
Theoretisch kann man jeden Shelly direkt über WebHooks steuern, indem man HTTP-Requests an das Gerät sendet. Damit ließen sich Shelly-Produkte ganz ohne zusätzliche Hardware per WLAN in ein Smart-Home-System einbinden. Aber: Was, wenn du eine unabhängige, einfache Lösung suchst? Ich möchte dir hier eine alternative Schaltung zeigen, mit der du Geräte in deinem Smart Home über eine klassische Funkfernbedienung (433 MHz) bedienen kannst – ohne WLAN, Cloud oder App. Diese Lösung ist besonders dann interessant, wenn du: ✔ Geräte lokal und offline steuern möchtest, ohne auf eine Internetverbindung angewiesen zu sein. ✔ Eine einfache Fernsteuerung bevorzugst, die keine App oder komplizierte Einrichtung erfordert. ✔ Ein bestehendes Funk-Setup mit 433 MHz Fernbedienungen nutzt und dieses mit Shelly kombinieren möchtest. Dazu setze ich einen ESP32 mit einem 433 MHz Funkempfänger und einem 4-fach Relais-Modul ein. Die Relais steuern die Eingänge des Shelly i4 DC, sodass du mit einer drahtlosen 4-Tasten-Fernbedienung bis zu vier verschiedene Smart-Home-Aktionen auslösen kannst.
Die richtige Funkfernbedienung wählen
Wer eine passende 4-Tasten-Funkfernbedienung sucht, findet auf AliExpress und eBay eine große Auswahl an Modellen. Wichtig ist, auf die Frequenz zu achten: In Deutschland sind 433 MHz-Modelle erlaubt und weit verbreitet, während 333 MHz-Fernbedienungen hier nicht genutzt werden dürfen. Dies ergibt sich aus dem Frequenzplan der Bundesnetzagentur, der die zulässigen Funkfrequenzen regelt. Achte daher beim Kauf darauf, dass das gewählte Modell den gesetzlichen Vorgaben entspricht. Das 433 MHz Funksender Kit für den Arduino habe ich dir bereits im Beitrag Arduino Tutorial 37: 433 MHz Sender & Empfänger
Benötigte Hardware für das Projekt
Für dieses Projekt kommen folgende Hardware-Komponenten zum Einsatz: - ESP32-S3 Super Mini von Waveshare* – ein leistungsstarker Mikrocontroller mit WLAN- und Bluetooth-Funktionalität - Shelly i4 DC* – ein smarter Schalter mit vier digitalen Eingängen für Gleichspannung - 433 MHz Funkempfänger* – zur drahtlosen Signalübertragung von der Fernbedienung an den ESP32 - 433 MHz Funksender* – ermöglicht das Senden von Signalen an andere Geräte (günstig im 2er-Set erhältlich) - vierfach-Relais-Modul* – dient zur galvanischen Trennung und ermöglicht das Schalten der Eingänge am Shelly i4 DC - diverse Breadboardkabel & 400-Pin Breadboard* – für eine einfache Verdrahtung ohne Löten - ein USB-Netzteil* - wird für die Stromversorgung des Mikrocontrollers und des Shellys benötigt - ein Power-Supply-Modul für Breadboard* - über dieses Modul kann man 5V & 3.3V abgreifen um unter anderem den Shelly zu betreiben Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung! Stromversorgung Sowohl der ESP32-S3 Super Mini als auch der Shelly i4 DC benötigen eine Stromquelle. Hier eignet sich theoretisch ein einfaches USB-Netzteil*, das sich leicht zweckentfremden lässt. Da der Shelly i4 DC bereits ab 5V betrieben werden kann und weniger als 1W Leistungsaufnahme hat, reicht ein handelsübliches Netzteil vollkommen aus.
Aufbau der Schaltung - Shelly i4 DC via Funkfernbedienung über ESP32 steuern
Nachfolgend die kleine Schaltung im Schaubild wie die Komponenten zusammenarbeiten.
Tumblr media
Schaltung - 433MHz Remotecontroll und Shelly i4 DC KomponenteESP32-S3 Mini4fach Relais ModulVCC5VGNDGNDIN1GP2IN2GP3IN3GP4IN4GP5433 MHz FunkempfängerVCC5VGNDGNDDATAGP1 Anschlussklemme des Relais Ein 4-fach Relaismodul bietet für jeden Kanal eine dreipolige Anschlussklemme, bestehend aus: - Links (NC - Normally Closed) → Ausgang aktiv, wenn die Relais-LED AUS ist - Mitte (COM - Common) → Gemeinsamer Anschluss für den Schaltkreis - Rechts (NO - Normally Open) → Ausgang aktiv, wenn die Relais-LED AN ist
Tumblr media
Relais Modul-Anschlussklemme Verdrahtung mit dem Shelly i4 DC - Der GND-Anschluss des Shelly i4 DC wird mit dem rechten (GND) Anschluss der Relaisklemme verbunden. - Die Eingänge des Shelly i4 DC können entweder über den mittleren (NO) oder linken (NC) Kontakt mit dem Relais verbunden werden, je nach gewünschtem Schaltverhalten: - NO (Normally Open): Eingang wird aktiv, wenn das Relais anzieht (LED leuchtet). - NC (Normally Closed): Eingang wird aktiv, wenn das Relais nicht angezogen ist (LED aus). Pinout des ESP32-S3 Mini Nachfolgend das Pinout des ESP32-S3-Zero von Waveshare.
Tumblr media
Aufbau - ESP32-S3-Zero
Programmieren - drahtlose Steuerung eines Shelly i4 DC am ESP32
fertiges Programm Programm: drahtlose Steuerung eines Shelly i4 DC über ESP32Herunterladen Quellcode /* Projekt: Smarthome ohne Spionage – Funksteuerung für den Shelly i4 DC mit ESP32 Autor: Stefan Draeger Blog: https://draeger-it.blog Beitrag: https://draeger-it.blog/smarthome-ohne-spionage-esp32-und-shelly-i4-dc-als-drahtlose-steuerung-fuer-dein-zuhause/ Beschreibung: Dieser Code ermöglicht es, einen Shelly i4 DC über ein 4-fach Relais-Modul zu steuern. Die Relais werden mit einem 433 MHz Funkempfänger in Kombination mit einem Handsender geschaltet. Der ESP32 empfängt die Funksignale und schaltet entsprechend die Relais, welche die Eingänge des Shelly i4 DC bedienen. Benötigte Hardware: - ESP32 (z. B. ESP32-S3 Super Mini) - 433 MHz Funkempfänger - 433 MHz Funksender - 4-fach Relais-Modul - Shelly i4 DC - Passende Netzteile für ESP32 und Shelly Hinweis: Der Code nutzt die RCSwitch-Bibliothek, um die 433 MHz Funksignale zu dekodieren. */ #include // Initialisierung des RCSwitch-Objekts zur Kommunikation mit dem 433 MHz Empfänger RCSwitch rcSwitch = RCSwitch(); // Definition der GPIO-Pins #define remotePin 1 // Empfangs-Pin für den 433 MHz Empfänger #define relais1 2 // Steuerpin für Relais 1 #define relais2 3 // Steuerpin für Relais 2 #define relais3 4 // Steuerpin für Relais 3 #define relais4 5 // Steuerpin für Relais 4 // Definition von Zuständen für die Relaissteuerung #define AN true // Relais einschalten #define AUS false // Relais ausschalten // Codes für die 433 MHz Funkfernbedienung (Ein- und Ausschalten der Relais) const long TASTE_1_ON = 83029; const long TASTE_1_OFF = 83028; const long TASTE_2_ON = 86101; const long TASTE_2_OFF = 86100; const long TASTE_3_ON = 70741; const long TASTE_3_OFF = 70740; const long TASTE_4_ON = 21589; const long TASTE_4_OFF = 21588; void setup() { Serial.begin(9600); // Serielle Kommunikation starten rcSwitch.enableReceive(remotePin); // Aktivierung des 433 MHz Empfängers auf remotePin // Setzen der Relais-Pins als Ausgang pinMode(relais1, OUTPUT); pinMode(relais2, OUTPUT); pinMode(relais3, OUTPUT); pinMode(relais4, OUTPUT); // Alle Relais beim Start ausschalten digitalWrite(relais1, AUS); digitalWrite(relais2, AUS); digitalWrite(relais3, AUS); digitalWrite(relais4, AUS); } void loop() { // Prüfen, ob ein Signal vom 433 MHz Handsender empfangen wurde if (rcSwitch.available()) { long remoteValue = rcSwitch.getReceivedValue(); // Empfangenen Code auslesen rcSwitch.resetAvailable(); // Empfangsstatus zurücksetzen Serial.println(remoteValue); // Empfangenen Code zur Diagnose ausgeben // Überprüfung, ob der empfangene Code einem gespeicherten Befehl entspricht switch (remoteValue) { case TASTE_1_ON: toggleRelais(relais1, AN); break; case TASTE_1_OFF: toggleRelais(relais1, AUS); break; case TASTE_2_ON: toggleRelais(relais2, AN); break; case TASTE_2_OFF: toggleRelais(relais2, AUS); break; case TASTE_3_ON: toggleRelais(relais3, AN); break; case TASTE_3_OFF: toggleRelais(relais3, AUS); break; case TASTE_4_ON: toggleRelais(relais4, AN); break; case TASTE_4_OFF: toggleRelais(relais4, AUS); break; default: Serial.println("Code : " + String(remoteValue) + " nicht behandelt!"); // Fehlermeldung, falls Code unbekannt } } } // Funktion zur Steuerung eines Relais void toggleRelais(int pin, bool newStatus) { digitalWrite(pin, newStatus); // Setzt das Relais auf AN oder AUS } Auslesen einer Funkfernbedienung Jede Taste an einer Funkfernbedienung hat eine eigene einzigartige ID welche wir zunächst ermitteln müssen. Dazu reicht das kleine Script aus dem bereits veröffentlichten Beitrag Arduino Tutorial 37: 433 MHz Sender & Empfänger. /* Projekt: 433 MHz Signalempfang mit RCSwitch Autor: Stefan Draeger Webseite: https://draeger-it.blog Beschreibung: Dieser Code dient dazu, Signale von einem 433 MHz Funksender zu empfangen und auf der seriellen Schnittstelle auszugeben. Der ESP32 oder Arduino empfängt dabei Funksignale von einer 433 MHz Fernbedienung oder anderen kompatiblen Sendern. Benötigte Hardware: - 433 MHz Funkempfänger - Mikrocontroller (z. B. ESP32 oder Arduino) - Serielle Schnittstelle für die Diagnose */ #include // Einbinden der Bibliothek für die 433 MHz Funkkommunikation // Erstellen eines Objekts für die RCSwitch-Klasse zur Steuerung des Funkempfängers RCSwitch rcSwitch = RCSwitch(); void setup() { Serial.begin(9600); // Start der seriellen Kommunikation mit 9600 Baud // Aktivierung des 433 MHz Empfängers auf Interrupt-Pin 0 (digitaler Pin 2 auf Arduino) rcSwitch.enableReceive(0); } void loop() { // Überprüfung, ob neue Daten vom 433 MHz Sender empfangen wurden if (rcSwitch.available()) { // Ausgabe des aktuellen Zeitstempels (Millisekunden seit dem Start des Mikrocontrollers) Serial.print(" - "); // Ausgabe des empfangenen Codes auf der seriellen Schnittstelle Serial.println(rcSwitch.getReceivedValue()); // Zurücksetzen des Empfängers, damit neue Signale verarbeitet werden können rcSwitch.resetAvailable(); } }
Schritt-für-Schritt-Anleitung
Nachfolgend erläutere ich dir den Aufbau des Quellcodes für eine drahtlose Steuerung des Shelly i4 über einen ESP32. Schritt 1 - einbinden der Bibliothek und definieren der Pins Für den 433 MHz Funkempfänger benötigen wir zusätzlich eine Bibliothek. Hier verwende ich "rc-switch von sui77" welche über den Bibliotheksverwalter installiert werden kann wenn du nach "rc-switch" suchst.
Tumblr media
#include // Bibliothek für die 433 MHz Funkkommunikation einbinden // Initialisierung des RCSwitch-Objekts zur Kommunikation mit dem 433 MHz Empfänger RCSwitch rcSwitch = RCSwitch(); // Definition der GPIO-Pins #define remotePin 1 // Empfangs-Pin für den 433 MHz Empfänger #define relais1 2 // Steuerpin für Relais 1 #define relais2 3 // Steuerpin für Relais 2 #define relais3 4 // Steuerpin für Relais 3 #define relais4 5 // Steuerpin für Relais 4 // Definition der Zustände für die Relaissteuerung #define AN true // Relais EIN #define AUS false // Relais AUS Schritt 2 - Konstanten für die Tasten Über das kleine Programm oben habe ich nachfolgende Codes der Tasten ermittelt. Da sich diese Werte nicht ändern habe ich diese in Konstanten abgelegt. // Codes für die 433 MHz Funkfernbedienung (Ein- und Ausschalten der Relais) const long TASTE_1_ON = 83029; const long TASTE_1_OFF = 83028; const long TASTE_2_ON = 86101; const long TASTE_2_OFF = 86100; const long TASTE_3_ON = 70741; const long TASTE_3_OFF = 70740; const long TASTE_4_ON = 21589; const long TASTE_4_OFF = 21588; Schritt 3 - Funktion setup Die Funktion setup wird einmalig aufgerufen wenn der Mikrocontroller startet oder auch neugestartet wird. Hier definieren wir die Pins des Relais Moduls als Ausgang und deaktivieren initial die Relais. void setup() { Serial.begin(9600); // Serielle Kommunikation starten rcSwitch.enableReceive(remotePin); // Aktivierung des 433 MHz Empfängers auf remotePin // Setzen der Relais-Pins als Ausgang pinMode(relais1, OUTPUT); pinMode(relais2, OUTPUT); pinMode(relais3, OUTPUT); pinMode(relais4, OUTPUT); // Alle Relais beim Start ausschalten digitalWrite(relais1, AUS); digitalWrite(relais2, AUS); digitalWrite(relais3, AUS); digitalWrite(relais4, AUS); } Schritt 4 - Funktion loop Die Funktion loop wird dauerhaft ausgeführt bis der Strom abfällt oder ein Fehler auftritt. void loop() { // Prüfen, ob ein Signal vom 433 MHz Handsender empfangen wurde if (rcSwitch.available()) { long remoteValue = rcSwitch.getReceivedValue(); // Empfangenen Code auslesen rcSwitch.resetAvailable(); // Empfangsstatus zurücksetzen Serial.println(remoteValue); // Empfangenen Code zur Diagnose ausgeben //Switch/Case Abfrage } } Schritt 4.1 - Switch / Case für die Tasten Über eine switch Anweisung kann man einfach den empfangenen Wert mit den der Tasten vergleichen. // Überprüfung, ob der empfangene Code einem gespeicherten Befehl entspricht switch (remoteValue) { case TASTE_1_ON: toggleRelais(relais1, AN); break; case TASTE_1_OFF: toggleRelais(relais1, AUS); break; case TASTE_2_ON: toggleRelais(relais2, AN); break; case TASTE_2_OFF: toggleRelais(relais2, AUS); break; case TASTE_3_ON: toggleRelais(relais3, AN); break; case TASTE_3_OFF: toggleRelais(relais3, AUS); break; case TASTE_4_ON: toggleRelais(relais4, AN); break; case TASTE_4_OFF: toggleRelais(relais4, AUS); break; default: Serial.println("Code : " + String(remoteValue) + " nicht behandelt!"); // Fehlermeldung, falls Code unbekannt }
Erweiterte Möglichkeit: Bis zu 8 Geräte mit einem 4-fach Relais steuern
Theoretisch lassen sich mit dieser Schaltung nicht nur vier, sondern bis zu neun verschiedene Geräte steuern – indem man die vier Eingänge des Shelly i4 DC als Bitmuster verwendet.
Tumblr media
Shelly i4 DC Wie funktioniert das? - Die ersten drei Eingänge (SW1,SW2, SW3) des Shelly i4 DC werden als Binärcode für die Gerätewahl genutzt. - Der vierte Eingang (SW4) wird als Bestätigungssignal (High-Pegel) verwendet, um die Auswahl auszuführen. Bitmuster für die Geräteauswahl SW1SW2SW3Gerät000Gerät 1001Gerät 2010Gerät 3011Gerät 4100Gerät 5101Gerät 6110Gerät 7111Gerät 8xxxKeine Aktion (SW4 nicht aktiviert) Ablauf der Steuerung - Mit der Funkfernbedienung wird ein 3-Bit-Muster auf die Eingänge SW1-SW3 gesetzt (z. B. „101“ für Gerät 6). - Sobald SW4 auf High gesetzt wird, wertet der Shelly das Bitmuster aus und schaltet das zugewiesene Gerät. - Danach werden alle Eingänge zurückgesetzt, um eine neue Auswahl zu ermöglichen. Vorteile dieser Methode ✔ Erweitert die Steuerungsmöglichkeiten erheblich – statt nur 4 sind bis zu 8 Geräte steuerbar. ✔ Nutzt die vorhandenen Relais effizient – kein zusätzliches Hardware-Modul nötig. ✔ Schnelle und flexible Steuerung – einfach per Funkfernbedienung umsetzbar. Diese Methode zeigt, wie viel Potenzial in der Kombination aus ESP32, Shelly i4 DC und einem 4-fach Relais-Modul steckt! 🚀 Read the full article
0 notes
aanandh · 8 months ago
Text
How to Learn Embedded Systems: A Comprehensive Guide
Embedded systems are integral to countless applications, from consumer electronics to industrial automation. Understanding how to learn embedded systems can open up a world of opportunities in various fields, including robotics, automotive, healthcare, and IoT. Here’s a structured approach to mastering embedded systems.
Tumblr media
1. Understanding the Basics
Start with the fundamentals of embedded systems. Familiarize yourself with key concepts such as:
What are Embedded Systems?
Embedded systems are specialized computing systems that perform dedicated functions within larger mechanical or electrical systems. Unlike general-purpose computers, they are designed to execute specific tasks with high reliability.
Components of Embedded Systems:
Microcontrollers and Microprocessors: Understand the difference between the two. Microcontrollers are compact integrated circuits designed to govern a specific operation in an embedded system, while microprocessors are the central unit of a computer that performs calculations and logic operations.
Memory: Learn about different types of memory (RAM, ROM, Flash) used in embedded systems.
Input/Output Devices: Familiarize yourself with sensors, actuators, and communication interfaces (UART, SPI, I2C).
2. Choose Your Learning Resources
Select resources that match your learning style. Here are some options:
Books:
"Embedded Systems: Introduction to the MSP432 Microcontroller" by Jonathan Valvano
"Programming Embedded Systems in C and C++" by Michael Barr
Online Courses:
Platforms like Coursera, Udemy, and edX offer courses in embedded systems. Look for those that cover microcontrollers, programming, and interfacing.
YouTube Channels:
Channels like "The DIY Life" and "NPTEL" provide practical insights and tutorials on embedded systems.
3. Get Hands-On Experience
Theory is essential, but hands-on practice is crucial for mastering embedded systems. Consider the following:
Development Boards:
Start with popular development boards like Arduino, Raspberry Pi, or ESP32. These platforms are beginner-friendly and have extensive community support.
Build Projects:
Create simple projects like LED blinkers, temperature sensors, or motor controls. Gradually move to more complex projects like home automation systems or robotic applications.
Use Simulation Tools:
Familiarize yourself with simulation tools like Proteus or MATLAB/Simulink for testing your designs virtually.
4. Learn Programming Languages
Embedded systems often require programming skills. Focus on:
C/C++ Programming:
C is the most commonly used language for embedded systems due to its efficiency and control over hardware. Learn the syntax, data structures, and memory management.
Assembly Language:
Understanding assembly language can provide deeper insights into how microcontrollers operate.
5. Explore Real-Time Operating Systems (RTOS)
Many embedded systems require multitasking and real-time performance. Learning about RTOS concepts can be beneficial:
Understand the Basics:
Familiarize yourself with the concepts of task scheduling, inter-task communication, and resource management.
Hands-On with RTOS:
Try using an RTOS like FreeRTOS or Zephyr on your development board. Implement multitasking projects to get practical experience.
6. Join Online Communities
Engaging with fellow learners and professionals can enhance your learning experience:
Forums and Discussion Groups:
Platforms like Stack Overflow, Reddit, and specialized forums (e.g., Embedded Related) are great for seeking help and sharing knowledge.
Attend Workshops and Webinars:
Participate in online workshops or local meetups to learn from experts and network with peers.
7. Stay Updated with Industry Trends
The field of embedded systems is constantly evolving. Keep yourself updated with the latest trends and technologies:
Follow Industry News:
Subscribe to blogs, newsletters, and magazines related to embedded systems.
Participate in Hackathons:
Engage in hackathons or coding competitions focused on embedded systems to test your skills and learn from others.
Conclusion
Learning embedded systems requires a mix of theoretical knowledge and practical experience. By following this structured approach—starting from the basics, choosing the right resources, getting hands-on experience, and staying engaged with the community—you can build a strong foundation in embedded systems. Whether you aim to work in robotics, IoT, or automation, mastering embedded systems can significantly enhance your career prospects. Start your journey today, and embrace the exciting world of embedded systems!
0 notes
bitstream24 · 2 years ago
Text
Tumblr media
ESP32 Serial Ports - UART0, UART1, UART2 Access Using the Arduino IDE
The ESP32 has three UART interfaces: UART0, UART1, and UART2. They provide asynchronous, bidirectional communication at up to five Mbps. You can establish serial protocols using the appropriate breakout boards, such as RS232, RS422, RS485, USB, and more.
1 note · View note
ramjaju · 2 years ago
Text
How do I start my home automation project with iot at low cost?
Take into account the following steps to start an inexpensive IoT home automation project. First, establish your objectives. List the appliances and processes, such lighting, thermostats, or security cameras, that you wish to automate. Choose open-source solutions with flexibility and device interoperability, such as Home Assistant or OpenHAB.
Next, choose IoT devices from embedded that are being classified as automotive embedded or electric vehicles embedded affordable and compatible with your preferred platform. Affordable smart switches and sensors are offered by companies like Sonoff and Shelly. For device communication, use well accepted protocols like MQTT to ensure easy integration.Repurpose current hardware: The controllers can be Raspberry Pi boards or old iPhones. Utilise cloud services that are free or inexpensive, such as Blynk or Cayenne, for remote access. Investigate do-it-yourself options for creating unique sensors or actuators using Arduino or ESP8266/ESP32 boards.
Use tutorials, forums, and internet tools to educate oneself. There is a wealth of knowledge available on IoT and home automation projects on websites like YouTube and GitHub. Engage the neighbourhood to resolve problems and learn more.Consider security when using strong passwords and frequently updating device firmware. As necessary, gradually extend your system while balancing usefulness and expense. With this strategy, you may create a personalised home automation system while keeping costs down and acquiring important IoT experience.
1 note · View note
360group · 2 years ago
Text
Smart Robot car kit for Arduino UNO R3, 4WD, omnidirectional motion, FPV, ESP32 camera, battery included SunFounder
  About SunFounder: SunFounder is an 11 year old STEAM and Maker education company that helps beginners learn Raspberry Pi, Arduino, ESP32 from zero to hero. About the Zeus car: This kit includes easy-to-follow instructions for assembling and coding the robot car. Beginners can complete projects without problems using Online step-by-step tutorials and videos. Using the 6cm Mecanum wheel, easy…
Tumblr media
View On WordPress
0 notes
gantengpermanen · 8 months ago
Text
youtube
how to create custom USB HID Device w/ USB HID Vendor Feature report for WEMOS Lolin S2 Mini WebHID API Live Demo Example data exchange (USB Host - USB Client): https://webhidvendor.blogspot.com/ WEMOS Lolin S2 Mini Custom USB HID - WebHID API Live Demo Example Web Interface ESP32 Arduino Core
0 notes
chaerulanam1412 · 4 years ago
Text
Tutorial ESP8266/ESP32 Multitasking Interrupt hw timer dan millis()
Tutorial ESP8266/ESP32 Multitasking Interrupt hw timer dan millis()
hw_timmer atau juga hardware timer dan millis() merupakan fungsi untuk membangkitkan timer interrupt yang ada pada ESP32 dan ESP8266. Multitasking untuk membuat mikrokontroler ESP dapat melakukan eksekusi beberapa program tanpa menunggu seperti delay. Multitasking terlihat oleh manusia seakan mikrokontroler menjalankan dua program atau lebih secara bersamaan. padahal konsep multitasking pada…
Tumblr media
View On WordPress
1 note · View note
techtutorialsx · 4 years ago
Text
ESP32 Arduino: Soft AP and Station modes
ESP32 Arduino: Soft AP and Station modes
Introduction In this post we are going to learn how to setup the ESP32 to work in Soft AP and Station modes simultaneously, using the Arduino core. When working in station mode, the ESP32 is acting as a WiFi enabled device connected to an existing WiFi network. When working in Soft AP mode, the ESP32 is acting as host of a WiFi network, to which other devices can connect. In the sections…
Tumblr media
View On WordPress
1 note · View note
thepause · 6 years ago
Text
BTCIOT - M5StackSats, Bitcoin PoS terminal using ESP32 based M5Stack
BTCIOT – M5StackSats, Bitcoin PoS terminal using ESP32 based M5Stack
M5StackSats is the ultimate, cheap ($55), DIY point of sale terminal for accepting bitcoin payments, it even includes a docking/charging station!
There are two implementations of M5StackSats, one that communicates directly with an LND node, and another that communicates with opennode (make an account here  ).
Converting the project to communicate with c-lightning nodes/other custodial services…
View On WordPress
1 note · View note
reportwire · 3 years ago
Text
A Camunda Greenhouse, part 3
A Camunda Greenhouse, part 3
Review If you’ve been following this (incredibly slow) project, then you’ve already been through part 1 and part 2 and have been wondering if part 3 would ever arrive. Well, here it is! This is the part where I pull together all the previous parts and actually deploy a Camunda BPMN-powered IoT Greenhouse! Just to review a bit, I proposed building a greenhouse, monitored by some IoT sensors, that…
Tumblr media
View On WordPress
0 notes
draegerit · 1 year ago
Text
MicroPython mit ESP32: DHT11 Sensordaten auslesen und verarbeiten
Tumblr media
In diesem Beitrag erfährst du, wie man einen Umweltsensor DHT11 am ESP32 D1 R32 mit MicroPython auslesen und diese Sensordaten verarbeiten kann. Für diesen Beitrag verwende ich wieder das Rich Shield von Open Smart. Du kannst jedoch mit wenigen Bauteilen den Sensor an deinen ESP32 anschließen und dieses kleine Tutorial nachbauen. https://youtu.be/7uvoZU09s78 Der DHT11 Sensor ist eine kostengünstige und weit verbreitete Lösung zur Messung von Temperatur und Luftfeuchtigkeit. Er eignet sich hervorragend für viele DIY-Projekte, wie z.B. die Überwachung von Raumklima, Wetterstationen oder Smart-Home-Anwendungen. In den folgenden Abschnitten zeige ich dir Schritt für Schritt, wie du den Sensor anschließt, die Daten ausliest und auswertest. Zusätzlich werde ich dir zeigen, wie du die ausgelesenen Sensordaten mit einem Zeitstempel versiehst und in eine CSV-Datei speicherst. Dies ermöglicht eine einfache Weiterverarbeitung und Analyse der Daten, beispielsweise in Tabellenkalkulationsprogrammen wie Excel. So kannst du die Temperatur- und Luftfeuchtigkeitswerte über einen längeren Zeitraum überwachen und Trends erkennen.
Technische Daten des DHT11 Sensors
Mit dem DHT11 Sensor kannst du recht einfach die Temperatur und die relative Luftfeuchtigkeit messen. Dabei ist dieser Sensor nicht nur günstig, sondern auch recht genau. Wie genau dieser Sensor arbeitet, habe ich bereits im Beitrag Vergleich von Temperatursensoren für den Arduino & Raspberry PI aufgezeigt. relative LuftfeuchtigkeitMessbereich 20 % bis 90 %Toleranz±5 %TemperaturMessbereich 0 °C bis 60 °CToleranz±2 °CBetriebsspannung5V
DHT11 Sensor am Rich Shield von Open Smart
Der DHT11 Sensor ist am GPIO19 des ESP32 D12 R32 verbunden (D13 am Arduino UNO). Mit diesem Umweltsensor kannst du die Temperatur und relative Luftfeuchtigkeit messen. Dabei gibt dieser Sensor alle 1,5 Sekunden einen neuen Wert.
Tumblr media
Aufbau der Schaltung ohne Rich Shield von Open Smart
Wenn du die kleine Schaltung ohne Rich Shield nachbauen möchtest, dann gibt es zwei Wege. Zum einen kannst du die Schaltung mit einem fertigen Baustein aufbauen und zum anderen mit dem Sensor und einem 10 kOhm Widerstand. Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung! Schaltung mit einem fertigen Baustein - ein ESP32 D1 R32*, - ein Micro-USB Datenkabel*, - ein DHT11 Sensor*, - drei Breadboardkabel*, 10 cm, - ein 170 Pin Breadboard*
Tumblr media Tumblr media
Bei den DHT11 & DHT22 Sensoren auf Platine musst du auf die Beschriftung achten, diese ist immer unterschiedlich. Wenn du deinen Sensor verpolst, dann kann dieser sehr schnell kaputtgehen!
Tumblr media
Schaltung - ESP32 D1 R32 mit DHT11 Sensor als Baustein auf einer Platine Schaltung mit Sensor & Widerstand Du erhältst den Sensor auch einzeln, wenn du diesen hast, dann benötigst noch zusätzlich einen 10 kOhm Widerstand, welcher mit VCC verbunden wird. - ein ESP32 D1 R32*, - ein Micro-USB Datenkabel*, - ein DHT11 Sensor*, - ein 10 kOhm Widerstand*, - vier Breadboardkabel*, 10 cm, - ein 170 Pin Breadboard*
Tumblr media Tumblr media Tumblr media
Schaltung - DHT11 Sensor am ESP32 D1 R32 mit Widerstand
Programmieren des DHT11 Sensors in MicroPython am ESP32 D1 R32
Damit wir den Sensor auslesen können, benötigen wir ein zusätzliches Modul. Der Firmware von MicroPython liegt bereits ein passendes DHT Modul bei, mit welchem wir den Sensor DHT11 & DHT22 mit wenigen Zeilen Code auslesen können. import dht from machine import Pin, RTC import time d = dht.DHT11(Pin(19, Pin.IN)) while True: d.measure() print("Temperatur: ", d.temperature(), "°C", sep="") print("rel. Luftfeuchtigkeit: ", d.humidity(), "%", sep="") time.sleep(2) Das kleine Programm schreibt fortwährend die Sensordaten in die Kommandozeile.
Tumblr media
Einfache Ausgabe der Sensordaten in der Kommandozeile Ausgeben der Daten in einer Tabelle Die Daten lassen sich auch recht einfach in einer Tabelle auf der Kommandozeile ausgeben. Dazu geben wir als Erstes die Kopfzeile aus und setzen den Trenner (Parameter sep in der Funktion print) auf einen geraden Strich / Pipe. Zusätzlich hole ich mir noch den aktuellen Zeitstempel von der internen RealTimeClock. import dht from machine import Pin, RTC import time d = dht.DHT11(Pin(19, Pin.IN)) def getTimestamp(): rtc = RTC() currentDateTime = rtc.datetime() hour = currentDateTime minutes = currentDateTime seconds = currentDateTime textFormat = "{0}:{1}:{2}" if hour < 10: hour = "0"+str(hour) if minutes < 10: minutes = "0"+str(minutes) if seconds < 10: seconds = "0"+str(seconds) return textFormat.format(hour, minutes, seconds) print("Zeittt","Temperaturt", "rel. Luftfeuchtigkeit", sep="|"); while True: d.measure() print(str(getTimestamp())+"t",str(d.temperature())+"°Ctt", str(d.humidity())+"%", sep="|") time.sleep(2) Die tabellarische Ausgabe der Sensordaten auf der Kommandozeile hat den Vorteil das wir diese recht einfach ablesen können und wir könnten diese auch markieren und in eine andere Datei formatiert kopieren.
Tumblr media
Tabellarische Ausgabe der Sensordaten auf der Kommandozeile Ausgeben in eine CSV-Datei mit Sensordaten des DHT11 auf dem ESP32 mit MicroPython Wir können auf dem Mikrocontroller auch Dateien schreiben und so die Sensorwerte aufzeichnen. Wie du Dateien schreibst werde ich dir in einem späteren Beitrag noch genauer erläutern, hier möchte ich dir der Vollständigkeitshalber ein kleines Programm zeigen, welches die Daten vom Sensor in eine CSV Datei mit dem Namen "sensordata.csv" schreibt. import dht from machine import Pin, RTC import time import os csvDatei = 'sensordata.csv' lineBreak = 'rn' dht11Sensor = dht.DHT11(Pin(19, Pin.IN)) def getTimestamp(): rtc = RTC() currentDateTime = rtc.datetime() year = currentDateTime month = currentDateTime day = currentDateTime unknown = currentDateTime hour = currentDateTime minutes = currentDateTime seconds = currentDateTime textFormat = "{0}.{1}.{2} {3}:{4}:{5}" return textFormat.format(day, month, year, hour, minutes, seconds) if not csvDatei in os.listdir(): headline = "Zeit;Temperatur;rel. Luftfeuchtigkeit"; with open(csvDatei, 'w') as f: print(headline) f.write(headline) f.write(lineBreak) while True: dht11Sensor.measure() line = str(getTimestamp())+";"+str(dht11Sensor.temperature())+";"+ str(dht11Sensor.humidity()) with open(csvDatei, 'a') as f: print(line) f.write(line) f.write(lineBreak) time.sleep(2) Der Code erstellt auf dem Mikrocontroller die Datei "sensordaten.csv" welche über das Kontextmenü (rechte Maustaste auf der Datei) heruntergeladen werden kann. Zusätzlich wird beim Ausführen des Programmes die Daten auf der Kommandozeile ausgegeben.
Tumblr media
Thonny - MicroPython Programm zum aufzeichnen der Sensordaten in eine CSV Datei Diese CSV Datei kann recht einfach in Microsoft Excel importiert und die Daten verarbeitet und visualisiert werden.
Tumblr media
Microsoft Excel - importierte CSV Datei
Ausblick
Die ermittelten Sensordaten könnten wir auch via HTTP Request an ThingSpeak senden und dort extern speichern und visualisieren. Wie du das machst, erläutere ich dir im nächsten Beitrag, sei also gespannt. Read the full article
0 notes
chakytron · 4 years ago
Text
Shootout: Pi Pico vs ESP32(-S2) and STM32 Blackpill
Shootout: Pi Pico vs ESP32(-S2) and STM32 Blackpill
Shootout: Pi Pico vs ESP32(-S2) and STM32 Blackpill Category Main Description: The Raspberry Pi foundation spent a lot of money to create a new chip for makers and gives it away for cheap. If I believe all the fanboy’s videos, it is the most … TopTrengingTV Hunting the most trend video of the moment, every hour every day 24/7. Youtube Video Data Published At: 2021-01-31T08:00:07Z   Tags: …
Tumblr media
View On WordPress
0 notes
kitwallace · 3 years ago
Text
Sonification of Electricity usage
I have a smart meter with a display in the hall. Trouble is, I hardly ever look at it and the data shows cumulative values rather than the energy being used right now. I had the idea of sonifying the data being recorded by my ESP8826-based electricity monitor. Currently it reports every minute to my sensor dashboard.
I initially thought of running this on an ESP32 or Pi Pico W since both have onboard Wifi which could be used to retrieve the current data from the dashboard. I looked at a few ways to do this, such as using Midi and even ordered a sound module.
However it occured to me that rather than build a device to play the sounds, it could be done as a web page using JavaScript to play the files. At the very least, this would be very useful for testing sonification schemes .
The key HTML feature is the <audio> tag to define the audio resources and the Javascript API to play the audio track. Playing around with this feature, I realised that audio tracks can be looped and can run in parallel and the volume of each track can be changed as the tracks are played.
An update rate of once a minute is too slow to show devices being turned on and off so the ESP8266 monitor was changed to report to another channel every 6 seconds to the dashboard. Only the latest record is recorded on this channel since a full history would be too large. This reading is fetched from the dashboard at the same rate. I'm exploring the idea of multiple sound tracks whose volume is adjusted in response to the level of usage. Currently I'm using six bird songs. Tracks are allocated to bands and as the level of energy usage, measured in watts, increases, tracks are brought into the soundscape with increasing volume.
This approach looks promising because it can be run on a phone and carried around the house, and can be listened to when away from the house. This is the current version. Data fetching and sounds can be turned on and off and the thresholds changed.
The problem now is to design the soundscape and thresholds to best represent the changing energy level.
Other sonification ideas
I'd like to look at getting the national Grid data - obtainable via an API described in https://bscdocs.elexon.co.uk/guidance-notes/bmrs-api-and-data-push-user-guide
This and data from the tree moisture sensor are multi-channel and will need a different approach to generating the soundscape
Extras
Grid in January 2013
Bought this CJMCU-1334 breakout board for playing MP3 files £9
Tutorial
alternatively ESP32 supports BLE which could be used to send MIDI derived sounds to a phone
Free sounds https://freesound.org/
2 notes · View notes