#liquidcrystals
Explore tagged Tumblr posts
draegerit · 2 years ago
Text
Zugriffskontrolle mit Nummernfeld, ESP32 und Shelly
Tumblr media
In diesem Beitrag möchte ich dir zeigen, wie du eine Zugriffskontrolle mit einem Nummernfeld und einem ESP32 für einen Shelly bauen und programmieren kannst.
Tumblr media
Den Shelly habe ich dir bereits in diversen Beiträgen vorgestellt, wie zum Beispiel.: - Shelly Plus #1: Shelly Plus 1 Überblick - Einsatzgebiete für den Shelly - Shelly Plus #4: PIR Sensor am AddOn
Tumblr media
AZ-Delivery D1 Board mit ESP32 Chip
Tumblr media
Shelly Plus 1 Der Shelly verfügt über ein Relais, mit welchem wir Lasten bis zu 16A steuern können und wenn wir ein Schütz anklemmen, sogar noch größere. Mit diesem Relais können wir somit recht einfach ein Rolltor oder ein Schiebetor mit Motor steuern.
Was ist ein Schütz?
Ein Schütz, auch bekannt als Schaltschütz, dient zum Schalten von großen Lasten. Dabei wird mit einer kleinen Spannung eine große Last über einen elektromagnetischen Schalter gesteuert. Mithilfe dieses Bauteils können wir also mit einer kleinen Spannung einen großen Verbraucher schalten. Möchtest du mehr über dieses Bauteil lesen, so empfehle ich dir den Beitrag von elektro4000.de.
Tumblr media
Installationsschutz der Marke ABB
Ziel des Projektes - Zugriffskontrolle per Nummernfeld am ESP32 für Shelly
Das Ziel dieses kleinen Projektes ist es, eine Schaltung aufzubauen, mit welcher wir über ein Nummernfeld und einem ESP32 den Befehl an ein Shelly zum Aktivieren / Deaktivieren senden können. Die Stern-Taste soll mit der Funktion letzte Stelle löschen und die Raute-Taste mit Ausführen belegt werden. Die Eingabe soll dabei über ein LCD-Display ablesbar sein. https://youtu.be/BtRdL_shxT8
Benötigte Ressourcen für das Projekt
Wenn du das Projekt nachbauen möchtest, dann benötigst du: - einen Shelly, - einen ESP32, - ein Nummernfeld, - ein LCD-Display mit I2C Schnittstelle, - diverse Breadboardkabel, Der Shelly benötigt für den Betrieb eine Stromquelle von 12 V Gleichstrom oder 230 V Wechselstrom. Den ESP32 versorge ich in diesem Beispiel mit einem einfachen USB-Netzteil.
Aufbau der Schaltung - Nummernfeld am ESP32
Schließen wir zunächst das Nummernfeld und das LCD-Display an den ESP32 an.
Tumblr media
Nachfolgend die Pinbelegungen am ESP32 für diese Schaltung: BauteilESP323x4 KeypadPin 7GPIO12Pin 6GPIO14Pin 5GPIO27Pin 4GPIO16Pin 3GPIO17Pin 2GPIO25Pin 1GPIO26LCD-DisplayGNDGNDVCC5 VSDAGPIO21SCLGPIO22LED, grünGPIO19LED, rotGPIO18BuzzerGPIO23
Anschluss des Shelly
Der Shelly kann wie bereits erwähnt Verbraucher bis zu 16A schalten, das reicht im Hausgebrauch für die meisten Für diesen Aufbau verwende ich eine Lampe, welche im späteren Verlauf aktiviert / deaktiviert wird.
Tumblr media
Shelly Plus 1 mit Lampe Die Lampe habe ich wie im Beitrag Shelly Plus #1: Shelly Plus 1 Überblick mit einer Steckdose dargestellt angeschlossen.
Relais per HTTP Request steuern
Das Relais lässt sich sehr einfach per HTTP Request steuern. Die Dokumentation zur Schnittstelle findest du auf der Seite https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/HTTP/. Für das Absenden benötigen wir die IP-Adresse des Shellys diese findest du entweder in deinem Router oder in der Shelly App, wenn du das Gerät auswählst und dort die Geräteinformationen aufrufst.
Tumblr media
Geräteinformationen zum Shelly Zum Aktivieren des Relais müssen wir nur den Befehl im Browser oder per Postman ausführen. http:///relay/0?turn=on Wenn das Relais deaktiviert werden soll, so muss der Parameter "turn" lediglich auf den Wert "off" gestellt werden. http:///relay/0?turn=off Als Rückgabe erhält man ein JSON: {"ison": true, "has_timer":false, "timer_started_at": 0, "timer_duration": 0.00, "timer_remaining": 0.00, "source": "http"}
LCD-Display 16x2
Auf dem Display werden die verschiedenen Zustände und Meldungen angezeigt. Im Fehlerfall soll zbsp. wenn der Shelly nicht erreichbar ist, die Meldung "Device not found" angezeigt werden. Wenn die WiFi Verbindung verloren gegangen ist, dann soll "missing WiFi" angezeigt werden. Wenn eine gültige Pin eingegeben wurde, dann wird dem Benutzer "ACCESS GRANTED!" angezeigt. In allen anderen Fällen erscheint die Textzeile zum Eingeben einer Pin.
Tumblr media Tumblr media Tumblr media Tumblr media
Programmieren in der Arduino IDE
Wie man die 3x4 Matrix am Arduino programmiert, habe ich dir bereits im Beitrag Arduino Lektion 64: 3×4 Matrix Tastatur erläutert, diesen Beitrag verwende ich als Grundlage für das Programm. erzeugen einer Ausgabe am LCD-Display Zunächst binden wir die Bibliothek LiquidCrystal mit dem Befehl include ein. Diese kannst du über den internen Bibliotheksverwalter (1) der Arduino IDE installieren, indem du zunächst nach "LiquidCrystal" (2) suchst und dann die Schaltfläche "INSTALL" (3) am Eintrag "LiquidCrystal by Arduino, Adafruit" klickst. Wenn der Installationsprozess erfolgreich abgeschlossen ist, dann sollte der Text "INSTALLED" (4) angezeigt werden.
Tumblr media
Installieren der Bibliothek LiquidCrystal über den Bibliotheksmanager der Arduino IDE //Einbinden der Bibliotheken //für das LCD-Display #include #include //Es wird ein I2C Display mit 16 Zeichen, //und zwei Zeilen verwendet. LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { //initialisieren des LCD-Displays lcd.init(); lcd.backlight(); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Shelly Secure v1"); lcd.setCursor(0, 1); lcd.print("PIN:"); } /** * Funktion wird fortlaufen ausgeführt. **/ void loop() { //bleibt leer } lesen der Tasten am 3x4 Keypad Für die Programmierung des 3x4 Keypad benötigen wir wie auch beim LCD-Display eine Bibliothek, welche wir ebenso über den Bibliotheksmanager installieren. Dazu suchen wir nach "Keypad" (1) und wählen am Eintrag "Keypad by Mark Stanley, Alexander Brevig" die Schaltfläche "INSTALL" (2), wenn der Installationsprozess abgeschlossen ist, dann wird der Text "INSTALLED" (3) angezeigt.
Tumblr media
Installieren der Bibliothek Keypad über den Bibliotheksmanager der Arduino IDE //Einbinden der Bibliotheken //für das 3x4 Keypad #include //Definieren des Keypads const byte COLS = 3; //3 Spalten const byte ROWS = 4; //4 Zeilen //Pins von Links nach Rechts! byte colPins = { 12, 14, 27 }; byte rowPins = { 16, 17, 25, 26 }; //definieren wo welche Taste liegt. char KEYS = { { '#', '0', '*' }, { '9', '8', '7' }, { '6', '5', '4' }, { '3', '2', '1' } }; //Instanziieren eines Objektes vom Typ Keypad //mit den zuvor definierten Werten Keypad myKeypad = Keypad(makeKeymap(KEYS), rowPins, colPins, ROWS, COLS); void setup() { //begin der seriellen Kommunikation mit 115200 baud Serial.begin(115200); } /** * Funktion wird fortlaufen ausgeführt. **/ void loop() { //auslesen der gedrückten Taste char key = myKeypad.getKey(); //Wenn eine Taste betätigt ist, dann enthält die Variable key einen Wert if (key) { Serial.println(key); } } Aufbau einer WiFi-Verbindung und absenden eines HTTP Requests Die Bibliotheken für den ESP32 wurden bereits mit dem Boardtreiber installiert, daher müssen wir diese lediglich mit dem include Befehl einbinden. //Einbinden der Bibliotheken //für die WiFi Verbindung des ESP32 #include #include //SSID & Passwort für das lokale WiFi #define WIFI_SSID "***" #define WIFI_PASSWORD "***" void setup() { //begin der seriellen Kommunikation mit 115200 baud Serial.begin(115200); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(200); } //Wenn die Verbindung erfolgreich aufgebaut wurde, //dann soll die IP-Adresse auf der seriellen Schnittstelle //ausgegeben werden. Serial.println(""); Serial.println("WiFi connected."); Serial.print("IP address: "); Serial.println(WiFi.localIP()); Serial.println(); } /** * Funktion wird fortlaufen ausgeführt. **/ void loop() { //bleibt leer } Der komplette Code für die Zugriffskontrolle am ESP32 mit Nummernfeld für den Shelly Hier nun der komplette Code mit Kommentaren. Am Ende des Beitrages findest du einen Link, wo du diesen einfach als ZIP-Datei herunterladen kannst. //Einbinden der Bibliotheken //für das LCD-Display #include #include //für das 3x4 Keypad #include //für die WiFi Verbindung des ESP32 #include #include //SSID & Passwort für das lokale WiFi #define WIFI_SSID "****" #define WIFI_PASSWORD "*****" //Pins der LEDs #define ledGruen 19 #define ledRot 18 //Pin des Buzzers #define buzzer 23 //Konstanten für die PWM Signalerzeugung. //Diese Werte werden benötigt damit ein //Ton am Buzzer wiedergegeben werden kann. const int CHANNEL = 0; const int FREQUENZ = 2000; const int RESOLUTIONBITS = 12; const int TONE_FREQ = 600; //Es wird ein I2C Display mit 16 Zeichen, //und zwei Zeilen verwendet. LiquidCrystal_I2C lcd(0x27, 16, 2); //Definieren des Keypads const byte COLS = 3; //3 Spalten const byte ROWS = 4; //4 Zeilen //Pins von Links nach Rechts! byte colPins = { 12, 14, 27 }; byte rowPins = { 16, 17, 25, 26 }; //definieren wo welche Taste liegt. char KEYS = { { '#', '0', '*' }, { '9', '8', '7' }, { '6', '5', '4' }, { '3', '2', '1' } }; //Instanziieren eines Objektes vom Typ Keypad //mit den zuvor definierten Werten Keypad myKeypad = Keypad(makeKeymap(KEYS), rowPins, colPins, ROWS, COLS); //Index ab wo die Pineingabe startet. //Auf dem Display soll in Zeile 2 zunächst //das Wort "Pin:" stehen. int keyIndex = 4; //Index für die Anzahl der gedrückten Tasten int pinIndex = 0; //Auf dem Display sind lediglich 11 freie Stellen, //dieses bedeutet das eine Pin maximal 11 Stellen haben soll/kann. char pin = {}; //Die Pin welche später geprüft werden soll. //Die Raute am Ende signalisiert das Ende der Pin. const char PIN = { '1', '4', '6', '2', '#' }; //Feld zum speichern ob die Pin korrekt eingegeben wurde. bool accessGranted = false; //Die Adresse zum steuern des Relais. //Hier musst du deine IP-Adresse eintragen! //der Wert für den Key "turn" wird später im Code ergänzt. String shellyRelaisAddress = "http://192.168.178.101/relay/0?turn="; //Feld zum speichern des Relaisstatus bool relaisStatus = false; void setup() { //begin der seriellen Kommunikation mit 115200 baud Serial.begin(115200); //Definieren das die Pins der LEDs //und des Buzzers als Ausgang dient. pinMode(ledGruen, OUTPUT); pinMode(ledRot, OUTPUT); pinMode(buzzer, OUTPUT); //initial die rote LED aktivieren //und die grüne deaktivieren digitalWrite(ledRot, HIGH); digitalWrite(ledGruen, LOW); //konfigurieren des PWM Channels ledcSetup(CHANNEL, FREQUENZ, RESOLUTIONBITS); ledcAttachPin(buzzer, CHANNEL); //starten der WiFi-Verbindung initWiFi(); //initialisieren des LCD-Displays lcd.init(); lcd.backlight(); //initialisieren des Displays und der Felder init(); } /** * Funktion initialisiert die WiFi-Verbindung * Wenn die Verbindung aufgebaut wurde, dann wird * die IP-Adresse auf der seriellen Schnittstelle ausgegeben. **/ void initWiFi() { WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(200); } //Wenn die Verbindung erfolgreich aufgebaut wurde, //dann soll die IP-Adresse auf der seriellen Schnittstelle //ausgegeben werden. Serial.println(""); Serial.println("WiFi connected."); Serial.print("IP address: "); Serial.println(WiFi.localIP()); Serial.println(); } /** * Initialisiert das LCD-Display & die Felder **/ void init() { accessGranted = false; keyIndex = 4; pinIndex = 0; //zurücksetzen der eingegeben Zeichen pin = {}; //löscht das LCD-Display lcd.clear(); reset(); digitalWrite(ledRot, HIGH); digitalWrite(ledGruen, LOW); } /** * Funktion zeigt auf dem LCD-Display * in Zeile 1 den Text "Shelly Secure v1" an * in Zeile 2 den Text "PIN:" gefolgt von * den bisher eingegebenen Zeichen an. **/ void reset() { lcd.setCursor(0, 0); lcd.print("Shelly Secure v1"); lcd.setCursor(0, 1); lcd.print("PIN:"); //Schleife von 0 bis pinIndex, //wobei pinIndex maximal 11 Stellen haben kann. for (int i = 0; i < pinIndex; i++) { //den aktuellen Cursor um eins nach links schieben //das Zeichen aus dem Array an die Position schreiben lcd.setCursor(i + 4, 1); lcd.print(pin); } } /** * Wenn die eingegebene Pin ok ist dann wird, * das Display gelöscht und * die Textzeile "ACCESS GRANTED!" angezeigt. **/ void executeAccessGranted() { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Shelly Secure v1"); lcd.setCursor(0, 1); lcd.print("ACCESS GRANTED!"); //setzen des Feldes auf TRUE accessGranted = true; //aktivieren/deaktivieren des Relais setShellyRelaisStatus(); } /** * Wenn die WiFi-Verbindung erfolgreich aufgebaut wurde, * dann wird der Status des Relais umgekehrt * aus true wird false / aus false wird true * und je nach Wert dann * der Parameterwert "on" oder "off" angehängt. * Die URL sowie der HTTP-ResponseCode wird * für Debugausgaben in der seriellen Schnittstelle angezeigt. **/ int setShellyRelaisStatus() { if (WiFi.status() == WL_CONNECTED) { String command = shellyRelaisAddress; relaisStatus = !relaisStatus; if (relaisStatus) { command += "on"; digitalWrite(ledGruen, HIGH); digitalWrite(ledRot, LOW); } else { command += "off"; init(); } Serial.print("URL:"); Serial.println(command); HTTPClient http; http.setTimeout(1000); http.begin(command.c_str()); int httpResponseCode = http.GET(); Serial.print("HTTP Code:"); Serial.println(httpResponseCode); http.end(); //Ein HTTP-ResponseCode ungleich als 200 bedeutet ein Fehler. //In diesem Fall wird es mit hoher Wahrscheinlichkeit sein das, //der Shelly nicht erreichbar ist. if (httpResponseCode != 200) { //Ausgeben der Meldung auf dem Display printMessage("Device Read the full article
0 notes
allocenart · 1 month ago
Text
Tumblr media Tumblr media Tumblr media
[C] Forum Signature: Elsie
Chibi Flat Color Forum Signature from FR.
Dragon: Elsie Owner: liquidcrystal
These are exclusive commissions I get only from Flightrising Forum's! You can see and get one in my FlightRising Forum here. -
All my Social Medias: https://linktr.ee/allocen
40 notes · View notes
hell-raven · 1 year ago
Text
9 notes · View notes
alishaaishu2000 · 12 days ago
Text
Tumblr media
Liquid crystals
Liquid crystals are a unique state of matter that combines properties of both liquids and solids. In a liquid crystal, molecules flow like a liquid but maintain an ordered arrangement similar to a solid. This makes them useful in applications where precise control over light is needed, such as in LCD (liquid crystal display) screens. There are different types of liquid crystals, including nematic, smectic, and cholesteric, each with distinct molecular alignments and behaviors. These materials have revolutionized electronics, telecommunications, and displays by enabling energy-efficient devices with sharp, vivid displays.
International Chemistry Scientist Awards
Website: chemistryscientists.org
Contact us: [email protected]
Nominate  now: https://chemistryscientists.org/award-nomination/?ecategory=Awards&rcategory=Awardee
#sciencefather#researchawards#Professor,#Lecturer,#Scientist,#Scholar,#Researcher#LiquidCrystals #Science #Technology #LCD #Displays #MaterialsScience #Nanotechnology #Physics #SmartTech #Electronics #InnovativeMaterials #FutureTech #NematicLiquidCrystals #Cholesteric #Smectic #LiquidCrystalDisplays #TechInnovation #Photonics
👉 Don’t forget to like, share, and subscribe for more exciting content!
Get Connected Here: =============
Blogger : https://www.blogger.com/blog/post/edit/6961521080043227535/467226973388921229
Twitter : https://x.com/chemistryS79687
Pinterest : https://in.pinterest.com/chemistryaward/
Instagram: https://www.instagram.com/alishaaishu01/
Youtube : https://www.youtube.com/channel/UCAD_pDvz3ZHqv_3hf-N0taQ
Blaze
0 notes
0 notes
karolruzik · 26 days ago
Text
Jasne, oto kod dla Arduino, który odczytuje dane z modułu GPS i wyświetla szerokość i długość geograficzną na ekranie LCD:
Potrzebne biblioteki:
* SoftwareSerial.h: Do komunikacji z modułem GPS po serialu (jeśli używasz pinów innych niż sprzętowe TX/RX).
* LiquidCrystal.h: Do obsługi ekranu LCD.
* TinyGPS++.h: Do parsowania danych NMEA z modułu GPS.
Podłączenie:
* Moduł GPS:
* VCC -> 5V Arduino
* GND -> GND Arduino
* TX -> Pin cyfrowy Arduino (np. 2)
* RX -> Pin cyfrowy Arduino (np. 3)
* Ekran LCD:
* Zasilanie i masa zgodnie z instrukcją ekranu LCD
* Piny danych LCD do pinów cyfrowych Arduino (np. 4, 5, 6, 7, 8, 9)
* Pin RS LCD do pinu cyfrowego Arduino (np. 10)
* Pin E LCD do pinu cyfrowego Arduino (np. 11)
Kod:
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
#include <TinyGPS++.h>
// Piny dla modułu GPS (zmień, jeśli używasz innych)
#define GPS_RX 2
#define GPS_TX 3
// Piny dla ekranu LCD (zmień, jeśli używasz innych)
const int rs = 10, en = 11, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Obiekt dla modułu GPS
SoftwareSerial gpsSerial(GPS_RX, GPS_TX);
TinyGPSPlus gps;
void setup() {
// Inicjalizacja komunikacji szeregowej
Serial.begin(9600);
gpsSerial.begin(9600);
// Inicjalizacja ekranu LCD
lcd.begin(16, 2);
lcd.print("Czekam na GPS...");
}
void loop() {
// Odczyt danych z modułu GPS
while (gpsSerial.available() > 0) {
if (gps.encode(gpsSerial.read())) {
if (gps.location.isValid()) {
// Wyświetlanie szerokości i długości geograficznej na ekranie LCD
lcd.clear();
lcd.print("Szerokosc: ");
lcd.println(gps.location.lat(), 6);
lcd.print("Dlugosc: ");
lcd.println(gps.location.lng(), 6);
} else {
lcd.clear();
lcd.print("Brak sygnalu GPS");
}
}
}
}
Wyjaśnienie kodu:
* Inicjalizacja:
* Dołączenie potrzebnych bibliotek.
* Definicja pinów dla modułu GPS i ekranu LCD.
* Utworzenie obiektów dla komunikacji serialowej, ekranu LCD i modułu GPS.
* Setup:
* Inicjalizacja komunikacji szeregowej z modułem GPS i monitorem szeregowym.
* Inicjalizacja ekranu LCD i wyświetlenie początkowego komunikatu.
* Loop:
* Odczyt danych z modułu GPS za pomocą gpsSerial.available() i gps.encode().
* Sprawdzenie, czy dane GPS są poprawne za pomocą gps.location.isValid().
* Wyświetlenie szerokości i długości geograficznej na ekranie LCD za pomocą lcd.print() i lcd.println().
* Jeśli brak sygnału GPS, wyświetlenie odpowiedniego komunikatu.
Uwagi:
* Upewnij się, że masz zainstalowane potrzebne biblioteki (TinyGPS++ i LiquidCrystal).
* Zmień numery pinów w kodzie, jeśli podłączyłeś moduł GPS i ekran LCD do innych pinów Arduino.
* Kod wyświetla szerokość i długość geograficzną z dokładnością do 6 miejsc po przecinku.
* Czasami moduł GPS potrzebuje chwili, aby złapać sygnał. Upewnij się, że jesteś na otwartej przestrzeni, aby moduł mógł odebrać sygnał z satelitów.
1 note · View note
generalmacnamara · 3 months ago
Note
Yeah, but I can’t afford it. I had to fix my eyecap, apparently all the liquidcrystals melted. I do NOT have the money to fix it again.
Nor did I the first time. Which is why I didn’t pay.
.. Never heard of liquidcrystals before but, that just sounds expensive. Yikes.
0 notes
rnadvillain · 8 months ago
Text
trackpads seem like such impossible tech. and dont get me started on liquidcrystal display shit
0 notes
makers-muse · 9 months ago
Text
Smart Door Lock with Arduino
Tumblr media
Overview
This project is basically about opening the door on entering th password on keypad if the password is correct the door will open otherwise the gate will not open.
In this Door lock when the password is entered in the keypad the output will be shown in the LCD and if the password matches the door will get open.
Hardware required 
Arduino Uno R3
Resistor
Jumper Wires
Potentiometer
Buzzer
LCD
NPN transistor
Buzzer
Micro servo motor
Keypad (4*4)
Tumblr media
Fig 1.  Circuit Diagram
Arduino Code :
#include <Keypad.h> #include <LiquidCrystal.h> #include <Servo.h>
// Servo motor initialization Servo myservo; int pos = 0;
// LCD Connections LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
// Keypad setup const byte rows = 4; const byte cols = 3; char key[rows][cols] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; byte rowPins[rows] = {1, 2, 3, 4}; byte colPins[cols] = {5, 6, 7}; Keypad keypad = Keypad(makeKeymap(key), rowPins, colPins, rows, cols);
// Password for unlocking char* password = "4567"; int currentposit
Precautions
Connections should be done properly.
Arduino is case Sensitive so code accordingly.
Give different and appropriate colours to the wires.
Use resistors for sensors and LCD’s.
Do you have questions regarding our STEM program?
Contact us anytime.
Take your first step into the magical world of coding for kids
0 notes
alexanderrogge · 2 years ago
Text
Kiel University - Laser pulse creates exotic order in quantum material:
https://phys.org/news/2023-07-laser-pulse-exotic-quantum-material.html
#QuantumMaterial #LiquidCrystals #Crystals #LASER #HexaticState #Hexatic #MaterialsScience #Physics
0 notes
highpowerrocketryspace · 2 years ago
Text
Introduction Rockets have been the fascination of people for many years. The thrill of watching a rocket soar through the sky is something that cannot be described in words. However, to make the launch more interesting, we need to add a unique feature that can measure the rocket's height. This is where an altimeter comes into play. An altimeter is a device that measures altitude, which is essential in rocketry. While there are several commercially available altimeters, making one at home can be a fun and rewarding project. In this article, we will look at how to make a DIY model rocket altimeter. Materials Required - Arduino UNO board - BMP180 Barometric Sensor Module - LCD screen - Breadboard - Jumper wires - 10kΩ potentiometer - 9V battery - A battery clip - Prototyping board - Soldering iron and solder - Heat-shrink tubing - Electrical tape Step-by-Step Guide 1. Connect the BMP180 barometric sensor module to the Arduino UNO board. Connect the VIN pin of the BMP180 module to the 5V pin on the Arduino UNO board. Connect the GND pin of the BMP180 module to the GND pin on the Arduino UNO board. Connect the SDA pin of the BMP180 module to the A4 pin on the Arduino UNO board. Connect the SCL pin of the BMP180 module to the A5 pin on the Arduino UNO board. 2. Connect the LCD screen to the Arduino UNO board. Connect the VCC pin of the LCD module to the 5V pin on the Arduino UNO board. Connect the GND pin of the LCD module to the GND pin on the Arduino UNO board. Connect the SDA pin of the LCD module to the A4 pin on the Arduino UNO board. Connect the SCL pin of the LCD module to the A5 pin on the Arduino UNO board. Connect the RS pin of the LCD module to the 12th pin on the Arduino UNO board. Connect the E pin of the LCD module to the 11th pin on the Arduino UNO board. Connect the D4 pin of the LCD module to the 5th pin on the Arduino UNO board. Connect the D5 pin of the LCD module to the 4th pin on the Arduino UNO board. Connect the D6 pin of the LCD module to the 3rd pin on the Arduino UNO board. Connect the D7 pin of the LCD module to the 2nd pin on the Arduino UNO board. 3. Connect the 10kΩ potentiometer to the Arduino UNO board. Connect one leg of the potentiometer to the 5V pin on the Arduino UNO board. Connect the other leg of the potentiometer to the GND pin on the Arduino UNO board. Connect the middle leg of the potentiometer to the A0 pin on the Arduino UNO board. 4. Connect the 9V battery clip to the Arduino UNO board. Connect the red wire of the battery clip to the Vin pin on the Arduino UNO board. Connect the black wire of the battery clip to the GND pin on the Arduino UNO board. 5. Plug the Arduino UNO board into the breadboard. 6. Connect the BMP180 module to the prototyping board. Solder the SDA, SCL, VIN, and GND pins of the BMP180 module to the prototyping board. Solder a pin header to each pin. 7. Connect the LCD screen to the prototyping board. Solder each pin of the LCD screen to the prototyping board. 8. Connect the potentiometer to the prototyping board. Solder each leg of the potentiometer to the prototyping board. 9. Connect the Vin and GND pins of the prototyping board to the Vin and GND pins of the Arduino UNO board, respectively. 10. Connect the components on the breadboard using jumper wires as shown in the wiring diagram below. 11. Upload the following code to the Arduino UNO board: #include #include #include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085); void setup() lcd.begin(16, 2); lcd.print("Rocket Altimeter"); bmp.begin(); void loop() sensors_event_t event; bmp.getEvent(&event); float pressure = event.pressure; float altitude= bmp.pressureToAltitude(101325,pressure); lcd.setCursor(0,1); lcd.print("Altitude: "); lcd.print(altitude); lcd.print(" m"); delay(500); FAQs 1. What is an altimeter? An altimeter is a device that measures altitude, which is essential in rocketry.
2. Why do we need an altimeter in a model rocket? An altimeter provides information about the rocket's performance during the launch, which is important for safety reasons. 3. Can I buy a commercial altimeter instead of making one? Yes, there are several commercially available altimeters, but making one at home can be a fun and rewarding project. 4. Is it safe to build a DIY altimeter for a model rocket? Yes, as long as proper safety precautions are followed, such as using a stable power source and following standard soldering practices. Conclusion Building a DIY model rocket altimeter may seem daunting at first, but with the right materials and steps, it can be a fun and rewarding project. An altimeter provides essential information about a rocket's performance during launch, making it a valuable addition to any model rocket. With the step-by-step guide in this article, you can easily build your own altimeter and launch your rocket with confidence. Happy building! Images: Image credits: Freepik (rocket image) and author (altimeter wiring diagram). If you have any questions or comments Please contact us on our contact page or via our Facebook page. #diy #model #rocket #altimeter
0 notes
jahjoma · 3 years ago
Photo
Tumblr media
𝐏𝐨𝐧𝐠 2022 Oil on canvas 105x140 cm • • • • • • 𝘛𝘩𝘦 𝘦𝘯𝘥 𝘰𝘧 𝘱𝘢𝘪𝘯𝘵𝘪𝘯𝘨 𝘸𝘢𝘴 𝘦𝘯𝘷𝘪𝘴𝘪𝘰𝘯𝘦𝘥 𝘣𝘺 𝘈𝘯𝘥𝘳é 𝘉𝘳𝘦𝘵𝘰𝘯 𝘪𝘯 1928, 𝘢𝘴 𝘪𝘵 𝘩𝘢𝘥 𝘣𝘦𝘦𝘯 𝘢𝘭𝘳𝘦𝘢𝘥𝘺 𝘣𝘦𝘧𝘰𝘳𝘦 𝘩𝘪𝘮 𝘣𝘺 𝘔𝘢𝘭𝘦𝘷𝘪𝘤𝘩 𝘪𝘯 1915, 𝘪𝘯 𝘢 𝘴𝘰𝘭𝘪𝘥𝘭𝘺 𝘣𝘭𝘢𝘤𝘬 𝘴𝘲𝘶𝘢𝘳𝘦, 𝘥𝘦𝘤𝘳𝘦𝘦𝘥 𝘵𝘩𝘦 𝘻𝘦𝘳𝘰 𝘰𝘧 𝘱𝘢𝘪𝘯𝘵𝘪𝘯𝘨. 𝘛𝘪𝘮𝘦, 𝘭𝘪𝘨𝘩𝘵 𝘢𝘯𝘥 𝘮𝘰𝘷𝘦𝘮𝘦𝘯𝘵 𝘰𝘣𝘭𝘪𝘵𝘦𝘳𝘢𝘵𝘦 𝘱𝘢𝘪𝘯𝘵𝘪𝘯𝘨 𝘪𝘯𝘵𝘰 𝘯𝘰𝘵𝘩𝘪𝘯𝘨𝘯𝘦𝘴𝘴, 𝘶𝘯𝘵𝘪𝘭 𝘵𝘩𝘦 𝘣𝘭𝘢𝘤𝘬 𝘪𝘴 𝘸𝘩𝘪𝘵𝘦𝘯𝘦𝘥 𝘢𝘯𝘥 𝘵𝘩𝘦 𝘤𝘢𝘯𝘷𝘢𝘴 𝘣𝘦𝘤𝘰𝘮𝘦𝘴 𝘢 𝘴𝘤𝘳𝘦𝘦𝘯. 𝘈𝘯𝘥 𝘪𝘧 𝘴𝘰𝘮𝘦𝘵𝘩𝘪𝘯𝘨 𝘭𝘪𝘬𝘦 𝘱𝘢𝘪𝘯𝘵𝘪𝘯𝘨 𝘸𝘢𝘴 𝘵𝘰 𝘴𝘵𝘢𝘨𝘨𝘦𝘳 𝘰𝘯, 𝘪𝘵 𝘩𝘢𝘥 𝘵𝘰 𝘣𝘦𝘤𝘰𝘮𝘦, 𝘢𝘱𝘱𝘢𝘳𝘦𝘯𝘵𝘭𝘺, 𝘫𝘶𝘴𝘵 𝘢 𝘤𝘰𝘯𝘤𝘰𝘤𝘵𝘪𝘰𝘯 𝘰𝘧 𝘣𝘢𝘴𝘦 𝘦𝘭𝘦𝘮𝘦𝘯𝘵𝘴, 𝘰𝘧 𝘤𝘰𝘭𝘰𝘶𝘳 𝘢𝘯𝘥 𝘰𝘧 𝘭𝘪𝘯𝘦, 𝘥𝘪𝘴𝘢𝘴𝘴𝘰𝘤𝘪𝘢𝘵𝘦𝘥 𝘧𝘳𝘰𝘮 𝘯𝘢𝘵𝘶𝘳𝘦, 𝘪𝘵𝘴 𝘵𝘪𝘮𝘦, 𝘪𝘵𝘴 𝘱𝘩𝘺𝘴𝘪𝘤𝘴 𝘢𝘯𝘥 𝘪𝘵𝘴 𝘱𝘦𝘳𝘴𝘱𝘦𝘤𝘵𝘪𝘷𝘦𝘴. 𝘌𝘷𝘦𝘯𝘵𝘶𝘢𝘭𝘭𝘺, 𝘱𝘢𝘪𝘯𝘵𝘪𝘯𝘨 𝘯𝘰 𝘭𝘰𝘯𝘨𝘦𝘳 𝘳𝘦𝘴𝘦𝘮𝘣𝘭𝘦𝘥, 𝘣𝘶𝘵 𝘳𝘢𝘵𝘩𝘦𝘳 𝘳𝘦𝘢𝘴𝘴𝘦𝘮𝘣𝘭𝘦𝘥 𝘪𝘯 𝘷𝘢𝘳𝘪𝘰𝘶𝘴 𝘮𝘰𝘥𝘦𝘴 𝘰𝘧 𝘢𝘣𝘴𝘵𝘳𝘢𝘤𝘵𝘪𝘰𝘯. 𝘉𝘶𝘵 𝘵𝘩𝘦 𝘴𝘤𝘳𝘦𝘦𝘯, 𝘵𝘩𝘪𝘴 𝘢𝘴𝘴𝘦𝘮𝘣𝘭𝘦𝘥 𝘴𝘢𝘯𝘥𝘸𝘪𝘤𝘩 𝘰𝘧 𝘦𝘭𝘦𝘤𝘵𝘳𝘪𝘤𝘢𝘭 𝘪𝘮𝘱𝘶𝘭𝘴𝘦𝘴, 𝘵𝘢𝘳𝘨𝘦𝘵𝘴 𝘳𝘦𝘴𝘦𝘮𝘣𝘭𝘢𝘯𝘤𝘦. ~ Liquid Crystals, Esther Leslie • • • 📷 @cfq • • • #visualart #markmaking #painting #painter #kunst #contemporaryart #futureart #arte #artist #artcollector #oiloncanvas #arttoday #paintingtoday #beauxarts #contemporarypainting #oilpainting #futurepainting #artistlaboratorycall #estherleslie #liquidcrystals (KRANK Art Gallery) https://www.instagram.com/p/CdwLvIRr9g9/?igshid=NGJjMDIxMWI=
6 notes · View notes
draegerit · 15 days ago
Text
Zwei Temperatursensoren mit Arduino nutzen – so geht’s!
Tumblr media
In meinem Beitrag „Arduino-Temperaturüberwachung: Relais per Schwellwert & Tastersteuerung mit LCD-Anzeige“ habe ich gezeigt, wie man mit einem Arduino, einem Temperatursensor und einem LCD-Display eine einfache Temperaturüberwachung realisieren kann. Ein Leser meines Blogs hatte eine großartige Idee zur Erweiterung: Ein zweiter Temperatursensor soll zusätzlich die Außentemperatur auf dem Display anzeigen. https://youtu.be/svC6ph9kCJM Solche Community-Ideen sind immer willkommen, und ich freue mich, wenn meine Projekte weitergedacht und optimiert werden! In diesem Beitrag zeige ich, wie du das bestehende Setup mit einem zweiten Sensor erweiterst, sodass sowohl die Innen- als auch die Außentemperatur angezeigt werden.
Tumblr media
Schaltung - Temperaturgesteuertes Relais am Arduino mit zwei DS18B20 Sensoren
Was ist das Ziel?
Das eigentliche Ziel ist die Steuerung eines Relais via Schwellwert mit einem Temperatursensor DS18B20 am Arduino. Wie das funktioniert, habe ich bereits ausführlich im oben verlinkten Beitrag erklärt. In diesem Beitrag geht es nun darum, Arduino zwei Temperatursensoren hinzuzufügen, sodass du sowohl die Innen- als auch die Außentemperatur messen und auf dem Display anzeigen kannst.
Der DS18B20 Sensor im Detail
Zunächst zu den technischen Daten des Sensors: - jeder Sensor hat einen eindeutigen und einmaligen 64Bit Code auf dem onboard ROM - Betriebsspannung – 3.0V bis 5.5V - Messbarer Temperaturbereich von -55 °C bis +125 °C - Toleranz – ±0.5 °C - Auflösung des Thermometers von 9 bis 12Bit
Tumblr media
Den DS18B20 Sensor bekommst du als einzelnen Baustein in Form TO-92 oder vergossen in einer wasserdichten Metallkapsel.
Tumblr media
verschiedene DS18B20 Sensoren Pinout des Sensors Der Sensor besitzt eine flache sowie eine abgerundete Seite. Wenn wir ihn von oben betrachten, sodass die flache Seite nach vorne zeigt, ergibt sich folgende Pinbelegung (von links nach rechts): - Pin 1 - GND - Pin 2 - DATA - Pin 3 - Vdd / VCC
Tumblr media
Pinout - Temperatursensor DS18B20
Erweiterung der Temperaturüberwachung: Umschalten per Taster
Die bestehende Schaltung erweitern wir um einen Temperatursensor und einen Taster. Der Taster dient später zum umschalten zwischen den Ansichten auf dem Display.
Tumblr media
Schaltung - zwei DS18B20 LCD-Anzeige und Relais am Arduino
Programmieren der zwei Temperatursensoren in der Arduino IDE
In den nachfolgenden Abschnitten möchte ich dir erläutern wie du den bestehenden Code lauffähig machst (dazu werden ein paar Bibliotheken benötigt) und um einen zweiten Sensor & einen zusätzlichen Taster erweiterst. Benötigte Bibliotheken Bevor wir mit der Programmierung starten können, müssen wir einpaar Bibliotheken für die verwendeten Komponenten installieren - LC-Display > https://docs.arduino.cc/libraries/liquidcrystal-i2c/ - Taster > https://github.com/thomasfredericks/Bounce2 - Temperatursensor DS18B20 > https://github.com/RobTillaart/DS18B20_INT Wie man eine ZIP-Bibliothek in der Arduino IDE installiert, habe ich dir bereits im Beitrag Arduino IDE, Einbinden einer Bibliothek ausführlich erläutert. Die beiden Bibliotheken Bounce2 & DS18B20_INT findest du auch im Bibliotheksverwalter der Arduino IDE und kannst du von dort auch einfach mit einem klick installieren.
Tumblr media Tumblr media Tumblr media
Bei der Bibliothek DS18B20_INT musst du zusätzlich die Abhängigkeit OneWire installieren und somit die Schaltfläche "ALLE INSTALLIEREN" wählen. Schritt-für-Schritt Anleitung zum erweitern des Codes für einen zweiten Sensor Nachfolgend die sieben Schritte welche notwendig sind einen zweiten Temperatursensor vom Typ DS18B20 in den Code zu implementieren. Schritt 1 - definieren der Pins für Sensor & Taster Zunächst definieren wir die beiden Pins für jeweils den Sensor und den Taster. //Der zweite Temperatursensor vom Typ DS18B20 ist am //digitalen Pin D6 angeschlossen. #define ds18b20_2 6 //Taster "sensor_select" am digitalen Pin D7 angeschlossen. #define tasterSensorSelect 7 Schritt 2 - Sensor initialisieren Der Sensor DS18B20 verfügt über eine eigene UID und theoretisch kann man die beiden Sensoren auch über einen digitalen Pin verwalten (siehe DS18B20-Sensoren am Raspberry Pi Pico W: Temperaturdaten auf einer Webseite anzeigen) da der Arduino genügend freie Pins hat dupliziere ich hier einfach die beiden Aufrufe. OneWire oneWire2(ds18b20_2); DS18B20_INT sensor2(&oneWire2); Schritt 3 - Feld zum speichern der aktuellen Auswahl Wenn wir den Taster zur Sensorauswahl betätigen möchte ich zwischen diesen beiden wechseln, dazu merke ich mir den Zustand als Zahl im Feld "sensorAuswahl". //Auswahl //0 - Sensor "normal" //1 - Sensor "außen" - nur lesen int sensorAuswahl = 0; Schritt 5 - Taster für Sensorauswahl entprellen Den Taster habe ich wie die anderen auch ohne 10 kOhm PullUp / PullDown Widerstand angeschlossen. Dieses löse ich über den internen 10 kOhm Widerstand welcher mit der MCU verbunden ist. Zusätzlich entprelle ich den Taster über die Bibliothek Bounce2. Bounce btnSensorSelect = Bounce(); void setup(){ ... btnSensorSelect.attach(tasterSensorSelect, INPUT_PULLUP); btnSensorSelect.interval(BTN_INTERVALL); ... } Schritt 6 - Funktion loop erweitern für die Sensorauswahl In der Funktion loop müssen wir nun eine zusätzliche If-Bedingung hinzufügen um auf den Statuswechsel des Tasters zu reagieren und den Wert im Feld "sensorAuswahl" umzukehren. Zusätzlich wird der bisherige Code nur ausgeführt wenn der Wert des Feldes "sensorAuswahl" gleich 0 ist, andernfalls (also wenn dieser 1 ist) wird geprüft ob das Display aktualisiert werden soll und dann der Wert des Außensensors über die Funktion writeLcdDisplay angezeigt. void loop() { ... btnSensorSelect.update(); if (btnSensorSelect.fell()) { sensorAuswahl = sensorAuswahl == 0 ? 1 : 0; writeLcdDisplay(); } if (sensorAuswahl == 0) { ... } else if (sensorAuswahl == 1) { if ((lastUpdate + INTERVALL) //überschreiben des Wertes für die letzte Ausführung lastUpdate = millis(); writeLcdDisplay(); } } Schritt 7 - Funktion writeLcdDisplay erweitern Die Funktion writeLcdDisplay dient dazu die Werte auf dem Display anzuzeigen. Hier müssen wir zusätzlich noch eine If-Bedingung implementieren in welcher wir wieder das Feld "sensorAuswahl" prüfen. Wenn der Außensensor angezeigt werden soll, dann wird in der ersten Zeile der Text "Aussensensor" angezeigt und in der zweiten Zeile der Text "akt. Temp.:" inkl. dem aktuellen Sensorwert. void writeLcdDisplay() { ... if (sensorAuswahl == 0) { ... } else if (sensorAuswahl == 1) { sensor2.requestTemperatures(); printTextAt(0, 0, "Aussensensor"); printTextAt(1, 0, ">akt. Temp.:" + String(sensor2.getTempC(), DEC)); } fertiger Sketch zum anzeigen von zwei Sensorwerten auf einem LC-Display Nachfolgend nun der fertige Sketch zum anzeigen von zwei Sensorwerten am Arduino inkl. Temperatursteuerung. Programm: zwei Temperatursensoren für eine Temperatursteuerung am Arduino UNOHerunterladen Read the full article
0 notes
allocenart · 20 days ago
Text
Tumblr media Tumblr media Tumblr media
[C] Forum Signature: Maverick
Chibi Flat Color Forum Signature from FR.
Dragon: Maverick Owner: liquidcrystal
These are exclusive commissions I get only from Flightrising Forum's! You can see and get one in my FlightRising Forum here. - https://www1.flightrising.com/forums/art/3342491
All my Social Medias: https://linktr.ee/allocen
17 notes · View notes
hell-raven · 1 year ago
Text
0 notes
alishaaishu2000 · 12 days ago
Text
Tumblr media
Liquid crystals
Liquid crystals are a unique state of matter that combines properties of both liquids and solids. In a liquid crystal, molecules flow like a liquid but maintain an ordered arrangement similar to a solid. This makes them useful in applications where precise control over light is needed, such as in LCD (liquid crystal display) screens. There are different types of liquid crystals, including nematic, smectic, and cholesteric, each with distinct molecular alignments and behaviors. These materials have revolutionized electronics, telecommunications, and displays by enabling energy-efficient devices with sharp, vivid displays.
International Chemistry Scientist Awards
Website: chemistryscientists.org
Contact us: [email protected]
Nominate  now: https://chemistryscientists.org/award-nomination/?ecategory=Awards&rcategory=Awardee
#sciencefather#researchawards#Professor,#Lecturer,#Scientist,#Scholar,#Researcher#LiquidCrystals #Science #Technology #LCD #Displays #MaterialsScience #Nanotechnology #Physics #SmartTech #Electronics #InnovativeMaterials #FutureTech #NematicLiquidCrystals #Cholesteric #Smectic #LiquidCrystalDisplays #TechInnovation #Photonics
👉 Don’t forget to like, share, and subscribe for more exciting content!
Get Connected Here: =============
Blogger : https://www.blogger.com/blog/post/edit/6961521080043227535/467226973388921229
Twitter : https://x.com/chemistryS79687
Pinterest : https://in.pinterest.com/chemistryaward/
Instagram: https://www.instagram.com/alishaaishu01/
Youtube : https://www.youtube.com/channel/UCAD_pDvz3ZHqv_3hf-N0taQ
Blaze
0 notes
0 notes
deltawave · 4 years ago
Video
#waterconsciousness #water #livingonwater #livingonaboat #lifeonwater #watermeditation #watersecret #waterawareness #meditationonwater #relaxation #relaxationonwater #meditation #bodycleansing #liquidcrystals #waterritual #waterintelligence #waterfload #waterproperties #elementwater #waterdrops #waterflood #waterflooding Water is the ultimate carrier of information in our body. Our neurons transmit electrical signals through liquid crystals, they absorb and release water shaping a very sophisticated way of communicating between all body parts. In the same way, water acts as the ultimate neurotransmitter between all parts of the natural world. All ecosystems are connected by water, and damage to one ecosystem causes ripple effects throughout the world. Knowing that water is our body and earth's primordial neurotransmitter, it is essential to take every big water events into account as we work to restore any living system, our body or our surroundings. I advise practitioners to experience meditation on water or in front of water and ask yourself: what kind of subtle information is this water carrying? What part of the bigger plan is it showing me? And what is the water movement mirroring right now, what is it telling me about myself? As a meditative relaxation coach I teach practical exercises and mindful relaxation movementjns, on site and online, adapted for private individuals, practitioners, groups and professionals. For a private online session or a group class mail me at: [email protected] Alex Mero Meditation Movement Body-Mind Relaxation (at Belgium) https://www.instagram.com/p/CRgzeUjDbCU/?utm_medium=tumblr
1 note · View note