Tumgik
#bme280 sensor
techcree · 2 years
Text
Raspberry Pi und Raspbi PicoW + Sensoren (2/2)
Tumblr media
Jetzt geht's um den Raspberry Pi PicoW (WLAN) und den BME280 Sensor.
Im ersten Teil dieser kleinen Beitragsserie sind wir insbesondere auf den BME680 bzw. 688 eingegangen. Diese beiden Sensoren eignen sich aber aktuell nicht für die Verwendung in verbindung mit dem Pico oder PicoW wegen der noch fehlenden Bibliothek für Micropython. In Verbindung mit dem Raspberry Pi 4 bspw. läufen sie aber prima.
Für den Pico und auch den PicoW allerdings bitet sich der BME280 an. Hierzu findet Ihr bspw. in der Verwendung mit der ThonnyIDE und im Menü PlugIns Installieren unter Suche von BME280 auch die "micropython-bme280" Bibliothek (siehe Bild in Position 3).
Nicht vergessen! Um die "Libary" installieren zu können muss der Pico verbunden sein, denn die Lib muss direkt auf den Pico geschrieben werden können. Bevor wir weiter fortfahren nochmal der Hinweis: Dieser Beitrag enthält kostenlose und unbezahlte Werbung!
Tumblr media
Angschlossen an den PicoW habe ich den Sensor dann wie folgt: Je vom BME280 ausgehend auf die GP's des PicoW -> SDA an GPIO 0, SCL an GPIO1, 2-5V an Pin 36 und GND an den dreiiten GND GP-Pin rechts. Der Sensor Breakout ist gut beschriftet und es empfiehlt sich Pins anzulöten sofern ihr nicht einen Breakout Garden oder ähnliches verwendet. Dazu später mehr.
Dieser Sensor liefert uns Daten über Temperatur, Luftfeuchtigkeit und Luftdruck. Ihr dürft allerdings nicht vergessen, dass es ggf. einige Einflüsse gibt die eine ganz genaue Messung so nicht möglich machen. Die Infos die wir also vom Senso erhalten sind ggf. mit etwas Vorsicht zu betrachten. Wer also nicht gerade tausendprozentig korrekte Werte erwartet bekommt mit dem Sensor aber ein tolles Stück technik zum kleinen Preis.
Tumblr media
Auf die Betankung des PicoW mit dem passenden .uf2 File und die generelle Erstinbetriebnahme etc. gehe ich hier an der Stelle nicht im Detail ein. Es gibt dazu auf der Website von Raspberry Pi umfangreiche Infos und zahlreiche Tutorials im Web und auch insbesondere auf YouTube.
Je nach Lieferant könnt ihr den PicoW auch mit bereits verlöteten Pinleisten oder eben ohne bekommen. In der Regel kommt der Pico und PicoW aber ohne verlötete Pinleisten. Das aber nur am Rande. Also bei der Bestellung darauf achten oder entsprechendes Zubehör eben gleich mitbestellen.
Tumblr media
Wie ihr auf dem Bild sehen könnt verwende ich eine GPIO Erweiterungsplatte bei der die GPIOs dann aber gegenüber dem Pico im Original spiegelverkehrt dargestellt werden. Wie bereits kurz angesprochen gibt es sogenannte Breakout Garden. Solltet ihr im Besitz von soetwas sein braucht ihr den BME280 nicht verlöten bzw. dürft den dann auch nicht mit PINs verlöten. Hier wird der BME280 und eben auch andere Breakouts einfach gesteckt.
Es kommt letztlich darauf an wie fest eure installation bzw. eurer Projekt auf Dauer ausgelegt werden soll. Natürlich könnte man auch eine riekte Verlötung zwischen PicoW und dem Breakout herstellen und noch ein schönes Gehäuse dazu mit dem 3D Drucker erstellen. Also beispielsweise wenn ihr dauerhaft den PicoW als kleine Messstation irgendwo einsetzen möchtet. Wenn ihr aber noch weitere Projekte plant und immer mal was Neues ausprobieren möchtet sind solche Lösungen, wie der Breakout Garden dafür natürlich super geeignet.
Tumblr media
Übrigens handelt es sich um den hier abgebildeten (Bildquelle: Pimoroni.com) um den Pimoroni Breakout Garden. So genug von der Seite, kommen wir nun mal zum Progrmmieren. Es gibt natürlich noch andere Wege als mit Micropython, doch für viele hat sich Micropython in Verbindung mit diesen Microcontrollern von Raspberry Pi schlicht als vorteilhafter erweisen. Gerade auch weil der Bezug zu Python so eng ist. Wenn wir die Verbindung zum PicoW über die ThonnyIDE hergestellt haben, die Libary installiert haben und unsere Micropython Scripte geschrieben haben sieht das ganze dann etwa so aus.
Dabei empfehle ich die Zugangsdaten eures WLAN's in einer gesonderten Datei abzulegen und euch diese Daten dann im hauptscript reinzuladen. In meinem Fall nennt die sich secret.py in der die Zugangdaten meines WLAN's zu finden sind. Der Befehl sich dann in der main.py, also dem eigentlichen auszuführenden Script zu importieren lautet dann: "from secret import ssid, password". Das ziel ist es aber nicht nur die reinen Sensordaten aus dem Senso auszulesen, sondern eine Website zu haben über die wir die Messergebnisse anzeigen wollen.
Tumblr media
Wir müssen den PicoW also einmal sich mit dem heimischen WLAN verbinden lassen, die Zugangsdaten dazu verarbeiten, die Sensordaten auslesen und eine Website anzeigen. Da der PicoW wenn er erfolgreich sich mit dem WLAN verbunden hat eine IP Adresse bekommt, könnt ihr dann im Browser eben diese IP Adresse einfach in der URL-Leiste eingeben und euch die Website die vom PicoW erzeugt wird aufrufen.
Noch ein kleiner Tipp: Wenn ihr keine festen IP Adressen an eure Endgeräte vergebt, sonder eben DHCP aktiviert habt, so kann es sein, dass der PicoW jedesmal wenn ihr euch verbindet eine andere IP Adresse bekommt. Im Fall meiner Fritzbox 7590 kann ich aber einstellen, dem PicoW möglichst immer die gleiche IP Adresse zuzuteilen auch unter DHCP. Das macht es dann etwas einfacher. Und nochmal - nie mischen! Keine Endgeräte auf denen feste IP Adressen konfiguriert sind an einem Router betreiben der auf DHCP läuft. Das kann ziemlich schiefgehen. Im schlimmsten Fall schießt ihr euch den Router ab oder bringt ihn zum stehen.
Tumblr media
Der große Vorteil des PicoW ist die WLAN Funktionalität, dank des auf dem Board festverbauten WLAN Moduls. So lässt sich der PicoW als Mini-Webserver betreiben. Es gibt auch hier verschiedenen Möglichkeiten das zu nutzen. Ich gehe später noch dazu kurz auf Phew ein um euch den Unterschied zu verdeutlichen. In meinem aktuellen Beispiel ist aber der html-Code im Pythonscript eingebaut. Am Ende bekommen ich so nachfolgende Website die sich in regelmäßigen Abständen aktuallisiert und dann auch jeweils die aktuellen Messwerte anzeigt.
Genau an dem Punkt ist es etwas Trickreich, denn ihr müsst dafür sorgen dass durch die Herstellung der Verbindung zum WLAN und dem Anzeigen der Messdaten kein Konflikt entsteht. Den vollständigen Code findet ihr auf meinen GitHub Seiten unter: https://github.com/techcree/PiPicoW
Ihr findet aber auch sonst im Netz sicher viele Beispiele dieser Art und schaut einfach was für euch da am Besten passt. Es ist eine tolle Sache, dass viele wie auch in meinem Fall Code kostenlos und freinutzbar zur Verfügung stellen. Dieser dann verändert und angepasst wird und wiederum zur Verfügung gestellt wird. So stehen im Lauf der Zeit zahlreiche version für allerlei Anwendungen zur Verfügung und das ist eine prima Sache. Und genau hier ist GitHub auch eine der in meinen Augen besten Plattformen für diese Zwecke.
Tumblr media
Noch eine kleine lustige Geschichte zum Schluss! Ziemlich bekannt ist der Robotmaker und YouTuber Kevin McAleer. Ich hatte bereits in anderen Projekten schon immer wieder Kontakt zu ihm und anderen in diesem Umfeld. Bei einem seiner Beiträge hatte ich über den Chat das Thema Phew angesprochen. Dabei handelt es sich um einen alternativen Weg bei dem die .html Seite von hauptscript getrennt werden kann. Es ist im Prinzip eine Webserver Architektur, die euch zudem noch einiges mehr ermöglichen kann.
Zum Thema Phew in Verbindung mit dem Raspberry Pi PicoW und dem BME280 Sensor hatte ich speziell hier Kevin angesprochen ggf. bei nächster Gelegenheit einmal ein extra Video zu machen. Kevin McAleer fand die Idee rehct gut und wir schauen mal ob er es zeitlich schafft. Er ist da einfach in Sachen YouTube ein richtiger Profi und ich könnte euch das garnicht so cool rüberbringen wie er das kann.
Tumblr media
Das Video über das ich hier spreche findet ihr übrigens auf seinem YouTube Kanal. Ich wünsch euch an der Stelle viel Spaß mit dem PicoW und ggf. auch mit diesem ganz konkreten Projekt.
0 notes
adafruit · 3 months
Text
Tumblr media
Coming soon - This ESP32-C6 feather is a Matter of fact
ESP32-C6 (https://www.adafruit.com/product/5672) is Espressif’s first Wi-Fi 6 SoC integrating 2.4 GHz Wi-Fi 6, Bluetooth 5 (LE) and the 802.15.4 protocol. It brings the goodness you know from the low-cost C3 series (https://www.adafruit.com/product/5337) and improves it with Zigbee/802.15.4 at 2.4Ghz. That means it could make for great Matter (https://csa-iot.org/all-solutions/matter/) development hardware!
We took our Feather ESP32-S2 (https://www.adafruit.com/product/5000) and swapped out the 'S2 for a C6. Plus some re-routing and here's what we've got: a C6 Feather with lots of GPIO, lipoly charging and monitoring with the MAX17048, (https://www.adafruit.com/product/5580) NeoPixel, I2C Stemma QT port, and a second low-quiescent LDO for disabling the I2C and NeoPixel when we want ultra-low power usage. We also tossed a BME280 (https://www.adafruit.com/product/2652) on there, so you could use it immediately as a low power temp/hum/pressure sensor.
4 notes · View notes
diyprojectslabs · 9 months
Text
Interfacing BME688 Environmental Gas Sensor with Raspberry Pi Pico
This article will guide you on how to interface the BME688 environmental sensor with Raspberry Pi Pico using MicroPython. The BME688 is a low-power sensor that can measure temperature, humidity, pressure, and gas. The sensor is connected to the Raspberry Pi Pico via I2C Communication. We use MicroPython code to read the BME688 sensor data and display it on the Thonny Shell. The sensor is ideal…
Tumblr media
View On WordPress
1 note · View note
campuscomponent · 2 months
Text
Understanding Serial Peripheral Interface Communication Protocol
In this article we will learn in depth about the Serial Peripheral interface which is among the widely used communication protocol in Embedded and IOT world.
What is Serial Peripheral Interface - SPI?
SPI is a synchronous serial communication protocol that enables communication between microcontrollers, sensors, memory devices, and other peripheral devices. It allows for full-duplex communication, meaning data can be sent and received simultaneously.
Serial Peripheral Interface (SPI) offers advantages such as high-speed data transfer, simplicity, and versatility.
The serial peripheral interface (SPI) is a communication interaction protocol used to send data between multiple IoT Devices. The Serial Peripheral Interface (SPI) offers data exchange among multiple devices through a master-slave configuration. In SPI the master device begins communication, by sending action bits to the slave devices. In SPI protocol one device serves as the master, with the rest acting as slaves. These modules operate synchronously and SPI ensures simultaneous transmission and reception of data at high speeds. SPI proves efficient for inter-device communication, offering higher data transfer rates compared to alternative interfaces. Its ability to handle bidirectional data flow concurrently enhances efficiency. However, SPI requires more signal lines compared to alternative protocols.
Sample ESP32 code to integrate BME280 (Pressure, Temperature, Humidity) SPI Sensor using Adafruit_BME280 library:
/*
 Rui Santos
 Complete project details at https://RandomNerdTutorials.com/esp32-spi-communication-arduino/
 Based on the Adafruit_BME280_Library example: https://github.com/adafruit/Adafruit_BME280_Library/blob/master/examples/bme280test/bme280test.ino
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files.
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.
*/
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <SPI.h>
#define BME_SCK 25
#define BME_MISO 32
#define BME_MOSI 26
#define BME_CS 33
#define SEALEVELPRESSURE_HPA (1013.25)
//Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
unsigned long delayTime;
void setup() {
 Serial.begin(9600);
 Serial.println(F("BME280 test"));
 bool status;
 // default settings
 // (you can also pass in a Wire library object like &Wire2)
 status = bme.begin();
 if (!status) {
 Serial.println("Could not find a valid BME280 sensor, check wiring!");
 while (1);
 }
 Serial.println("-- Default Test --");
 delayTime = 1000;
 Serial.println();
}
void loop() {
 printValues();
 delay(delayTime);
}
void printValues() {
 Serial.print("Temperature = ");
 Serial.print(bme.readTemperature());
 Serial.println(" *C");
 // Convert temperature to Fahrenheit
 /*Serial.print("Temperature = ");
 Serial.print(1.8 * bme.readTemperature() + 32);
 Serial.println(" *F");*/
 Serial.print("Pressure = ");
 Serial.print(bme.readPressure() / 100.0F);
 Serial.println(" hPa");
 Serial.print("Approx. Altitude = ");
 Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
 Serial.println(" m");
 Serial.print("Humidity = ");
 Serial.print(bme.readHumidity());
 Serial.println(" %");
 Serial.println();
}
Key Features of SPI
Full-Duplex Communication: SPI allows simultaneous data transmission and reception between the master and slave devices.
Master-Slave Architecture: One master device controls the communication and initiates data transfer to one or more slave devices.
Synchronous Communication: Data transfer in SPI is synchronized with a clock signal generated by the master device.
Variable Data Frame Format: SPI supports variable data frame formats, allowing flexibility in data transmission.
High-Speed Communication: SPI operates at high speeds, making it suitable for applications requiring rapid data transfer.
Advantages
No need for start and stop bits, providing continuous streaming of data without interruptions.
Higher data transfer rates compared to I2C (almost twice as fast).
Absence of a complex slave addressing system, unlike I2C.
Dedicated MISO and MOSI lines enabling simultaneous data transmission and reception.
Disadvantages
Requires four wires for communication which increase the circuit size
Lacks acknowledgment of successful data reception (unlike I2C).
Absence of error-checking mechanisms such as parity bit in UART.
Applications of SPI
Interfacing with sensors such as accelerometers, gyroscopes, and temperature sensors.
Memory devices like EEPROMs, flash memory, and SD cards.
Communication between microcontrollers and peripheral devices.
Display interfaces in TFT LCD displays and OLED displays.
Networking peripherals such as Ethernet controllers and Wi-Fi modules.
Conclusion
Serial Peripheral Interface (SPI) is a versatile communication protocol widely used in embedded systems and IOT applications for its simplicity, high-speed data transfer, and flexibility. Understanding the fundamentals of SPI, its protocol sequence, applications, and best practices for implementation is essential for engineers and developers working on embedded systems projects. By mastering SPI communication, you can efficiently interface with a wide range of peripheral devices like displays, sensors, modules, microcontrollers and unleash the full potential of your embedded systems designs.
If you’re an Embedded Developer and looking to implement SPI protocol in your project then Campus Component is there for you to assist you integrating SPI successfully in your project. We are the best electronics suppliers that supply all types of SPI devices with end-to-end support. Visit Campus Component now.
0 notes
Text
Introduction: Making a rocket flight computer might sound like a daunting task at first, but with the right guidance, it can be a fun and challenging project that will help you learn a lot about electronics and programming. A rocket flight computer is essentially a device that uses sensors, microcontrollers, and software to gather and process data during the flight of a rocket. This data can include altitude, velocity, temperature, and other parameters that can help you ensure a safe and successful rocket launch. In this article, we will guide you through the process of making a rocket flight computer from scratch, including the materials you need, the components you need to assemble, and the programming you need to do. We will also include a FAQs section at the end to answer some common questions about rocket flight computers. Materials: To make a rocket flight computer, you will need the following materials: - Microcontroller board: We recommend using an Arduino or a Raspberry Pi for this project, as they are easy to use and have plenty of online support and tutorials. - Sensors: You will need sensors to measure altitude, temperature, and other parameters. For altitude, you can use a barometric pressure sensor, such as the BMP280 or the BME280. For temperature, you can use a thermistor or a digital temperature sensor, such as the DS18B20. - GPS module: A GPS module will allow you to track the location and speed of your rocket during flight. - SD card module: An SD card module will allow you to store data on an SD card during flight, which you can later analyze on your computer. - Power source: You will need a power source for your flight computer. You can use a battery pack, a power bank, or a USB cable connected to your computer. - Breadboard and jumper wires: You will need a breadboard and jumper wires to connect your components together. - Case: You may want to use a case to protect your flight computer during flight. Components: Once you have gathered all the materials, you will need to assemble them into a flight computer. Here are the steps: 1. Connect the sensors: Connect the sensors to the microcontroller board using jumper wires. For the BMP280 or the BME280 sensor, connect VCC to 3.3V, GND to GND, SDA to A4, and SCL to A5. For the DS18B20 temperature sensor, connect VCC to 5V, GND to GND, and the signal pin to a digital pin on your microcontroller board. 2. Connect the GPS module: Connect the GPS module to the microcontroller board using jumper wires. Connect VCC to 3.3V, GND to GND, RX to a digital pin on your microcontroller board, and TX to another digital pin on your microcontroller board. 3. Connect the SD card module: Connect the SD card module to the microcontroller board using jumper wires. Connect VCC to 5V, GND to GND, MISO to pin 12, MOSI to pin 11, CLK to pin 13, and CS to pin 10. 4. Write the code: Once you have connected all the components, you will need to write the code for your flight computer. You can use the libraries provided by the sensors and GPS modules to read data from them, and you can use the SD card library to write data to the SD card. You will also need to create a loop that reads and processes data from the sensors and GPS module and writes it to the SD card. Here is an example code for an Arduino flight computer (note that you may need to adjust the code for your specific components and sensors): #include #include #include #define BMP_SDA A4 #define BMP_SCL A5 #define GPS_RX 10 #define GPS_TX 11 Adafruit_BMP280 bmp; Adafruit_GPS gps(&Serial1); File dataFile; void setup() Serial.begin(9600); while (!Serial); Serial1.begin(9600); bmp.begin(0x76); SD.begin(10); dataFile = SD.open("data.log", FILE_WRITE); gps.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY); gps.sendCommand(PMTK_SET_NMEA_UPDATE_10HZ); gps.sendCommand(PGCMD_ANTENNA); delay(1000); void loop() float altitude = bmp.readAltitude(1013.25); float temperature = bmp.readTemperature(); char* date = gps.date; char* time = gps.time;
float latitude = gps.latitude; char* latDir = gps.lat; float longitude = gps.longitude; char* lonDir = gps.lon; float speed = gps.speed; float angle = gps.angle; float mag = gps.mag; Serial.print(altitude); Serial.print(","); Serial.print(temperature); Serial.print(","); Serial.print(date); Serial.print(","); Serial.print(time); Serial.print(","); Serial.print(latitude, 6); Serial.print(","); Serial.print(latDir); Serial.print(","); Serial.print(longitude, 6); Serial.print(","); Serial.print(lonDir); Serial.print(","); Serial.print(speed); Serial.print(","); Serial.print(angle); Serial.print(","); Serial.println(mag); dataFile.print(altitude); dataFile.print(","); dataFile.print(temperature); dataFile.print(","); dataFile.print(date); dataFile.print(","); dataFile.print(time); dataFile.print(","); dataFile.print(latitude, 6); dataFile.print(","); dataFile.print(latDir); dataFile.print(","); dataFile.print(longitude, 6); dataFile.print(","); dataFile.print(lonDir); dataFile.print(","); dataFile.print(speed); dataFile.print(","); dataFile.print(angle); dataFile.print(","); dataFile.println(mag); dataFile.flush(); delay(100); 5. Test the flight computer: Once you have written the code, you can upload it to your microcontroller board and test the flight computer. You can do this by connecting the flight computer to your computer using a USB cable, and opening the serial monitor to see the data being read from the sensors and GPS module. You should also test the SD card module to make sure it is writing data correctly. FAQs: 1. What can I do with a rocket flight computer? A rocket flight computer can help you gather data during the flight of a rocket, which can be useful for analyzing and optimizing the rocket's performance. It can also help you ensure a safe and successful rocket launch by detecting any anomalies or errors during flight. 2. Can I use a different microcontroller board for the flight computer? Yes, you can use any microcontroller board that has the required sensors and libraries. However, Arduino and Raspberry Pi are popular choices due to their low cost and ease of use. 3. How do I mount the flight computer on my rocket? You can mount the flight computer inside a protective case or container, and attach it to the rocket using tape, glue, or a mounting bracket. Make sure the flight computer is secure and well-protected during flight. Conclusion: Making a rocket flight computer can be a challenging but rewarding project that will help you learn a lot about electronics, programming, and rocketry. By following the steps outlined in this article, you can create a flight computer that will gather and process data during the flight of a rocket, and help you ensure a safe and successful rocket launch. Remember to always prioritize safety during your rocketry experiments, and have fun exploring the exciting world of rocket science! Images: [Insert images of a rocket flight computer, sensors, microcontroller board, GPS module, SD card module, and breadboard] If you have any questions or comments Please contact us on our contact page or via our Facebook page. #rocket #flight #computer
0 notes
christanworkshop · 7 months
Text
DIY: BME280 Temperature Humidity Pressure Sensor Flipper Module
Tumblr media
Here's a simple add-on module to make for Flipper Zero. You can get this BME280 sensor module for less than USD3 (eg. Aliexpress) and it measures relative humidity, barometric pressure and ambient temperature all in one sensor. You need to hookup 4 pins as follows:
BME280 -> Flipper Zero VIN -> 3.3V (Pin 9) GND -> GND (Pin 8/11/18) SCL -> Pin 15 SDA -> Pin 16
Reminder: As this module uses 3.3V pin of the Flipper Zero (which is shared with the SD card), remember to power off the Flipper before doing this. Not doing so could cause SD card corruption. There is also a 5V version of this module, so if you got that version, you should of course hookup the VIN to the 5V pin on Flipper.
Tumblr media
Now, we can go ahead and run the Temp Sensors Reader app on Flipper Zero under GPIO category. You can learn more about this app on their Github. Note that where this app is placed on Flipper depends on which firmware you are running. If you don't have the app, you can always install it.
Tumblr media
The first time you run the app, you will need to add the new sensor. Click OK, then select BME280 and scroll down to click SAVE. While viewing sensor readings, just click the centre OK button to bring up menu that allows you to edit or change settings, or add new sensors.
Tumblr media
That's all there is to it. You can breathe on the sensor to see the temperature and humidity spike up.
If you enjoy stuff like this, check out our Makers & Hackers Exchange Facebook group
1 note · View note
techcreecamper · 9 months
Text
Motortemperatur-Anzeige?
Tumblr media
Es gibt Dinge, die falllen einem einfach erst später auf. Wo befindet sich die Motortemperatur-Anzeige beim VW T5?
Aus eigentlich jedem PKW kennen wir das doch, dass uns die Motortemperatur auf irgendeine Weise angezeigt wird. Auf den ersten Blick kann man die beim VW T5 nicht sehen. Eventuell gibt der Boardcomputer auskunft dazu? Fehlanzeige. Kurz nachgeforscht im Web und dann würde ich auch fündig.
Es gibt schlicht keine!
Der dazugehörige Kommentar eines Nutzers beschreibt, dass VW bei den neuen Bussen, wie damals auch dem T5 darauf verzichtet hätte, weil die Motoren sellbst unter extremeren Bedingungen nicht kritisch heiß werden könnten.
Tumblr media
Da mag sich nun jeder einen Reim drauf machen. Ob es T5 Modelle und nachfolgende Bullis gibt, die eine solche Anzeige haben, kann ich persönlich nicht beurteilen. Und jetzt wird es technisch, denn das brachte mich auf eine Idee. Vor einiger Zeit hatte ich mir ein Schalltboard angefertigt, welches komplett eine Eigenentwickllung ist. Es kann einen Raspberry Pi Microcontroller und ein BME280 Sensor Modul aufnehmen.
Tumblr media
Das bedeutet, dass ich unter anderem Temperaturdaten über eine WLAN Verbindung zu diesem Gerät auf einer Website anzeigen lassen kann. Ich überlege daher nun, dieses Gerät im Motoorraum in der Nähe des Motors zu befestigen. Das würde mir zwar keine Daten liefern, wie ein üblicher PKW Motortemperatur-Sensor. Doch es würde mir aufschluss über die Wärme geben, die der Motor abgibt bzw. die Temperatur, die im Motoraum vorherscht.
Jetzt ist es nur noch (lach) an der Sache, dieses Gerät in einem wasserdichten Gehäuse unterzubringen, welches die Messung nicht allzusehr beeinflusst. Naja, dann schauen wir mal.
0 notes
draegerit · 11 months
Text
DS18B20-Sensoren am Raspberry Pi Pico W: Temperaturdaten auf einer Webseite anzeigen
Tumblr media
Willkommen zu meinem heutigen Beitrag auf meinem Technikblog! Vor kurzem habe ich einen interessanten Kommentar von einem aufmerksamen Leser erhalten. Er stellte die Frage, wie man mehrere Sensordaten, insbesondere Temperaturwerte, auf einer Webseite darstellen kann. Eine faszinierende Idee, die mich dazu inspiriert hat, diesen Beitrag zu verfassen. In diesem Artikel werde ich dir zeigen, wie du genau das mit dem DS18B20-Sensor und dem Raspberry Pi Pico W erreichen kannst. Zusammen werden wir lernen, wie man die Sensoren anschließt, die Daten ausliest und sie auf einer Webseite in ansprechender Weise präsentiert.
Tumblr media
Im Beitrag Raspberry Pi Pico W - anzeigen von Sensordaten auf einer Webseite habe ich dir bereits erläutert, wie man die Sensordaten eines BME280 Sensors auf einer Webseite visualisiert. Hier möchte ich teile des Quellcodes wiederverwenden und dir aufzeigen, wie man die Sensordaten von mehreren DS18B20 Sensoren am Pi Pico auf einer Webseite anzeigen kannst.
Aufbau der Schaltung am Raspberry Pi Pico W
Der Raspberry Pi Pico / Pico W hat 26 GPIOs (davon 6 analoge Pins) somit können wir eine Menge an Sensoren anschließen und auf der Seite anzeigen. In meinem Fall möchte ich 6 Temperatursensoren anschließen und benötige für die Schaltung: - einen Raspberry Pi Pico W, - ein Micro-USB Datenkabel, - sechs Temperatursensoren DS18B20, - einen 4,7 kOhm Widerstand, - ein paar Breadboardkabel, männlich-männlich, 10 cm, - ein 830 Pin Breadboard Wie man aus der Grafik entnehmen kann, sind die Temperatursensoren in Reihe geschaltet und mit nur einem GPIO des Pi Pico verbunden.
Tumblr media
Schaltung - mehrere Temperatursensoren vom Typ DS18B20 am Raspberry Pi Pico / Pico W Jeder Temperatursensor vom Typ DS18B20 hat eine eigene einzigartige ID über welche dieser referenziert werden kann und somit können wir quasi fast beliebig viele Sensoren hintereinander schalten. Wir müssen lediglich darauf achten, die maximale Stromaufnahme pro GPIO (16 mA) nicht zu überschreiten.
Tumblr media
Schaltung - Raspberry Pi Pico mit mehreren DS18B20 Sensoren
Auslesen der Sensoren in Micropython
Zunächst schreiben wir ein kleines Programm in Micropython um die Sensoren auszulesen. #Import der benötigten Module #zum Zugriff auf den Sensor DS18B20 #und der Pins des Pi Pico import machine, onewire, ds18x20, time #der Sensor ist am GPIO16 angeschlossen sensorPin = machine.Pin(16) #initialisieren eines Objektes vom Typ DS18X20 ds18b20Sensor = ds18x20.DS18X20(onewire.OneWire(sensorPin)) #anlegen eines Feldes für die IDs der Sensoren roms = None def setup(): #Zugriff auf die Globale Variable roms global roms #auslesen der IDs der Sensoren roms = ds18b20Sensor.scan() #ausgeben der Anzahl der Sensoren auf #der seriellen Schnittstelle print('Anzahl gefundener Sensoren: ', len(roms)) def main(): #Zugriff auf die Globale Variable roms global roms #starten einer Endlosschleife, ... while True: #auslesen der Sensorwerte ds18b20Sensor.convert_temp() #nach dem aufruf der Funktion "convert_temp()" #soll man gem. Dokumentation 750ms warten time.sleep_ms(750) #erzeugen eines Indexes idx = 0 #Schleife über die gefundenen IDs / Sensoren for rom in roms: #Index um eins erhöhen idx = idx + 1 #Ausgeben der Temperatur, zusätzlich wird noch der Temperaturwert #auf 2 Stellen nach dem Komma gekürzt print("#", str(idx), " Temperatur:", round(ds18b20Sensor.read_temp(rom),2), "°C") #Pause von 5 Sekunden time.sleep(5) setup() main() Wenn wir diesen Code auf dem Pi Pico / Pico W ausführen, dann sollten wir in der Konsole nun die Werte der Sensoren ablesen können.
Tumblr media
Ausgabe der Temperaturwerte von den angeschlossenen Sensoren
Anzeigen der Sensorwerte von mehreren DS18B20 am Pi Pico auf einer Webseite
Im nächsten Schritt wollen wir diese Sensorwerte jetzt auf einer kleinen Webseite anzeigen lassen. Zusätzlich möchte ich einen Schritt weitergehen und ein Diagramm anzeigen lassen, in welchem die Sensordaten visualisiert werden.
Tumblr media
Sensordaten der DS18B20 Sensoren auf einer Webseite Schritt 1 - Aufbau des Codes Zunächst erzeugen wir uns zwei Funktionen setup: Diese Funktion wird einmalig aufgerufen. main: Diese Funktion beinhaltet den Ablauf des Programmes. Wenn du bereits Erfahrung mit dem Arduino gesammelt hast, dann wird dir dieses nicht fremd sein. Der Vorteil ist, dass man hier besser nachvollziehen kann, wann was gestartet wird. def setup(): pass def main(): pass setup() main() Schritt 2 - Aufbau der WiFi-Verbindung Im ersten Schritt bauen wir die WiFi-Verbindung auf. Dazu benötigen wir die SSID sowie das Passwort für das lokale WiFi-Netzwerk. Diese beiden Werte legen wir uns in Felder im Code ab. #Import der benötigten Module #für den Aufbau der WiFi-Verbindung import network import socket ssid = 'FRITZBox7590GI24' password = '22894580214767401850' #anlegen eines Feldes für die WiFi-Verbindung wlan = None #anlegen eines Feldes für die Socketverbindung s = None def doConnect(): global wlan, s wlan=network.WLAN(network.STA_IF) wlan.active(True) #Wenn die Verbindung nicht erstellt wurde, dann... if not wlan.isconnected(): #Aufbau der WiFi-Verbindung mit den Daten wlan.connect(ssid, password) #solange die Verbindung noch nicht hergestellt wurde #dann soll diese Schleife laufen und einen Punkt ausgeben while not wlan.isconnected(): #einen Punkt ausgeben ohne Zeilenumbruch! print(".", end="") #kleine Pause von 250 Millisekunden time.sleep(0.250) print("") #Wenn die WiFi-Verbindung erfolgreich aufgebaut wurde, #dann soll auf der seriellen Schnittstelle der Text ausgegeben werden print('Verbindung erfolgreich zu', ssid, 'aufgebaut!') status = wlan.ifconfig() print('IP-Adresse: ' + status) addr = socket.getaddrinfo('0.0.0.0', 80) s = socket.socket() s.bind(addr) s.listen(1) def setup(): doConnect() def main(): pass setup() main() Wenn wir den Code ausführen, dann wird beim Aufbau einer WiFi-Verbindung die IP-Adresse ausgegeben, welche wir im späteren Verlauf im Browser eingeben können, um die Webseite aufzurufen.
Tumblr media
Schritt 3 - Auslesen der Sensordaten in einem Intervall Wir müssen eine Endlosschleife starten, in welcher wir "lauschen", ob sich Clients mit dem Pi Pico verbinden wollen. Zeitgleich müssen wir aber auch die Sensordaten in einem Intervall auslesen. Wir können hier aber nicht die Funktion sleep aus dem Modul time verwenden, denn dann legt der Mikrocontroller eine Pause ein und in dieser Zeit kann sich kein neuer Client verbinden. Meine Lösung ist, die Sekunden seit dem 01.0.1.1970 auszulesen und zu prüfen ob seit dem letzen Lesevorgang eine Zeit X zbsp. 30 Sekunden vergangen ist. #Import der benötigten Module #zum Zugriff auf den Sensor DS18B20 #und der Pins des Pi Pico import machine, onewire, ds18x20, time #Import der benötigten Module #für den Aufbau der WiFi-Verbindung import network import socket ssid = 'xxx' password = 'yyy' #der Sensor ist am GPIO16 angeschlossen sensorPin = machine.Pin(16) #initialisieren eines Objektes vom Typ DS18X20 ds18b20Sensor = ds18x20.DS18X20(onewire.OneWire(sensorPin)) #anlegen eines Feldes für die IDs der Sensoren roms = None #anlegen eines Feldes für die WiFi-Verbindung wlan = None s = None data = actualTime = 0 lastReadSensordata = 0 readSensordataIntervall = 30 def doConnect(): global wlan, s wlan=network.WLAN(network.STA_IF) wlan.active(True) #Wenn die Verbindung nicht erstellt wurde, dann... if not wlan.isconnected(): #Aufbau der WiFi-Verbindung mit den Daten wlan.connect(ssid, password) #solange die Verbindung noch nicht hergestellt wurde #dann soll diese Schleife laufen und einen Punkt ausgeben while not wlan.isconnected(): #einen Punkt ausgeben ohne Zeilenumbruch! print(".", end="") #kleine Pause von 250 Millisekunden time.sleep(0.250) print("") #Wenn die WiFi-Verbindung erfolgreich aufgebaut wurde, #dann soll auf der seriellen Schnittstelle der Text ausgegeben werden print('Verbindung erfolgreich aufgebaut!') status = wlan.ifconfig() print('IP-Adresse: ' + status) addr = socket.getaddrinfo('0.0.0.0', 80) s = socket.socket() s.bind(addr) s.listen(1) def readSensordata(): result = #auslesen der Sensorwerte ds18b20Sensor.convert_temp() #nach dem aufruf der Funktion "convert_temp()" #soll man gem. Dokumentation 750ms warten time.sleep_ms(750) #erzeugen eines Indexes #Schleife über die gefundenen IDs / Sensoren for rom in roms: result.append(round(ds18b20Sensor.read_temp(rom),2)) return result def setup(): #Zugriff auf die globalen Variablen roms, wifi global roms #auslesen der IDs der Sensoren roms = ds18b20Sensor.scan() #ausgeben der Anzahl der Sensoren auf #der seriellen Schnittstelle print('Anzahl gefundener Sensoren: ', len(roms)) doConnect() def main(): #Zugriff auf die Globale Variable roms global roms, data, lastReadSensordata #starten einer Endlosschleife, ... while True: #nur alle 30 Sekunden neue Sensordaten lesen actualTime = time.time() if (lastReadSensordata+readSensordataIntervall)< actualTime: lastReadSensordata = actualTime data = readSensordata() #ausgeben der Daten auf der seriellen Schnittstelle print(data) setup() main() Wenn wir nun auf die Konsole schauen, dann sehen wir, dass im angegebenen Intervall die Sensordaten gelesen und ausgegeben werden.
Tumblr media
Ausgabe der Sensordaten auf der Konsole Schritt 4 - Anzeigen der Webseite mit den Sensordaten Nachdem wir nun die Sensordaten in eine Liste ausgelesen haben wollen wir diese auf eine Webseite anzeigen. Dazu schreiben wir eine kleine Webseite mit ebenso ein wenig CSS für das Styling.
Sensordaten
{dataTable} In dem HTML Code setzen wir einen Platzhalter {dataTable} an der Stelle ein, wo wir die Tabelle einfügen wollen. Diese Datei speichern wir nun auf dem Pi Pico als Datei "website.html".
Tumblr media
Diese Datei lesen wir nun in eine Variable ein und ersetzen mit der Funktion format den Platzhalter mit den Daten unserer Tabelle, welche wir zuvor in eine HTML-Tabelle umgewandelt haben. #Import der benötigten Module #zum Zugriff auf den Sensor DS18B20 #und der Pins des Pi Pico import machine, onewire, ds18x20, time #Import der benötigten Module #für den Aufbau der WiFi-Verbindung import network import socket ssid = 'xxx' password = 'yyyy' #der Sensor ist am GPIO16 angeschlossen sensorPin = machine.Pin(16) #initialisieren eines Objektes vom Typ DS18X20 ds18b20Sensor = ds18x20.DS18X20(onewire.OneWire(sensorPin)) #anlegen eines Feldes für die IDs der Sensoren roms = None #anlegen eines Feldes für die WiFi-Verbindung wlan = None s = None data = actualTime = 0 lastReadSensordata = 0 readSensordataIntervall = 30 def doConnect(): global wlan, s wlan=network.WLAN(network.STA_IF) wlan.active(True) #Wenn die Verbindung nicht erstellt wurde, dann... if not wlan.isconnected(): #Aufbau der WiFi-Verbindung mit den Daten wlan.connect(ssid, password) #solange die Verbindung noch nicht hergestellt wurde #dann soll diese Schleife laufen und einen Punkt ausgeben while not wlan.isconnected(): #einen Punkt ausgeben ohne Zeilenumbruch! print(".", end="") #kleine Pause von 250 Millisekunden time.sleep(0.250) print("") #Wenn die WiFi-Verbindung erfolgreich aufgebaut wurde, #dann soll auf der seriellen Schnittstelle der Text ausgegeben werden print('Verbindung erfolgreich aufgebaut!') status = wlan.ifconfig() print('IP-Adresse: ' + status) addr = socket.getaddrinfo('0.0.0.0', 80) s = socket.socket() s.bind(addr) s.listen(1) def readSensordata(): result = #auslesen der Sensorwerte ds18b20Sensor.convert_temp() #nach dem aufruf der Funktion "convert_temp()" #soll man gem. Dokumentation 750ms warten time.sleep_ms(750) #erzeugen eines Indexes #Schleife über die gefundenen IDs / Sensoren for rom in roms: result.append(round(ds18b20Sensor.read_temp(rom),2)) return result def createHtmlTable(data): htmlTable = """ Sensor Wert {bodyRows} """ idx = 0 rows = "" for value in data: idx = idx + 1 rows += "{sensor}{wert}".format(sensor=str(idx), wert=str(value)+"°C") return htmlTable.format(bodyRows=rows) def getWebsite(dataTbl): with open('website.html', "r") as file: website = file.read() file.close() return website.format(dataTable=dataTbl) def deliverWebsite(website): global s cl, addr = s.accept() cl.send('HTTP/1.0 200 OKrnContent-type: text/htmlrnrn') cl.send(website) cl.close() def setup(): #Zugriff auf die globalen Variablen roms, wifi global roms #auslesen der IDs der Sensoren roms = ds18b20Sensor.scan() #ausgeben der Anzahl der Sensoren auf #der seriellen Schnittstelle print('Anzahl gefundener Sensoren: ', len(roms)) doConnect() def main(): #Zugriff auf die Globale Variable roms global roms, data, lastReadSensordata #starten einer Endlosschleife, ... while True: #nu Read the full article
0 notes
ozrobotics · 1 year
Link
Tumblr media
0 notes
diyelectronicsus · 1 year
Text
1 note · View note
techcree · 1 year
Text
Ganymed Entwickler Board
Tumblr media
Einfach aber komfortabel und preiswert soll es sein. Und es soll bspw Schülern heflen elektronische Projekte zu realisieren.
Programmieren lernen und gleich ein paar tolle Projekte umsetzen. Aber keine offene und wilde Verkabelung, denn das ist in der Regel ja übliche Praxis. Das war die Idee hinter dem Ganymed Dev Board. Ein guter Ansatz um selbst mal ein eigenes Board zu entwickeln und es fertigen zu lassen. Keine Großserie, sondern maxiaml kleine Stückzahlen. Und am 14. Januar 2023 war der erste Prototyp fertig.
Der Projektname Ganymed war schnell gefunden, das Layout designed und die Produktion der Prototypen angeschoben. Das neuen "Ganymed Dev Board" ist erstmal "nur" ein Erweiterungsboard und damit wird es einfacher und komfortabler seinen Versuchsaufbau sauber einzurichten. Flexibilität und eine bessere Sicherheit durch weniger Verkabelung zu den wichtigsten Bauteilen. Speziell ausgelegt für den Raspberry Pi Pico oder Pico W. Die Microcontroller der Raspberry Pi Foundation UK eignen sich hervorragend für diese Aufgabe. Tolle Möglichkeiten zum kleinen Preis.
Die Leiterplatine erlaubt die Bestückung von beispielsweise einem BME280 Sensor und LED's, sowie einem Buzzer und einem SG90 Servo. Das ermöglicht schon die ersten wichtigen Projekte umzusetzen. Weitere Pin-Outs stehen zudem frei zur Verfügung. Das Ganymed Dev Board ist aber nur die erste Erweiterungsplatine mit einem ganz speziellen Layout. Weitere sind derzeit in Planung und es können ggf. auch die individuellen Wünsche eines Lehrers berücksichtigt werden.
Tumblr media
Derzeit gibt es erstmal ein paar Prototypen. Die sind dann vorbestückt mit Steckleisten für die Aufnahme eines Raspberry Pi Pico oder Pico W. Auch zwei LED sind bereits montiert (optional mit und ohne Wiederstände). Andere Bauteile können über die vormontierten Pins gesteckt werden. Bei den LED ist die Bestückung mit Wiederständen für eine längere Lebenszeit der LED zu empfehlen. Durch die Steckleisten für den Microcontroller kann flexibel entschieden werden ob ein Pico oder ein Pico W verwendet werden soll. Die Microcontroller können so jeder Zeit ausgetauscht werden.
Der Servo selbst und auch das "Wetterstations Modul" (Sensor BME280) und der Buzzer werden wohl zunächst nicht vormontiert sein. Auf Wunsch wäre aber auch das kein Problem oder um auch hier auf Kabel zu verzichten kann an Stelle von einer PIN Leiste auch eine Steckleiste vormontiert werden. Letztlich ist die Frage, ob die Lötarbeiten Teil des Schulprojektes sein sollen. Dies schlägt sich entsprechend dann auch im Preis nieder.
Tumblr media
Der Demo-Code auf Basis von Micropython ist zwar bereits verfügbar (https://github.com/techcree/ganymed.git), wird sich aber ggf. noch anpassen oder ergänzen. Auch sind etwaig norwendige Bibliotheken ggf. noch zu installieren, wobei die IDE Thonny für die Programmierung zu empfehlen ist. Diese ist für Chromebooks unter Linux und andere Betriebssysteme geeignet. Auch die passende .ufw Datei muss natürlich noch installiert werden. Später soll alles was an Software nötig ist auf Wunsch auch auf dem Pico bereits vorinstalliert sein.
Tumblr media
Dieses Erweiterungs-Board soll für Bildungseinrichtungen bezahlbar sein und wird voraussichtlich ab ca. 3-5 Euro kosten. Ohne Bestückung von elektronischen Bauteilen und natürlich auch ohne Raspberry Pi Pico oder Pico W. Komplett ist wohl je nach Stückzahl mit ca. 20 Euro zu rechnen. Andere Layouts wie im nachstehend Bild zu sehen sind grundsätzlich kein Problem. Das Ganymed wurde in mehreren Varianten, als sogenannte Erweiterungsplatine designed. Das Layout ist abhängig von der später gewünschten Verwendung.
Tumblr media
Das Ganymed Dev Board ist das erste Projekt dieser Art aus der Feder von STSKANTA.de. Sicher aber nicht das Letzte. Es ist wohl der Beginn einer "erweiterten" Leidenschaft für den Raspberry Pi Pico.
0 notes
adafruit · 2 months
Text
ESP32-C6 Feather is here, time to bring it up 🚀🛠️💡
The ESP32-C6 (https://www.adafruit.com/product/5672) is Espressif’s first Wi-Fi 6 SoC integrating 2.4 GHz Wi-Fi 6, Bluetooth 5 (LE) and the 802.15.4 protocol. It brings the goodness you know from the low-cost C3 series (https://www.adafruit.com/product/5337) and improves it with Zigbee/802.15.4 at 2.4Ghz. That means it could make for great Matter (https://csa-iot.org/all-solutions/matter/) development hardware!
We took our Feather ESP32-S2 (https://www.adafruit.com/product/5000) and swapped out the 'S2 for a C6. Plus some re-routing and here's what we've got: a C6 Feather with lots of GPIO, lipoly charging and monitoring with the MAX17048, (https://www.adafruit.com/product/5580) NeoPixel, I2C Stemma QT port, and a second low-quiescent LDO for disabling the I2C and NeoPixel when we want ultra-low power usage. We also tossed a BME280 (https://www.adafruit.com/product/2652) on there, so you could use it immediately as a low power temp/hum/pressure sensor.
Now it's time to do the bringup - we like to blink LEDs, toggle pins, and also check that NeoPixels glow up. Good news: so far everything works! We're going to keep at it and see if we can maybe get a simple Matter demo going before we book the PCBs
6 notes · View notes
marsic-84 · 4 years
Video
youtube
19. Правила OpenHAB: Датчик влажности + Реле | Room31
Автоматическое управление реле в зависимости от показаний датчика влажности.
🔶 В этом видео: ◽ 01:57 Самое простое правило ◽ 03:43 Отключение авто режима ◽ 06:21 Задание значений влажности
🔶 Где взять устройства из этого видео?: ◽ Датчик влажности, температуры и давление BME280: http://ali.pub/4b2h72 ◽ WiFi реле Sonoff Basic: http://ali.pub/4b2h2z
🔶 Где взять устройства из этого видео?: 
◽ Датчик влажности, температуры и давление BME280: http://ali.pub/4n811k 
◽ WiFi реле Sonoff Basic: http://ali.pub/4nfev5
🔶 Мои другие видео: ◽ 19. Правила OpenHAB: Датчик влажности + Реле: https://youtu.be/BAeUq-o9mZ8 ◽ 18. Цвета значений и подписей в интерфейсе BasicUI (OpenHAB): https://youtu.be/Ju-Fp04qJNo ◽ 17. Прошивка Sonoff S20 и Tonbux WL-DC01: https://youtu.be/0BrsA5KhzoI ◽ 16. Сценарий управления умным настенным светильником. Правила OpenHAB: https://youtu.be/yJmHXndJxjE ◽ 15. Прошивка Sonoff Basic: Tasmota + MQTT + OpenHAB: https://youtu.be/drXLesAxlP4 ◽ 14. Прошивка Sonoff Touch: Tasmota & ESPurna + OpenHAB: https://youtu.be/AHicER0zTgE ◽ 13. Расширение OpenHAB для браузера Chrome: https://youtu.be/4SgWZxUGSO4 ◽ 12. Умный настенный светильник (бра) своими руками + Openhab: https://youtu.be/_RlpP1xVL8M ◽ 11. Умный дом своими руками. Arduino + MQTT + OpenHAB: https://youtu.be/tb-BMCLp_0Y ◽ 10. Увлажнители Xiaomi + Openhab: https://youtu.be/h7ex3zWCLDg ◽ 9. Умный дом и WiFi LED контроллеры для чайников. MagicHome + OpenHAB https://youtu.be/0Lg7y6yLOks ◽ 8. Подключение кондиционера к умному дому. Gree Smart + OpenHAB: https://youtu.be/cY6RfOjI-Ts ◽ 7. Настройка подключения OpenHAB к MQTT брокеру: https://youtu.be/5IrIg9eQcX0 ◽ 6. Установка MQTT broker на WINDOWS 10: https://youtu.be/FEoy5YkrBIE ◽ 5. Установка MQTT broker на Raspberry Pi: https://youtu.be/cgqFEyMQhsI ◽ 4. Установка openHAB на Windows 10: https://youtu.be/2R90hlC5Jzs ◽ 3. Установка openHAB на Raspberry Pi 3: https://youtu.be/D6Px3jDNxPM ◽ 2. Самодельное настенное крепление для планше��а из трубы: https://youtu.be/u8zFNUIHgRg ◽ 1. Умный Дом - Начало: https://youtu.be/1WDVufuN90Q
🔶 Music by: ◽ Kubbi - Up In My Jam All Of A Sudden (Gas Powered EP) ◽ A Himitsu - Easier to Fade (feat. Madi Larson) ◽ Kevin MacLeod - Scheming Weasel (faster version) ◽ Blues Blast - John Deley ◽ Echinoderm Regeneration - Jingle Punks
#OpenhabRules #УмныйДом #Room31
0 notes
rjrajbir-blog · 5 years
Photo
Tumblr media
Bad #weather always looks worse through a #window. We've always been interested in #monitoring our local #weather and what we see out of the window. We also wanted better control over our heating and A/C system. Building a #personal_weather_station is great #learning experience. #local #weather #monitoring #learning #new #ideas #measuring #temperature #humidity #pressure #bme280 #sensor #raspberrypi #i2c #sheild #internetofthings #tech #technology #java #electronics For more information you can visit the links given below www.dcubestore.com www.dcubetechnologies.com https://www.instagram.com/p/B21meWHglFm/?igshid=wxu54ys1aask
0 notes
steamedu123 · 3 years
Text
Tumblr media
[Arduino Sensors for Everyone]
In this e-book, you will learn how to use the PMS7003, GP2Y1010AU0F, PPD42NS, SDS011 Fine Dust Sensor, DHT22 temperature/humidity sensor, MH-Z19B carbon dioxide sensor, ZE08-CH2O formaldehyde sensor, CCS811 total volatile organic compound (TVOC) sensor , GDK101 radiation (gamma ray) sensor, MQ-131 ozone (O3) sensor, MQ-7 carbon monoxide sensor, MICS-4514 nitrogen dioxide sensor, MICS-6814 ammonia sensor, DGS-SO2 sulfur dioxide (SO2) sensor, BME280 atmospheric pressure sensor, GUVA-S12SD ultraviolet (UV) sensor, MD0550 airflow sensor, and QS-FS01 wind speed sensor.
Tumblr media
https://play.google.com/store/books/details/Ronnie_Kim_Arduino_Sensors_for_Everyone?id=e3ovEAAAQBAJ
Tumblr media
2 notes · View notes
Text
Introduction: Making a rocket flight computer might sound like a daunting task at first, but with the right guidance, it can be a fun and challenging project that will help you learn a lot about electronics and programming. A rocket flight computer is essentially a device that uses sensors, microcontrollers, and software to gather and process data during the flight of a rocket. This data can include altitude, velocity, temperature, and other parameters that can help you ensure a safe and successful rocket launch. In this article, we will guide you through the process of making a rocket flight computer from scratch, including the materials you need, the components you need to assemble, and the programming you need to do. We will also include a FAQs section at the end to answer some common questions about rocket flight computers. Materials: To make a rocket flight computer, you will need the following materials: - Microcontroller board: We recommend using an Arduino or a Raspberry Pi for this project, as they are easy to use and have plenty of online support and tutorials. - Sensors: You will need sensors to measure altitude, temperature, and other parameters. For altitude, you can use a barometric pressure sensor, such as the BMP280 or the BME280. For temperature, you can use a thermistor or a digital temperature sensor, such as the DS18B20. - GPS module: A GPS module will allow you to track the location and speed of your rocket during flight. - SD card module: An SD card module will allow you to store data on an SD card during flight, which you can later analyze on your computer. - Power source: You will need a power source for your flight computer. You can use a battery pack, a power bank, or a USB cable connected to your computer. - Breadboard and jumper wires: You will need a breadboard and jumper wires to connect your components together. - Case: You may want to use a case to protect your flight computer during flight. Components: Once you have gathered all the materials, you will need to assemble them into a flight computer. Here are the steps: 1. Connect the sensors: Connect the sensors to the microcontroller board using jumper wires. For the BMP280 or the BME280 sensor, connect VCC to 3.3V, GND to GND, SDA to A4, and SCL to A5. For the DS18B20 temperature sensor, connect VCC to 5V, GND to GND, and the signal pin to a digital pin on your microcontroller board. 2. Connect the GPS module: Connect the GPS module to the microcontroller board using jumper wires. Connect VCC to 3.3V, GND to GND, RX to a digital pin on your microcontroller board, and TX to another digital pin on your microcontroller board. 3. Connect the SD card module: Connect the SD card module to the microcontroller board using jumper wires. Connect VCC to 5V, GND to GND, MISO to pin 12, MOSI to pin 11, CLK to pin 13, and CS to pin 10. 4. Write the code: Once you have connected all the components, you will need to write the code for your flight computer. You can use the libraries provided by the sensors and GPS modules to read data from them, and you can use the SD card library to write data to the SD card. You will also need to create a loop that reads and processes data from the sensors and GPS module, and writes it to the SD card. Here is an example code for an Arduino flight computer (note that you may need to adjust the code for your specific components and sensors): #include #include #include #define BMP_SDA A4 #define BMP_SCL A5 #define GPS_RX 10 #define GPS_TX 11 Adafruit_BMP280 bmp; Adafruit_GPS gps(&Serial1); File dataFile; void setup() Serial.begin(9600); while (!Serial); Serial1.begin(9600); bmp.begin(0x76); SD.begin(10); dataFile = SD.open("data.log", FILE_WRITE); gps.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY); gps.sendCommand(PMTK_SET_NMEA_UPDATE_10HZ); gps.sendCommand(PGCMD_ANTENNA); delay(1000); void loop() float altitude = bmp.readAltitude(1013.25); float temperature = bmp.readTemperature(); char* date = gps.date;
char* time = gps.time; float latitude = gps.latitude; char* latDir = gps.lat; float longitude = gps.longitude; char* lonDir = gps.lon; float speed = gps.speed; float angle = gps.angle; float mag = gps.mag; Serial.print(altitude); Serial.print(","); Serial.print(temperature); Serial.print(","); Serial.print(date); Serial.print(","); Serial.print(time); Serial.print(","); Serial.print(latitude, 6); Serial.print(","); Serial.print(latDir); Serial.print(","); Serial.print(longitude, 6); Serial.print(","); Serial.print(lonDir); Serial.print(","); Serial.print(speed); Serial.print(","); Serial.print(angle); Serial.print(","); Serial.println(mag); dataFile.print(altitude); dataFile.print(","); dataFile.print(temperature); dataFile.print(","); dataFile.print(date); dataFile.print(","); dataFile.print(time); dataFile.print(","); dataFile.print(latitude, 6); dataFile.print(","); dataFile.print(latDir); dataFile.print(","); dataFile.print(longitude, 6); dataFile.print(","); dataFile.print(lonDir); dataFile.print(","); dataFile.print(speed); dataFile.print(","); dataFile.print(angle); dataFile.print(","); dataFile.println(mag); dataFile.flush(); delay(100); 5. Test the flight computer: Once you have written the code, you can upload it to your microcontroller board and test the flight computer. You can do this by connecting the flight computer to your computer using a USB cable, and opening the serial monitor to see the data being read from the sensors and GPS module. You should also test the SD card module to make sure it is writing data correctly. FAQs: 1. What can I do with a rocket flight computer? A rocket flight computer can help you gather data during the flight of a rocket, which can be useful for analyzing and optimizing the rocket's performance. It can also help you ensure a safe and successful rocket launch by detecting any anomalies or errors during flight. 2. Can I use a different microcontroller board for the flight computer? Yes, you can use any microcontroller board that has the required sensors and libraries. However, Arduino and Raspberry Pi are popular choices due to their low cost and ease of use. 3. How do I mount the flight computer on my rocket? You can mount the flight computer inside a protective case or container, and attach it to the rocket using tape, glue, or a mounting bracket. Make sure the flight computer is secure and well-protected during flight. Conclusion: Making a rocket flight computer can be a challenging but rewarding project that will help you learn a lot about electronics, programming, and rocketry. By following the steps outlined in this article, you can create a flight computer that will gather and process data during the flight of a rocket, and help you ensure a safe and successful rocket launch. Remember to always prioritize safety during your rocketry experiments, and have fun exploring the exciting world of rocket science! Images: [Insert images of a rocket flight computer, sensors, microcontroller board, GPS module, SD card module, and breadboard] If you have any questions or comments Please contact us on our contact page or via our Facebook page. #rocket #flight #computer
0 notes