http://sites.schaltungen.at/arduino-uno-r3/sensoren-im-einsatz-mit-arduino
Wels, am 2017-03-05BITTE nützen Sie doch rechts OBEN das Suchfeld [ ] [ Diese Site durchsuchen]DIN A3 oder DIN A4 quer ausdrucken ********************************************************************************** DIN A4 ausdrucken ********************************************************I* ARDUINO-Bücher übliche Buchpreise billigst (10 Seiten kosten < € 0,40) billig (10 Seiten kosten < € 0,50) normal (10 Seiten kosten € 0,80) teuer (10 Seiten kosten > € 1,10) sehr teuer (10 Seiten kosten > € 1,40) extrem teuer (10 Seiten kosten > € 1,90)
aber bei elektor kosten 10 Seiten auch schon einmal € 2,62
Bücher von Thomas Brühlmann sind immer Empfehlenswert, auch bei diesem ist der Inhalt sehr sehr gut.
Kaufempfehlung auch der Preis ist für das Gebotene mehr als OK Nicht so wie bei vielen anderen möchtegern Autoren die aus kostenlosen Internet Inhalten ein Büch schreiben.
ORDNER > SENSOREN im Einsatz >
von Thomas Brühlmann(Autor)
Sensoren im Einsatz mit Arduino - Bestellnummer: 2668, 04.03.2017 9783958451513.pdf 14.6 MB Bitte Download starten bis 2018-04-25 10:23 Verbleibende Downloads : 10
mitp-Verlag BUCH als *.pdfhttp://arduino-praxis.ch/2017/03/01/buch-sensoren-im-einsatz-mit-arduino-im-handel-verfuegbar/ 704_d_ARDUINO-x_3-95845-150-0 Sensoren im Einsatz mit Arduino - Leseprobe - Inhaltsverzeichnis (35 Seiten)_1a.pdf
x704_d_ARDUINO-x_3-95845-150-0 Sensoren im Einsatz mit ARDUINO - T. Brühlmann (352 Seiten)_1a.pdf
Dateigröße: 17,774 MB
buch-sensoren-einsatz-arduino.zip buch-sensoren-einsatz-arduino-php.zip
Augustinusstr. 9a D-50226 Frechen Tel. 02234 21901 0 Fax 02234 21901 88 mailto:[email protected] www.mitp.de http://www.555circuitslab.com/buecher/ http://555circuitslab.comhttp://facebook.com/555circuitslab mailto:[email protected] https://twitter.com/arduinopraxis http://arduino-praxis.ch https://mitp.de/070 Firma Boxtec http://shop.boxtec.ch Arduino Uno R3 Microcontroller ATmega328 Spannungsversorgung 6–20 VDC (empfohlen 7–12 VDC) Betriebsspannung 5 VDC und 3,3 VDC (intern über Spannungsregler generiert) Digitale Ein-/Ausgänge 14 (D0–D13, davon 6 als PWM-Ausgänge) Analoge Eingänge 6 (A0–A5), Auflösung 10 Bit Strom pro digitalem Pin 20 mA DC Flash Memory 32 KB (ATmega328), wobei 0,5 KB vom Bootloader belegt werden SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Taktfrequenz 16 MHz USB-Schnittstelle ja Resetschalter ja Onboard-ICSP-Stecker ja Abmessungen Board (L x B) 70 x 53 mm https://www.arduino.cc/en/Main/Products https://www.arduino.cc/en/Main/ArduinoBoardUno - Praktische Beschreibung zahlreicher Sensoren: von Temperatur- über Infrarot-, Farb- und Ultraschallsensoren bis hin zum Einsatz von Kompass, GPS-Modul und Kamera - Beispielprojekte aus den Bereichen Hausautomation, Mensch und Umwelt: Infrarot-Fernbedienung, Überwachungskamera, Bewegungsalarm, Strommesser uvm. - Daten übertragen, in Datenbanken speichern und mit LEDs und LCDs anzeigen Dieses Buch bietet einen praktischen Einstieg in die faszinierende Welt der Sensoren, die zusammen mit dem Arduino eingesetzt werden können. So kann der Arduino auf seine Umgebung reagieren und zahlreiche Werte erfassen, die vom Arduino-Board weiterverarbeitet und dargestellt werden können. Die vielen Beispielprojekte richten sich an Einsteiger, die bereits etwas Erfahrung mit dem Arduino-Board gesammelt haben und nun neue Anwendungen realisieren wollen. Mit den im Handel erhältlichen Sensoren, ein paar Erweiterungsplatinen und etwas Fantasie können Sie sich ein eigenes Netzwerk an Sensoren zur Erfassung Ihrer Umwelt aufbauen. Thomas Brühlmann zeigt Ihnen zahlreiche Sensoren und Beispielanwendungen zum Messen, Erfassen und Verarbeiten von Daten immer detailliert mit Stückliste, Steckbrettaufbau Beispielcode zu den Themen Mensch & Umwelt sowie Haus & Hof, wie z.B.: - Temperatur, Licht, Farbe und Bild: Temperatur-, Infrarot-, Farb- und UV-Sensoren, lichtabhängiger Widerstand (LDR) sowie Einsatz einer Kamera - Distanz und Bewegung: Ultraschall-, PIR-, Piezo- und Tilt-Sensoren - Kräfte messen mit Flex- und druckempfindlichen Force-Sensoren - Ort erfassen mit Kompass und GPS-Modul - Einsatz von Gas- und Alkohol-Sensoren - Elektrische Phänomene wie Strom und elektrische Spannung messen und Einsatz eines Hall-Sensors - Haus und Garten: Temperatur und Luftfeuchtigkeit mit Umweltsensoren sowie Bodenfeuchte, Geräusche und Stromverbrauch messen - Mensch: Herzschlag und Hautwiderstand messen - Datenübertragung: seriell, drahtlos mit RF-Modul und über Bluetooth - Daten anzeigen mit LEDs und LCDs - Daten speichern: SD-Karte, EEPROM und lokale IoT-Datenbank mit MySQL-Datenbank - Einsatz eines Sensor-Shields und Sensor-Boards Mit dem Wissen aus diesem Praxis-Handbuch können Sie Ihre eigenen Ideen kreativ umsetzen. Projekte aus dem Buch: Nachtlampe mit LDR Infrarot-Fernbedienung UV-Index-Monitor Überwachungskamera Abstandsmesser für Garage und Garagentor-Wächter Süßigkeitenschrank-Wächter Touch-Keyboards Digitaler Kompass mit LED-Anzeige Alkohol-Messgerät Überwachungskontakt mit Hall-Sensor Fensterkontakt überwachen Lügendetektor Fernsteuerung Umweltdaten sammeln, an Webserver senden und Daten erfassen mit PHP Sensordaten als Liniengrafik darstellen
ARDUINO UNO R3 Minimalschaltung Schaltbild ARDUINO UNO R3 Minimalschaltung Arduino mit Proto-Shield http://shop.boxtec.ch/protonly-protoshield-pcb-p-41152.html Ethernet-Shield https://www.arduino.cc/en/Main/ArduinoBoardEthernet Motor-Shield https://www.arduino.cc/en/Main/ArduinoMotorShieldR3 Datalogger-Shield https://www.adafruit.com/products/1141
3 = Vcc
1= Signal
2 = GND
https://www.sparkfun.com/products/13235
https://www.adafruit.com/product/389 ttps://github.com/z3t0/Arduino-IRremote Farbsensor-TCS34725-Breakout-Board
Adafruit https://www.adafruit.com/product/1334
Exp-Tech http://www.exp-tech.de/adafruit-rgb-color-sensor-with-ir-filter-tcs34725
UV-Sensor ML8511-Breakout-Board TTL serial
UV-Index = 0 = 0,9V
UV-Index = 1, 2 schwach ( kein Schutz erforderlich) UV-Index = 3, 4, 5, mittel (Kopfbedeckung, T-Shirt, Sonnenbrille) UV-Index = 6, 7, hoch = 1,8V (wie oben + Sonnenchreme 20er) UV-Index = 8, 9, 10 sehr hoch (Aufenthalt im Freien möglichst vermeidem UV-Index = 11 extrem (wie oben + 50er Sonnenchreme) UV-Index = 15 = 2,8V
Spakfun https://www.sparkfun.com/products/12705
Exp-Tech http://www.exp-tech.de/sparkfun-uv-sensor-breakout-ml8511
BocTec http://shop.boxtec.ch/sensor-breakout-ml8511-p-41961.html
ML8511-Breakout-Board Mit dem kleinen Breakout-Board von Sparkfun ist keine externe Beschaltung des UV-Sensors notwendig. Für die UV-Messung benötigt das Breakout-Board eine 3,3-V-Spannungsversorgung. Zusätzlich kann der UV-Sensor mittels eines Freigabe-Signals (EN) in den Standby-Modus versetzt werden. Bei einem HIGH am Eingang EN ist der Sensor im aktiven Modus, mit einem LOW im Standby-Betrieb. Die Anschlusspins des Breakout-Boards können direkt mit dem Arduino-Board verbunden werden. Wildkamera am Futterhaus
Fa. Adafruit TTL-Serial-JPEG-Cam
Durch die serielle Ansteuerung eignet sich diese Kamera ideal für Hausautomationsprojekte mit Arduino.
Die Kamera hat verschiedene Funktionen: Auto-Kontrast oder Bewegungserkennung. Für die Speicherung der erstellten Fotos muss ein Rechner über die serielle Verbindung angeschlossen sein oder man sichert die Bilder auf einer am Arduino-Board angeschlossenen SD-Karte. SD-Karte-Shield oder SD-Karten-Adapter § SD-Karte
ODER
WiFi-Speicherkarte, die auch unter der Bezeichnung FlashAir bekannt ist
http://www.reichelt.com/SD-Karten-mit-Wi-Fi/TOS-SD-F16AIR/3/index.html?ACTION=3&LA=2&ARTICLE=154619 Die FlashAir-Speicherkarte kann wie eine handelsübliche SD-Karte verwendet werden. Für die erste Inbetriebnahme steckt man die Karte in den einen Speicherkartenadapter und verbindet diesen mit dem Rechner oder man verwendet einen SD-Karten-Adapter für Arduino und schaltet dann die Versorgungsspannung ein. Kurz nach dem Einstecken beziehungsweise Einschalten erscheint auf dem Smartphone ein neues WLAN, über das man sich verbinden kann. Der Name des WLAN der FlashAir-Karte beginnt immer mit »flashair_« Das Standardkennwort finden Sie in den Unterlagen zur Karte. Nach der Inbetriebnahme empfiehlt der Hersteller, umgehend den WLAN-Namen (SSID) und das Kennwort der FlashAir-Karte über die Weboberfläche zu ändern. http://flashair.local Neben der Versorgungsspannung von +5 V und GND werden die beiden seriellen Leitungen TX und RX benötigt. Da die Kamera intern mit 3,3 V arbeitet, muss der Signalpegel am Signal RX mit einem Spannungsteiler angepasst werden.
Adafruit https://www.adafruit.com/products/397
Exp-Tech http://www.exp-tech.de/ttl-serial-jpeg-camera-with-ntsc-video
BoTec http://shop.boxtec.ch/linksprite-jpeg-color-camera-ttl-interface-p-40744.html
SD-Karten-Adapter / ARDUINO UNO R3 +5V +5 V GND GND CLK pin-13 DO pin-12 DI pin-11 CS pin-10 (oder anderen Pin) SD-Card-Shield Mit einem SD-Karten-Adapter kann die SD-Karte mit dem Arduino-Board verbunden werden. Diese SD-Karten-Adapter gibt es als kleines Breakout-Board oder als Arduino-Shield. Ein Breakout-Board muss mittels Drahtverbindungen mit dem Arduino-Board verdrahtet werden. Ein SD-Karte-Shield kann direkt auf den Arduino gesteckt werden Wird ein sogenanntes Breakout-Board verwendet, muss geprüft werden, ob ein Pegelwandler integriert ist. SD-Karten selbst werden mit 3,3-VLogik angesteuert.
IteadStudio https://www.itead.cc/itead-stackable-sd-card-shield.html
Seeed Studio https://www.seeedstudio.com/SD-Card-Shield-V4-p-1381.html
Exp-Tech http://www.exp-tech.de/seeed-studio-sd-card-shield-v4-0
SD/Micro-SD-Karte-Breakout-Modul IteadStudio https://www.itead.cc/sd-micro-SD-Karte-breakout-module.html
Shop Botec http://shop.boxtec.ch/micro-card-breakout-module-5v33v-compatible-p-40423.html
Bibliothek und Code Dank der Arbeit von Limor Fried von Adafruit gibt es eine einfach zu nutzende Bibliothek für die Ansteuerung der Serial-JPEG-Cam mit Arduino. #include <Adafruit_VC0706.h> #include <SPI.h> #include <SD.h> usw. https://github.com/adafruit/Adafruit-VC0706-Serial-Camera-Library Abstandsmesser mit Ultraschall-Sensor / US-Sensor Abstands-Sensor / Entfernungs-Sensor / Distanz-Sensor
Bewegungs-Sensor
Bei der Abstandmessung mit Ultraschall wird ein Schallsignal vom Sender versendet. Trifft das Schallsignal auf ein Objekt, wird es zurückgeworfen und vom Sender wieder empfangen. Die Zeit zwischen dem Senden und dem Empfangen des Schallsignals ist ein Maß für den Abstand zum Objekt. Bei einer Schallgeschwindigkeit von 340 m/s, was einer Laufzeit von 29 Mikrosekunden pro Zentimeter entspricht, kann der Abstand wie folgt ermittelt werden. Abstand in cm = gemessene Zeit / 29 / 2 Da die gemessene Zeit den Hin- und den Rückweg erfasst, muss in der Berechnung das Resultat durch 2 dividiert werden. Der bekannteste Ultraschall-Sensor im Arduino-Umfeld ist der Typ HC-SR04, Ultraschall-Sensor – Ultrasonic HC-SR04 Abstandmessung mit HC-SR04-Ultraschall-Sensor Beispiel Sparkfun)
SparkFun https://www.sparkfun.com/products/13959
Reichelt https://www.reichelt.com/Weiteres-Zubehoer/DEBO-SEN-ULTRA/3/index.html?ACTION=3&GROUPID=6671&ARTICLE=161487&OFFSET=16&
Neben dem Ultraschall-Sensor HC-SR04 ist auf dem Markt ein Sensortyp mit dem Namen Ping erhältlich Parallax https://www.parallax.com/product/28015 Dieser Sensortyp des Herstellers Parallax hat eine unterschiedliche Anschlussbelegung. Für die Ansteuerung ist ein anderer Programmcode erforderlich ! ! ! Abstandsmesser für die Garage mit 6 LED Balkenanzeige
UGW IO OGW
Rot pin-7 1 bis 9 cm Orange pin-6 10 bis 19 cm Gelb pin-5 20 bis 29 cm Gelb pin-4 30 bis 39 cm Grün pin-3 40 bis 49 cm Weiß pin-2 > 50 cm Mit der Technik der Portmanipulation können Sie die Portregister vom ATmega328, dem Microcontroller des Arduino Uno, auf einfache Weise ansteuern. Jeder Microcontroller hat eigene Portbezeichnungen, die sich unterscheiden. Port D des Atmega328 sind die digitalen Pins D0 bis D7. Weitere Details zur Portmanipulation finden Sie unter: https://www.arduino.cc/en/Reference/PortManipulation Sketch: Abstandmessung mit HC-SR04 Ultraschall-Sensor und LED-Anzeige buch_sensor_kap4_hc_sr04_led.ino // // Abstandmessung mit HC-SR04 Ultraschall-Sensor und LED-Anzeige // (Beispiel Sparkfun) // /** * HC-SR04 Demo * Demonstration of the HC-SR04 Ultrasonic Sensor * Date: 2016-08-03 * License: Public Domain */ // Sensor Pins const int TRIG_PIN = 9; const int ECHO_PIN = 10; // LED-Pins int PinLED1 = 7; int PinLED10 = 6; int PinLED20 = 5; int PinLED30 = 4; int PinLED40 = 3; int PinLED50 = 2; // Distanzen über 400cm (23200 us pulse) sind "out of range" const unsigned int MAX_DIST = 23200; void setup() { // Trigger für Start Messung pinMode(TRIG_PIN, OUTPUT); digitalWrite(TRIG_PIN, LOW); // LED für Abstandsanzeige pinMode(PinLED1, OUTPUT); pinMode(PinLED10, OUTPUT); pinMode(PinLED20, OUTPUT); pinMode(PinLED30, OUTPUT); pinMode(PinLED40, OUTPUT); pinMode(PinLED50, OUTPUT); // Serielle Schnittstelle Serial.begin(9600); } void loop() { unsigned long t1; unsigned long t2; unsigned long pulse_width; float cm; float inches; // Trigger auf HIGH für min. 10us digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // Warten auf Signal an Echo-Pin while ( digitalRead(ECHO_PIN) == 0 ); // Hinweis: Der micros () Zähler wird nach ca. 70 min überlaufen // Messung von Pulslänge an Echo-Pin t1 = micros(); while ( digitalRead(ECHO_PIN) == 1); t2 = micros(); pulse_width = t2 - t1; // Berechnung von Distanz in cm und inch cm = pulse_width / 58.0; inches = pulse_width / 148.0; // Ausgabe auf serielle Schnittstelle if ( pulse_width > MAX_DIST ) { Serial.println("ERROR: Out of range"); } else { Serial.print("Abstand: "); Serial.print(cm); Serial.print(" cm, "); Serial.print(inches); Serial.println(" in"); // Ansteuerung der Abstands-LED if (cm >= 1) { PORTD = B10000000; } if (cm >= 10) { PORTD = B11000000; } if (cm >= 20) { PORTD = B11100000; } if (cm >= 30) { PORTD = B11110000; } if (cm >= 40) { PORTD = B11111000; } if (cm >= 50) { PORTD = B11111100; } } delay(60); // warten bis nächste Messung } Bewegungsmelder PIR-Sensor HC-SR501 Arduino Tutorial and ManualIn der dunklen Jahreszeit sind Bewegungsmelder beim Hauseingang praktische Module für die bewegungsabhängige Aktivierung einer Beleuchtung.Im Handel und im Baumarkt gibt es eine Vielfalt von kostengünstigen Bewegungsmeldern für den häuslichen Bereich. This motion sensor module uses the LHI778 Passive Infrared Sensor and the BISS0001 IC to control how motion is detected. The module features adjustable sensitivity that allows for a motion detection range from 3 meters to 7 meters. http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-hc-sr501-motion-sensor-tutorial/
SparkFun https://www.sparkfun.com/products/10289
Optischen Tilt-Sensor RPI-1031 Mit dem optischen Tilt-Sensor RPI-1031 können Sie nicht nur eine Bewegungsrichtung erfassen wie beim AT407. Dank des internen Aufbaus mit mehreren optischen Elementen kann der RPI-1031 Neigungen in vier Richtungen erkennen und auswerten
Tilt-a-Whirl Breakout - RPI-1031 - SEN-10621Neigungs-Sensor mit 4 Neigungsrichtungen (Sparkfun-Breakout-Board) RPI-1031 |
|
Optical Switches, Reflective, Phototransistor Output |
|
Manufacturer: | ROHM Semiconductor |
Datenblatt: https://www.sparkfun.com/datasheets/Sensors/rpi-1031.pdf
Schaltung Breakout-Board RPI-1031
Auf dem Breakout-Board von Sparkfun sind neben dem Tilt-Sensor RPI-1031 noch externe Komponenten aufgelötet.
Anhand der Schaltung des Breakout-Boards ist zu erkennen, dass die Diode über einen Vorwiderstand an +5 V angeschlossen ist und im Dauerbetrieb arbeitet.
Die Diode sendet also immer ein Lichtsignal.
Werden die Fototransistoren angeleuchtet, schalten diese durch und über die Pulldown-Widerstände liegt an den Ausgangssignalen S1 und S2 ein HIGH-Signal.
Ist der Lichtstrahl zu einem Transistor durch die Kugel unterbrochen, schaltet der Fototransistor nicht durch und am entsprechenden Ausgang liegt ein LOW-Signal.
Ausgang S1 Ausgang S2 Ausgang binär Ausgang dezimal
LOW LOW 00 0
LOW HIGH 01 1
HIGH LOW 10 2
HIGH HIGH 11 3
Tongeber Piezo-Sensor z.B. Piezo als Klopf-Sensor
Piezo-Sensor
Die Piezo-Sensoren bestehen aus verschiedenen Metallen. Bei Verformung des Piezo-Sensors oder durch eine Krafteinwirkung mittels Druck oder Schlag wird
eine kleine Spannung erzeugt. Dieses Phänomen ist in der Physik unter dem Begriff »Piezoeffekt« bekannt.
Darum eignet sich der Piezo-Sensor ideal als Klopfsensor.
Die beim Klopfen erzeugte Spannung am Sensor wird an einem analogen Eingang des Arduino-Boards eingelesen und ausgewertet.
Biegung messen mit Flex-Sensor / Windgeschwindigkeits-Messer
Der Flex-Sensor ist ein veränderbarer Widerstand in Form eines flexiblen und biegsamen Streifens
Der Flex-Sensor mit einer Länge von 4,5 Zoll (114,3mm) hat in geradem Zustand einen Widerstandswert von rund 9k Ohm.
Wird der Sensor gebogen, vergrößert sich der Widerstandswert auf etwa 30k Ohm.
Wird der Flex-Sensor gebogen, erhöht sich sein Widerstandswert.
Die metallene Seite des Sensors sollte dabei nach außen gerichtet sein, der Text nach innen.
Der Flex-Sensor ist in verschiedenen Längen erhältlich
SparkFun https://www.sparkfun.com/products/10264?_ga=1.212535060.1805372550.1475929381
Watterott http://www.watterott.com/de/Flex-Sensor-45
Boxec http://shop.boxtec.ch/flex-sensor-p-41993.html
Druckempfindlicher Sensor – Force-Sensor - FSR-Sensor
Der druckempfindliche Sensor FSR (Force Sensitive Resistor) ist ein runder Messaufnehmer.
Der Sensor verändert seinen Widerstand in Abhängigkeit vom Druck auf die Messfläche.
Bei leichtem Druck ist ein hoher Widerstand messbar.
Mit dem Erhöhen des Drucks vermindert sich der elektrische Widerstand.
Bei 50 Gramm Druck ist ein Widerstand von rund 10k Ohm messbar, bei rund 1000 Gramm Druck vermindert sich der Widerstand auf rund 1k Ohm.
Druckabhängiger Widerstand mit FSR-Sensor
SparkFun https://www.sparkfun.com/products/9375
Exp-Tech http://www.exp-tech.de/round-force-sensitive-resistor-fsr
BoTec http://shop.boxtec.ch/druckempfindlicher-widerstand-p-42013.html
//
// FSR-Drucksensor
//
int fsrPin = A0;
int valFSR = 0;
void setup()
{
Serial.begin(9600);
Serial.println("FSR-Sensor...");
}
void loop()
{
// Wert des FSR-Sensors einlesen
valFSR = analogRead(fsrPin);
// Serielle Ausgabe
Serial.print("FSR Wert: ");
Serial.println(valFSR);
delay(200);
}
Berührungslose Eingabe (7-Sensortasten) AT42QT1070
7-Tasten Mini-Keyboard
– IC für Touch-Anwendungen - I2C
//
// FSR-Drucksensor
//
int fsrPin = A0;
int valFSR = 0;
void setup()
{
Serial.begin(9600);
Serial.println("FSR-Sensor...");
}
void loop()
{
// Wert des FSR-Sensors einlesen
valFSR = analogRead(fsrPin);
// Serielle Ausgabe
Serial.print("FSR Wert: ");
Serial.println(valFSR);
delay(200);
}
Berührungslose Eingabe (7-Sensortasten) AT42QT1070
7-Tasten Mini-Keyboard
– IC für Touch-Anwendungen - I2C
ATMEL-Datenblatt http://www.atmel.com/images/Atmel-9596-AT42-QTouch-BSW-AT42QT1070_Datasheet.pdf
RS Components http://de.rs-online.com/web/p/touchscreen-controller/7380167/
Grove-Q-Touch-Sensor
Seeed Studio das Grove Q-Touch-Modul https://www.seeedstudio.com/Grove-Q-Touch-Sensor-p-1854.html
Exp-Tech http://www.exp-tech.de/seeed-studio-grove-q-touch-sensor
Q-Touch-Bibliothek https://github.com/Seeed-Studio/Seeed_QTouch
#include <Wire.h>
#include "Seeed_QTouch.h"
Kompass-Modul HMC5883L - Kompass mit HMC5883
Der HMC5883L ist ein 3-Achsen-, I2C-basierender, digitaler Kompass-Baustein vom Halbleiterhersteller Honeywell.
Für Breakout-Boards mit dem HMC5883 hat Seeed Studio eine eigene Arduino-Bibliothek realisiert, die auf der Wiki-Seite des Kompassmoduls zum Download
bereitsteht.
http://wiki.seeedstudio.com/wiki/Grove_-_3-Axis_Digital_Compass
Digitaler Kompass mit LED-Anzeige
FARNELL http://www.farnell.com/datasheets/1683374.pdf
Breakout-Boards mit dem HMC5883L
Q-Touch-Bibliothek https://github.com/Seeed-Studio/Seeed_QTouch
#include <Wire.h>
#include "Seeed_QTouch.h"
Kompass-Modul HMC5883L - Kompass mit HMC5883
Der HMC5883L ist ein 3-Achsen-, I2C-basierender, digitaler Kompass-Baustein vom Halbleiterhersteller Honeywell.
Für Breakout-Boards mit dem HMC5883 hat Seeed Studio eine eigene Arduino-Bibliothek realisiert, die auf der Wiki-Seite des Kompassmoduls zum Download
bereitsteht.
http://wiki.seeedstudio.com/wiki/Grove_-_3-Axis_Digital_Compass
Digitaler Kompass mit LED-Anzeige
FARNELL http://www.farnell.com/datasheets/1683374.pdf
Breakout-Boards mit dem HMC5883L
Seeed Studio https://www.seeedstudio.com/grove-3axis-compass-p-759.html?cPath=144_145
Boxtec http://shop.boxtec.ch/grove-achsen-digital-kompass-p-41411.html
Kompassmodul mit HMC5883L
Triple Axis Magnetometer Breakout – HMC5883L
SparkFun https://www.sparkfun.com/products/10530
Position ermitteln mit GPS-Modul GP-735
GPS-Position anzeigen / Geocache-Finder
GP-735 von Sparkfun https://www.sparkfun.com/products/13670
Die meisten seriellen GPS-Module senden die empfangenen Positionsdaten im Format NMEA 0183 (https://de.wikipedia.org/wiki/NMEA_0183).
Dies ist ein Standardformat für Navigationsgeräte und GPS.
Das Format beginnt mit einem $GPGGA und anschließend kommt eine ganze Reihe von Parametern, die durch ein Komma getrennt sind.
$GPGGA,082804.683,5205.9421,N,00506.4368,E,1,03,3.0,0.3,M,,,,0000…..
Triple Axis Magnetometer Breakout – HMC5883L
SparkFun https://www.sparkfun.com/products/10530
Position ermitteln mit GPS-Modul GP-735
GPS-Position anzeigen / Geocache-Finder
GP-735 von Sparkfun https://www.sparkfun.com/products/13670
Die meisten seriellen GPS-Module senden die empfangenen Positionsdaten im Format NMEA 0183 (https://de.wikipedia.org/wiki/NMEA_0183).
Dies ist ein Standardformat für Navigationsgeräte und GPS.
Das Format beginnt mit einem $GPGGA und anschließend kommt eine ganze Reihe von Parametern, die durch ein Komma getrennt sind.
$GPGGA,082804.683,5205.9421,N,00506.4368,E,1,03,3.0,0.3,M,,,,0000…..
Bibliothek http://arduiniana.org/libraries/tinygpsplus/
7.1 Gas-Sensoren der MQ-Reihe
Die Gas-Sensoren der MQ-Reihe sind günstige Sensoren für die Erkennung von verschiedenen Gasen und eignen sich dank der günstigen Preise für den Einsatz
im Haushalt. Die meisten Sensoren liefern am Ausgang ein analoges Signal, das direkt von einem Arduino-Board eingelesen werden kann. In Tabelle 7.1 sind
einige Gas-Sensoren der MQ-Reihe aufgelistet.
Gas-Sensoren – Übersicht
Sensortyp Gas Versorgungsspannung Spannung Bezugsquellen
MQ2 LPG-Gas, Butan, Methan, Alkohol, Rauch 5V https://www.seeedstudio.com/Grove-Gas-Sensor(MQ2)-p-937.html
MQ3 Alkohol-Sensor 5V https://www.seeedstudio.com/Grove-Gas-Sensor(MQ3)-p-1418.html
MQ4 Methan, CNG Gas https://www.sparkfun.com/products/9404
MQ5 LPG-Gas, Naturgas,Stadt-Gas 5V https://www.seeedstudio.com/Grove-Gas-Sensor(MQ5)-p-938.html
MQ6 LPG-Gas, Naturgas 5V https://www.seeedstudio.com/Electronicbrick-Gas-sensor(MQ6)-p-473.html
MQ7 Kohlenstoff-Monoxid 5V https://www.sparkfun.com/products/9403
MQ8 Hydrogen 5V https://www.sparkfun.com/products/10916
Einige Sensoren der MQ-Reihe müssen vor der Ausführung einer Messung eine gewisse Zeit mit Spannung versorgt und aufgeheizt werden.
Nach der Aufheizphase sind einige Sensoren recht heiß und sollten nicht direkt mit der Hand berührt werden.
Aliexpress https://www.aliexpress.com
Seeed Studio https://www.seeedstudio.com/Grove-Gas-Sensor(MQ2)-p-937.html
8.1 Elektrischen Strom messen - Messung mit Shunt
Strommessung mit High-Side-Messmodul
Blockschaltbild Modul INA169 von Adafruit
Mittlerweile haben Halbleiter-Hersteller integrierte Bausteine für diese Schaltungsarten entwickelt.
Zu erwähnen sind dabei Bausteine wie der INA169 oder INA219.
Diese Bausteine beinhalten die gesamte Schaltungstechnik mit Verstärker.
Adafruit http://www.adafruit.com/products/1164
SparkFun https://www.sparkfun.com/products/12040
Für die Messung hoher Ströme in einem Schaltkreis mit Gleichspannung eignet sich das ACS712-Breakout-Board, das in Abschnitt 9.4 beschrieben wird.
8.3 Hall-Sensor A3144
Hall-Sensor A3144 ist ein Sensor mit digitalem Transistor-Ausgang.
Datenblatt A3144 http://www.alldatasheet.com/datasheet-pdf/pdf/55092/ALLEGRO/A3144.html
Überwachungskontakt mit Hall-Sensor und Alarmanzeige
9.1 Temperatur & Luftfeuchtigkeit mit DHT11 und DHT22-Sensor
Der DHT11 findet seinen Einsatz als Temperaturalarm im Keller oder als Feuchtigkeitsüberwacher im Dachgeschoss.
Es eignet sich der DHT22 dank des größeren Messbereichs auch für Messungen im Freien und durch die höhere Genauigkeit
können auch kleine Temperaturschwankungen im Wohnzimmer oder Bastelraum erfasst werden.
Beide Sensortypen eignen sich auch ideal als Sensoren für Datenlogger, da beide einen geringen Strom während der Messung benötigen.
Bibliothek https://learn.adafruit.com/dht/downloads
#include "DHT.h"
9.1.3 Umweltsensor SHT31 - Feuchte- und Temperatursensor
Der Schweizer Halbleiterhersteller Sensirion ist ein führender Hersteller von Sensoren für Feuchte, Gas und Flüssigkeitsdurchfluss.
Adafruit https://www.adafruit.com/products/2857
Der Typ SHT31 (Abbildung 9.4) wird nicht nur in Consumergeräten, sondern auch im Hobby- und Maker-Umfeld eingesetzt.
Der SHT31 bietet eine hohe Genauigkeit von +/- 0,2 Grad Celsius (Temperatur) und +/- 2 % (Luftfeuchtigkeit) und hat somit bessere technische Daten als ein DHT22-Sensor.
http://www.sensirion.com
https://www.sensirion.com/de/produkte/digitale-feuchtesensoren-fuer-zuverlaessige-messungen/
https://cdn-learn.adafruit.com/downloads/pdf/adafruit-sht31-d-temperature-and-humidity-sensor-breakout.pdf
SHT31-Breakout-Board mit Grove-Stecker
9.1.3 Umweltsensor SHT31 - Feuchte- und Temperatursensor
Adafruit SHT31-D Temperature & Humidity Sensor Breakout
Der Schweizer Halbleiterhersteller Sensirion ist ein führender Hersteller von Sensoren für Feuchte, Gas und Flüssigkeitsdurchfluss.
Adafruit https://www.adafruit.com/products/2857
Der Typ SHT31 (Abbildung 9.4) wird nicht nur in Consumergeräten, sondern auch im Hobby- und Maker-Umfeld eingesetzt.
Der SHT31 bietet eine hohe Genauigkeit von +/- 0,2 Grad Celsius (Temperatur) und +/- 2 % (Luftfeuchtigkeit) und hat somit bessere technische Daten als ein DHT22-Sensor.
http://www.sensirion.com
https://www.sensirion.com/de/produkte/digitale-feuchtesensoren-fuer-zuverlaessige-messungen/
https://cdn-learn.adafruit.com/downloads/pdf/adafruit-sht31-d-temperature-and-humidity-sensor-breakout.pdf
SHT31-Breakout-Board mit Grove-Stecker
BlkBox https://www.tindie.com/products/blkbox/sht31-digital-humidity-andtemperature-sensor-module/
555CircuitsLab http://555circuitslab.com
Arduino-SHT-Bibliothek https://github.com/winkj/arduino-sht
#include <Wire.h>
#include "sht3x.h"
9.2 Sensoren für Bodenfeuchte-Messung - Nagelsensor
Chirp-Bodenfeuchte-Sensor I2C-BUS https://www.tindie.com/products/miceuz/i2c-soil-moisture-sensor/
9.3 Geräusche erfassen - Lärmmesser - Lautstärkemesser
Die Messung der Umweltgeräusche oder des Lärms erfolgt mit einem Mikrofon.
Verschiedene Breakout-Boards mit zusätzlichem Verstärker erlauben eine einfache Mess-Schaltung ohne viele Bauteile.
Der Mikrofon-Verstärker von
Adafruit https://www.adafruit.com/product/1063
oder der Loudness-Sensor von
Seeed Studio https://www.seeedstudio.com/item_detail.html?p_id=1382
sind günstige Module, die den gemessenen Pegel als analoge Spannung ausgeben.
Loudness-Sensor (Seeed Studio) oder Mikrofon-Verstärker (Adafruit)
Sensor von Seeed Studio aus der Grove-Reihe
9.4 Stromverbrauch messen (Gleichstrom) mit ACS712-Breakout-Board
mit Strom-Messmodul ACS712 von Sparkfun.
Der ACS712 nutzt für die Strommessung den Hall-Effekt und liefert am Ausgang des Moduls eine lineare Ausgangsspannung in Millivolt pro Ampere (mV/A).
Der Wert für die Ausgangsspannung ist abhängig vom Stromtyp und kann dem Datenblatt entnommen werden.
Der von mir verwendete 5A-Typ liefert eine Ausgangsspannung von 185 mV/A.
Strommessung mit ACS712
BoxTec http://shop.boxtec.ch/acs712-breakout-p-40387.html
Watterott http://www.watterott.com/de/Sensoren/Strom/ACS712-Breakout
9.5 Stromverbrauch messen (Wechselstrom) mit Strom-Messmodul ACS712 von Sparkfun.
9.5.1 Kontaktlose Messung von 230Vac Wechsel-Strom und Leistung mit SCT-013-030-Sensor
Mit dem Sensor SCT-013-030 und der externen Schaltung kann der Wechselstrom durch den Verbraucher, die Lampe oder Heizung, gemessen werden.
Der Sensor ist für einen maximalen Strom von 30 Amp. ausgelegt.
Schaltung Energie-Monitor mit dem Sensor SCT-013-030
webbasierten Datenerfassungslösung (Emoncms) https://openenergymonitor.org/
Diese Bibliothek heißt Emonlib https://github.com/openenergymonitor/EmonLib
#include "EmonLib.h"
Energy-Monitor-Board 555CircuitsLab http://555circuitslab.com
10.1 Herzschlag messen - Puls-Sensor
Puls-Sensor pulsesensor.com
Make-Magazine http://makezine.com/projects/ir-pulse-sensor/
Puls-Sensor https://www.kickstarter.com/projects/1342192419/pulse-sensor-an-open-sourceheart-rate-sensor-that?lang=de
Github https://github.com/WorldFamousElectronics/PulseSensor_Amped_Arduino
Github https://github.com/WorldFamousElectronics/PulseSensor_Amped_Processing_Visualizer
Open-Source-Anwendung Processing ausgeführt werden https://processing.org/
10.2 Hautwiderstand messen - Hautsensor
Der Widerstand im Spannungsteiler für die Schaltung ist bei mir mit 33k Ohm bemessen.
Bei Tests mit verschiedenen Werten zwischen 22k Ohm und 100k Ohm war der 33k Ohm-Wert der optimale für diesen Anwendungsfall.
Der Fingersensor ist im Detail in Abbildung 10.9 zu sehen und zeigt die Alufolie, die um den Zeigefinger gewickelt und mit Klebeband oder Tesafilm zusammengehalten wird.
Die Krokodilklemmen ermöglichen eine sichere Verbindung vom Alustreifen zur Schaltung auf dem Steckbrett.
11.2 Datenübertragung drahtlos mit RF-Modul (433 MHz RF-Kit)
12.3 LED-Streifen mit Neopixel
Die meisten der Produkte mit den adressierbaren RGB-LEDs basieren auf einem integrierten Baustein mit der Bezeichnung WS2812, der in das LED-Gehäuse integriert
ist.
RGB-Controller WS2812B
In Abbildung ist der WS2812B mit der Anschlussbelegung aus dem Datenblatt zu sehen.
Dieser Typ ist der Nachfolger des WS2812
SparkFun Neopixel-RGB-LED-Matrix
12.4 10-Segment Balkenanzeige mit LED mit 10-Segment-Anzeige
Bargraph- oder Balkenanzeige mit Treiberbaustein LM3914
10.2 Hautwiderstand messen - Hautsensor
Der Widerstand im Spannungsteiler für die Schaltung ist bei mir mit 33k Ohm bemessen.
Bei Tests mit verschiedenen Werten zwischen 22k Ohm und 100k Ohm war der 33k Ohm-Wert der optimale für diesen Anwendungsfall.
Der Fingersensor ist im Detail in Abbildung 10.9 zu sehen und zeigt die Alufolie, die um den Zeigefinger gewickelt und mit Klebeband oder Tesafilm zusammengehalten wird.
Die Krokodilklemmen ermöglichen eine sichere Verbindung vom Alustreifen zur Schaltung auf dem Steckbrett.
11.2 Datenübertragung drahtlos mit RF-Modul (433 MHz RF-Kit)
12.3 LED-Streifen mit Neopixel
Die meisten der Produkte mit den adressierbaren RGB-LEDs basieren auf einem integrierten Baustein mit der Bezeichnung WS2812, der in das LED-Gehäuse integriert
ist.
RGB-Controller WS2812B
In Abbildung ist der WS2812B mit der Anschlussbelegung aus dem Datenblatt zu sehen.
Dieser Typ ist der Nachfolger des WS2812
SparkFun Neopixel-RGB-LED-Matrix
12.4 10-Segment Balkenanzeige mit LED mit 10-Segment-Anzeige
Bargraph- oder Balkenanzeige mit Treiberbaustein LM3914
rot https://www.sparkfun.com/products/9935
gelb https://www.sparkfun.com/products/9936
grün https://www.sparkfun.com/products/9938
blau https://www.sparkfun.com/products/9937
Treiberbaustein
LM3914 https://www.sparkfun.com/products/12694
BOURNS Model 46ooX-101-RC (101 = 100 Ohm)
12.5 Daten und Messwerte anzeigen mit Display
12.5.1 Praxisbeispiel: Parallele LCD-Ansteuerung
LCD-Ansteuerung Steckbrettaufbau
//
// Ansteuerung LCD parallel, 4-Bit-Modus
#include <LiquidCrystal.h>
//lcd (rs, rw, enable, D4, D5, D6, D7)
LiquidCrystal lcd(8, 9, 10, 2, 3, 4, 5);
12.6 Daten speichern auf SD-Karte
12.6.1 Praxisbeispiel: Datenlogger mit SD-Karte
Im praktischen Alltag haben sich SD-Karten, umgangssprachlich auch Speicherkarten genannt, bewährt.
Fotoapparate speichern die aufgenommenen Fotos schon seit geraumer Zeit auf diesen kleinen Speicherkarten.
Wie die Vergangenheit gezeigt hat, werden die Karten immer kleiner, aber trotzdem ist der Speicherplatz laufend größer geworden.
SD-Karten im Gbyte-Bereich sind heute der Standard.
Darum ist es naheliegend, für die Speicherung von Sensordaten eine SD-Karte zu verwenden.
In Abschnitt 3.5 wurde eine SD-Karte zur Speicherung von Fotos benutzt.
Im Gegensatz zur dort verwendeten SD-Karte mit WiFi-Funktionalität wird in diesem Kapitel eine handelsübliche SD-Karte eingesetzt.
Zur Verbindung des Arduino-Boards mit der SD-Karte können dieselben SD-Karten-Adapter, Breakout-Boards oder Shields, verwendet werden.
Ich empfehle auch hier das SD-Card-Shield von Iteadstudio
https://www.itead.cc/itead-stackable-sd-card-shield.html
oder das SD-Card-Shield von Seeed Studio
http://www.exp-tech.de/seeed-studio-sd-card-shield-v4-0
https://www.seeedstudio.com/SD-Card-Shield-V4-p-1381.html
Datenlogger mit SD-Karte
Abb. 12.22: SD-Card-Shield oder Breakout-Board § SD-Karte
#include <SD.h>
In diesem Projekt werden wir Daten von einem LDR auf einer SD-Karte speichern.
Dazu verwenden wir ein SD-Card-Shield, das direkt auf das Arduino-Board aufgesteckt werden kann.
Der Vorteil eines SD-Card-Shields gegenüber einem SD-Karte-Breakout-Board ist, dass keine Drahtverbindungen notwendig sind.
Durch das Aufstecken des Shields auf den Arduino sind bereits alle nötigen Verbindungen gegeben.
Falls Sie für das Projekt ein Breakout-Board verwenden, müssen Sie die Verbindungen gemäß Tabelle 3.1 aus Kapitel 3 selber vornehmen.
12.6.2 Uhrzeit mit DS1307 RTC und Lithium-Batterie CR2032
DS1307-Uhrenbaustein mit Arduino
12.6.3 Datenlogger mit Zeitstempel
Datenlogger mit Uhrenbaustein – Steckbrettaufbau
Mit dem Datalogger-Shield von Adafruit stehen auf einem Shield alle nötigen Funktionen für einen Datenlogger zur Verfügung.
Zusätzlich bietet das Shield noch eine Protofläche mit Lötpads für eigene Schaltungen
https://www.adafruit.com/product/1141
12.7 Datenspeicher EEPROM
12.7.1 Praxisbeispiel: Daten ins EEPROM schreiben
12.7.2 Praxisbeispiel: Daten aus dem EEPROM lesen
12.7.3 Praxisbeispiel: Daten aus dem EEPROM löschen
12.8 Internet-Plattformen – Internet of Things (IoT)
In den bisherigen Kapiteln wurden die erfassten Sensordaten auf die serielle Schnittstelle ausgegeben, als LED oder Farbwert angezeigt, auf einer SD-Karte des
EEPROM gespeichert oder auf einem Display ausgegeben.
Mit der immer größeren Verbreitung des Internets haben sich Dienste entwickelt, die Dienstleistungen und Services online anbieten.
Mittlerweile werden viele Daten online auf einem Internet-Server oder in einer Internet-Datenbank gespeichert.
Solche Online-Dienste werden in der sogenannten »Cloud« angeboten und sind mit jedem Internet-Zugang erreichbar. Kommerzielle Dienstleistungen sind dabei nicht nur die Speicherung der Daten, sondern komplette Anwendungen inklusive Datenspeicherung und den nötigen Sicherheitsmechanismen.
Mit der immer stärkeren Verbreitung von Geräten mit Internet-Zugang, beispielsweise
Webcams, Smart-TVs, Kühlschränken und anderen, gewinnt das Thema »Internet of Things« einen immer stärkeren Einfluss.
In der Cloud werden neben den Datenspeicher-Diensten komplette Anwendungen für die Datenspeicherung und Visualisierung angeboten.
Viele Anwendungen können nun über Internet aufgerufen werden und liefern Informationen für den Anwender.
Im Bereich der Sensordaten und der Visualisierung dieser Daten sind etliche Anbieter auf dem Markt.
Zu den bekannten Namen gehören Xively
https://www.xively.com/
oder ThingSpeak
https://thingspeak.com/
Beide Anbieter bieten Schnittstellen zur Datenerfassung und Darstellung.
Dabei können alle Arten von Geräten Sensordaten, Statuswerte und Zustände liefern, die dann auf den Online-Plattformen als Dashboard sichtbar sind.
Zusätzliche Funktionen erweitern die verbundenen Geräte, in der Fachsprache als »connected Things« bezeichnet, um Logik und können Statuswerte oder Zustände
auswerten und weitere Aktionen anstoßen oder ausführen.
Zu den bekannten Online-Plattformen, die auch von vielen Bastlern genutzt werden, gehört IFTTT
https://ifttt.com/
Mit den Funktionen von IFTTT, was
ausgeschrieben »If this then that«, also »wenn dies, dann das« heißt, können Webanwendungen miteinander verknüpft werden. Beispielsweise kann ein Tweet
bei Twitter erstellt werden, wenn jemand auf der Facebook-Seite einen Beitrag positiv gelikt hat.
In den nachfolgenden beiden Abschnitten wollen wir webbasierte Lösungen zur Datenspeicherung und -darstellung genauer anschauen.
Zuerst erkläre ich, wie Sie Sensordaten vom lokalen Arduino mit angeschlossenen Sensoren mittels der Online-Plattform ThingSpeak ins Internet bringen. Im abschließenden
Abschnitt werden die Sensordaten in einer hausinternen Webanwendung mittels Web-Scripts in PHP
http://php.net/manual/de/intro-whatis.php
in einer MySQL-Datenbank
https://www.mysql.de/
gespeichert.
Im Browser können die gespeicherten Daten anschließend aufgerufen und betrachtet werden.
12.9 Sensordaten bei ThingSpeak
ThingSpeak (https://thingspeak.com) ist eine Internet-Plattform, auf der Sie Ihre gesammelten Sensordaten wie Temperaturwerte, UV-Index und so weiter speichern und anschließend grafisch darstellen können.
Der Service von ThingSpeak ist kostenlos und erlaubt die regelmäßige Erfassung von Sensordaten.
Einziges Limit ist der Rhythmus der Datenspeicherung. Thing-Speak erlaubt das Speichern von Daten alle 15 Sekunden.
12.9.1 Praxisbeispiel: Lichtmesswerte an ThingSpeak senden
Bei der Wahl eines Ethernet-Shields ist zu beachten, dass das Board mit einem Ethernet-Controller vom Typ Wiznet W5100 betrieben wird.
https://store.arduino.cc/product/A000072
https://github.com/mathworks/thingspeak-arduino
Wie gewohnt werden zuerst die nötigen Bibliotheken geladen, in diesem Fall die Bibliothek ThingSpeak.h von ThingSpeak sowie die Bibliotheken für die Ethernet-Kommunikation mit dem Ethernet-Shield.
12.10 Lokale IoT-Datenbank mit MySQL-Datenbank
https://make.wordpress.org/core/handbook/tutorials/installing-a-localserver/wampserver/
http://www.wampserver.com/en
13.1 Das Sensor-Shield
Für universelle Sensor-Anwendungen habe ich ein Sensor-Shield realisiert, um verschiedene Sensoren direkt am Arduino-Board anzuschließen.
Das Shield eignet sich ideal für den Test der in den vorigen Kapiteln beschrieben Sensoren und als stabile Universalplatine für eine produktive Sensor-Anwendung.
Das Sensor-Shield bietet folgende Anschlussmöglichkeiten und Zusatzfunktionen:
. Grove-Stecker I2C-Bus
. Grove-Stecker Analog (Signale A0 und A1)
. Grove-Stecker Digital (Signale D3, D4 und D5)
. Stiftleiste für DHT-Umweltsensoren inkl. Pull-up-Widerstand
. NTC mit Vorwiderstand
. LDR mit Vorwiderstand
. RGB-LED (Common Anode)
. Power-LED
. Lötpads für 5 V und GND
. Lötpads für Arduino-Signale Digital und Analog
. Protofläche für zusätzliche Bauteile
Sensor-Shield
Die Sensoren werden an den Grove-Steckern, den Stiftleisten oder den Arduino-Buchsenleisten angeschlossen.
13.2 Shield-Schaltung
Die Schaltung des Sensor-Shields ist in Abbildung 13.2 dargestellt.
Im Schaltplan ist die Leiterplatte mit »Arduino Uno R3« bezeichnet.
Alle weiteren Bauteile und Stecker auf dem Shield werden an den digitalen und analogen Pins angeschlossen.
Die Sensoren NTC und LDR werden jeweils mit einem Pulldown-Widerstand angeschlossen.
Der Analogwert des NTC ist am analogen Eingang A3 angeschlossen, der Analogwert des LDR an A2.
Der DHT-Sensor kann über eine 4-polige Stiftleiste angeschlossen werden.
Das digitale Signal wird am digitalen Pin D2 des Arduino eingelesen.
Die Leuchtdiode PWR ist die Anzeige der 5-V-Versorgungsspannung und leuchtet, wenn am Shield 5 V angelegt werden.
Schaltung Sensor-Shield
Die RGB-Leuchtdiode mit den Vorwiderständen für die drei internen Leuchtdioden (Rot, Geld und Blau) ist ein Common-Anode-Typ.
Die einzelnen Leuchtdioden leuchten auf, sobald man die entsprechenden Anschlüsse mit GND verbindet.
Die weißen Grove-Stecker sind im Schaltplan mit J1 bis J5 bezeichnet. Grove ist ein modulares System mit vielen Sensormodulen und wurde durch den chinesischen
Hersteller Seeed Studio entwickelt.
http://www.seeedstudio.com/wiki/Grove_System
Alle Module und Sensoren dieses Systems können über ein standardisiertes Anschlusssystem mittels 4-poliger Anschlussstecker angeschlossen werden.
Die Anschlussbelegung der Grove-Stecker unterscheidet sich jeweils nach Art des angeschlossenen Sensors (Analog, Digital, I2C-Bus).
Alle Signale der Grove-Stecker werden auf Standard-Arduino-Pins geführt.
Als Basis für den Einsatz der Grove-Module dient meist ein Grove-Basisshield, auf dem mehrere Grove-Stecker vorhanden sind.
Zu beachten ist, dass die weißen, 4-poligen Grove-Stecker keinen Standard-Pinabstand im Zoll-Raster (0,1 Zoll entspricht 2,54 mm) haben.
Im Grove-System beträgt der Pinabstand 2 mm.
Stückliste
. 1 Leiterplatte Sensor-Shield, Rev. A (http://555circuitslab.com/)
. 2 Headerleiste 6-polig (JP1, JP2)
. 2 Headerleisten 8-polig (JP3, JP4)
. 5 Grove-Stecker 4-polig (J1, J2, J3, J4, J5)
. 1 Stiftleiste 4-polig (DHTx, JP8)
. 4 Widerstände 1 kOhm (R4, R5, R6, R7)
. 1 Widerstand 4,7 kOhm (R3)
. 2 Widerstände 10 kOhm (R1, R2)
. 1 RGB-LED 5 mm (RGB)
. 1 LED grün 3 mm (PWR)
13.3 Anschlussmöglichkeiten
In Abbildung 13.3 sind die Anschlussmöglichkeiten des Sensor-Shields dargestellt.
Abb. 13.3: Sensor-Shield – Anschlussmöglichkeiten
RGB
Die Ansteuerung der RGB-LED erfolgt über drei Anschluss-Pads.
Wie bereits erwähnt, können die drei internen Leuchtdioden über ein GND-Signal angesteuert werden.
In der Praxis führt man die drei Anschlüsse der RGB-Leuchtdiode auf freie digitale Pins.
Im Beispiel werden die Pins D9, D10 und D11 verwendet
13.6 Bezugsquellen
Das Sensor-Shield ist als Open-Source-Hardware realisiert und darf von jedem Bastler und Maker verwendet, verbessert und erweitert werden.
Die Daten der Leiterplatte im Eagle-Format sind frei verfügbar. Das Projekt wird laufend optimiert und weiterentwickelt.
Meine Website http://555circuitslab.com/
OSH Park https://oshpark.com/shared_projects/3WYS48q6
Sensor-Board
Anwendungen mit Sensoren sind oft im Platz beschränkt und die Sensoren müssen in ein schmales Gehäuse passen.
Ein Arduino Uno mit aufgestecktem Sensor-Shield kann zwar die technischen Anforderungen der Sensor-Lösung erfüllen, aber die Leiterplatten-Abmessungen des Arduino Uno sind zu groß für ein kompaktes Sensor-Gehäuse.
Neben den Abmessungen des Arduino-Boards für den Einsatz als Sensor-Board spielen meist auch die Art der Spannungsversorgung und der Stromverbrauch
eine große Rolle. Ein Arduino Uno ist nicht für batteriebetriebene Anwendungen optimiert.
Zwar kann man den Arduino Uno mit einer Batterie betreiben, aber die Anwendungszeit wird recht gering sein.
Ohne Optimierung der Hardware und der Software ist ein Batteriebetrieb mit dem Arduino Uno nicht rentabel.
Im »Normalbetrieb« ohne externe Beschaltung benötigt ein Arduino Uno rund 20 bis 40 mA. Dieser Stromverbrauch wird durch die umfangreiche Schaltung
(Leuchtdioden, Eingangsspannungsbereich mit Spannungsregler, FTDI-Wandler mit Microcontroller) auf dem Board hervorgerufen.
Sensor-Board
In diesem Kapitel wird ein Arduino-Board für Sensor-Anwendungen vorgestellt, das geringe Abmessungen besitzt und durch die einfache Schaltung auch im Batteriebetrieb eingesetzt werden kann.
14.1 Sensor-Board
Das Sensor-Board ist meine Eigenentwicklung und erfüllt die oben beschriebenen Anforderungen an ein Arduino-Board für den Sensor-Betrieb.
Folgende Punkte kennzeichnen das Sensor-Board:
. Arduino-kompatibel
. Geringe Abmessungen (maximal 35 × 70 mm)
. Schlanke Schaltung mit ATmega328
. Batteriebetrieb
. Protofläche für eigene Schaltung und Verdrahtung
. Programmierbar via FTDI-Anschluss oder ICSP-Adapter
In Abbildung 14.1 ist das Sensor-Board zu sehen.
Sensor-Board
Das Sensor-Board ist als Open Hardware realisiert und alle Daten des Projekts sind frei verfügbar.
Die Schaltung des Boards und die Daten der Leiterplatten können für eigene Anwendungen verwendet und verändert werden.
Die Leiterplattendaten stehen im Eagle-Format zur Verfügung.
Projekt- und Leiterplattendaten
http://555circuitslab.com
https://oshpark.com/shared_projects/HOyjPT7S
Schaltung
Abbildung 14.2 zeigt die Grundschaltung des Sensor-Boards.
Die Schaltung ist auf ein Minimum reduziert und ähnelt der Minimalschaltung aus Kapitel 1.
Sensor-Board – Stromlaufplan
Auf dem ATmega328-Microcontroller ist wie auf allen Arduino-Boards ein Bootloader installiert.
Programme werden in dieser Schaltung über den FTDI-Anschluss (K2) und einen USB-Serial-Wandler oder den Programmieranschluss ICSP (K3) und einen Programmieradapter, beispielsweise ein AVRISP mkII
http://www.atmel.com/tools/AVRISPMKII.aspx
hochgeladen.
Die Versorgungsspannung von 3,3 V oder 5 V wird direkt am Stecker K1 angeschlossen.
Die Eingänge und Ausgänge des Sensor-Boards sind auf die Stiftleisten K4 bis K7 geführt.
Auf der Leiterplatte sind dabei die Signalbezeichnungen gemäß Arduino-Standard aufgedruckt.
Das Signal PD0 des Microcontrollers ist beispielsweise der digitale Ein- oder Ausgang D0, der in der Praxis als Signal RX verwendet wird.
Die Taktfrequenz kann je nach Bedarf gewählt werden.
Bei einem Sensor-Board mit 8 MHz kann der Quarz mit den Kondensatoren (Q1) weggelassen werden.
Hier ist zu beachten, dass in diesem Fall ein spezieller Bootloader geladen und in der IDE ein anderes Board, ATmega328 on a breadboard (8 MHz internal clock), ausgewählt
werden muss.
Im nachfolgenden Abschnitt werden der Grund und der Einsatz eines Boards mit einer Taktfrequenz von 8 MHz beschrieben.
Die Konfiguration dieses 8-MHz-Boards kann von der Arduino-Website geladen werden.
https://www.arduino.cc/en/uploads/Tutorial/breadboard-1-6-x.zip
Auf derselben Webseite sind weitere Erklärungen zu dieser Board-Variante beschrieben.
https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
14.1.1 Praxisbeispiel: Grundaufbau Sensor-Board
Mit dem Bestückungsplan aus Abbildung 14.3 gelingt der Aufbau des Sensor-Boards auch einem Einsteiger. Im ersten Schritt lötet man die SMD-Komponenten
auf das Board, anschließend den IC-Sockel für den Microcontroller und, je nach Bedarf, die einzelnen Stiftleisten.
Sensor-Board – Bestückungsplan
Stückliste
. 1 Leiterplatte (OSHPark)
. 1 Microcontroller Atmel ATmega328 (DIL28)
. 1 Resonator 16 MHz (Q1, Gehäuse SMD, 3,2x1,3 mm)
. 3 Keramik-Kondensatoren 100 nF (C1-C3, SMD 1206)
. 1 Widerstand 10 kOhm (R1, SMD1206)
. 1 IC-Sockel DIL28
. 2 Stiftleisten 1x3 (K8, K9)
. 1 Stiftleiste 1x4 (K1)
. 1 Stiftleiste 1x6 (K2)
. 1 Stiftleiste 2x3 (K3)
. 4 Stiftleisten 1x12 (K4-K7)
Aufbau
Die Leiterplatte des Sensor-Boards hat eine Größe von 65x35 mm.
Der Microcontroller ATmega328 und die Stiftleisten für die Programmieradapter sowie die Eingänge und Ausgänge können an den entsprechenden Lötpads angelötet werden.
Die passiven Komponenten wie der Reset-Widerstand und die Kondensatoren sowie der Quarz für den Systemtakt sind als SMD-Komponenten (Bauteile für die Oberflächenmontage) ausgelegt.
Ein Montageloch erlaubt die stabile Montage des Boards mit einer Montageschraube.
14.2 Low-Power-Betrieb
Batteriebetriebene ARDUINO-Boards ermöglichen einen standortunabhängigen Einsatz, beispielsweise als Sensor-Anwendung im oder ums Haus.
Der Standort ist dabei unabhängig von einer Steckdose oder einem USB-Adapter.
Beim Betrieb mit einer Batterie müssen Sie ein besonderes Auge auf den Stromverbrauch haben.
Im Normalbetrieb, also mit einer Versorgung aus einem Netzgerät oder über den USB-Anschluss müssen Sie sich meist keine Gedanken über den Stromverbrauch machen.
Ein paar Milliampere (mA) mehr macht nichts aus.
Oft weiß der Anwender nicht, wie viel Strom sein Projekt aus dem Netzteil oder USB-Adapter bezieht.
14.2.1 Praxisbeispiel: Stromverbrauch reduzieren auf dem Arduino-Board
Um den Stromverbrauch eines Arduino-Boards so gering wie möglich zu halten, sollten auf dem Board folgende Punkte in Betracht gezogen werden:
. Unnötige Hardware entfernen
. Keine LED oder Anzeige-Elemente im Dauerbetrieb
. Betriebsspannung minimieren
. Taktfrequenz minimieren
. Nicht verwendete Funktionen im Microcontroller deaktivieren
. Software für Sleep-Funktionen einsetzen
Das Standard-Board ARDUINO UNO eignet sich nicht optimal für den Batteriebetrieb, da die oben aufgelisteten Punkte nicht ohne Aufwand umgesetzt werden können.
Unnötige Hardware entfernen
Schaltungsteile mit integrierten Schaltungen (IC) wie USB-Serial-Wandler sind auf einem batteriebetriebenen Board nicht zwingend notwendig und belasten nur den Stromverbrauch.
Auf dem ARDUINO UNO ist dazu ein separater Microcontroller im Einsatz.
Im Falle eines Datentransfers über die serielle Schnittstelle kann ein externer FTDI-Adapter verwendet werden.
Keine LEDs oder Anzeige-Elemente im Dauerbetrieb
LEDs für Power-Anzeigen oder serielle Kommunikation müssen für den Batteriebetrieb entfernt werden.
Dadurch kann man schnell 10mA Stromverbrauch einsparen.
Betriebsspannung minimieren
Das Herabsetzen der Betriebsspannung von 5,0 V auf 3,3 V minimiert den Stromverbrauch einer Arduino-Schaltung sehr drastisch.
Gemäß Datenblatt des ATmega328p Microcontrollers sollte bei Reduktion der Versorgungsspannung auch die Taktfrequenz heruntergesetzt werden.
Das Datenblatt gibt für den 3,3V Betrieb eine maximale Taktfrequenz von rund 13MHz an.
Taktfrequenz minimieren
Das Minimieren der Taktfrequenz von 16 MHz auf 8 MHz reduziert den Stromverbrauch nochmals um mehrere Milliampere (mA).
Nicht verwendete Funktionen im ATmega328p Microcontroller deaktivieren
Funktionen wie Timer, Watchdog, Brown-out Detection (Funktion zur Erkennung, ob die Betriebsspannung den Schwellenwert nicht unterschreitet) oder Analog/Digitalwandler können, falls in der Anwendung nicht benötigt, deaktiviert werden.
Software für Sleep-Funktionen einsetzen
Sleep-Funktionen in Form von Bibliotheken erlauben die Aktivierung von Schlafphasen des Microcontrollers und ermöglichen den Betrieb in einem Sleep-Modus, was eine bedeutende Abnahme des Betriebsstroms zur positiven Folge hat.
Während des Sleep-Modus ist die Arduino-Anwendung im Ruhezustand.
Ein Sensormodul, das regelmäßig Messwerte erfasst, ist im Sleep-Modus quasi im Standby.
Nur während einer kurzen Phase wird das Board aktiviert, ein Messwert erfasst und dann wird das Sensormodul wieder in den Sleep-Mode gesetzt.
Mögliche Bibliotheken mit Sleep-Mode-Funktionen sind:
Low-Power Library
https://github.com/rocketscream/Low-Power/
Diese Bibliothek ist speziell für Low-Power-Anwendungen realisiert. Sie erlaubt die Deaktivierung einzelner Microcontroller-Funktionen.
JeeLib Bibliothek
https://github.com/jcw/jeelib
Die JeeLib-Bibliothek ist für Anwendungen mit RF-Modulen wie RFM12B entwickelt und beinhaltet auch eine Sleep-Funktion, die ausführlich beschrieben ist.
http://jeelabs.org/2011/12/13/developing-a-low-power-sketch/
14.2.2 Sensor-Board im Low-Power-Betrieb mit Low-Power-Bibliothek
Das Sensor-Board aus dem ersten Teil dieses Kapitels ist speziell für batteriebetriebene Sensor-Anwendungen realisiert, um Sensordaten zu erfassen und anschließend weiterzuverarbeiten oder weiterzusenden.
Für den Batteriebetrieb und die Phasen, in denen keine Sensordaten eingelesen oder verarbeitet werden, kann das Board mit der Low-Power-Library in den Sleep-Mode versetzt werden. Sensordaten werden meist in einem längeren Rhythmus abgefragt.
In diesem Beispiel verwenden wir den längsten Rhythmus der Bibliothek und lassen das Board jeweils für acht Sekunden im Sleep-Modus.
Im ersten Schritt wird im Programmcode die nötige Bibliothek geladen. #include "LowPower.h"
//
// Sensor-Board im Low-Power-Betrieb
//
#include "LowPower.h"
In der Setup-Funktion sind keine Aktionen nötig. Die serielle Schnittstelle wird nicht gestartet.
void setup()
{
// keine Funktionen notwendig
}
Im Hauptprogramm startet der Programmdurchlauf mit der Sleep-Phase von acht Sekunden.
void loop()
{
// Sleep-Modus für 8 Sekunden, ADC aus, BOD aus
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
Anschließend kann das Sensor-Board nach der Pause Sensorwerte verarbeiten oder andere Funktionen ausführen.
// Sensorwerte weiterverarbeiten, beispielsweise Daten senden oder speichern
//..
}
Bis es anschließend im nächsten Programmdurchlauf wieder in den Sleep-Mode
gesetzt wird.
Quelle:
BÜCHER von Thomas Brühlmann
buch-sensoren-einsatz-arduino-php.zip
Thomas Brühlmann arbeitet als Consultant und hat 20 Jahre Erfahrung in der Hardware- und Softwareentwicklung.
Nebenbei realisiert er Projekte mit Open-Source-Hardware, hält Vorträge und führt Workshops durch.
In seinem Weblog unter arduino-praxis.ch verfolgt er die aktuelle Entwicklung des Arduino-Projektes und publiziert Projekte, Anwendungen, Tipps und Tricks."
DIN A4 ausdrucken
********************************************************I*
Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected]
ENDE