ARDUINO-Heimautomation

http://sites.schaltungen.at/arduino-uno-r3/arduino-heimautomation

http://www.linksammlung.info/

http://www.schaltungen.at/

                                                                                             Wels, am 2016-11-18

BITTE nützen Sie doch rechts OBEN das Suchfeld  [                                                              ] [ Diese Site durchsuchen]

DIN A3 oder DIN A4 quer ausdrucken
**********************************************************************************
DIN A4  ausdrucken
*********************************************************
Das intelligente Haus
Heimautomation mit Arduino,  Android und PC
 

eBook vorhanden
   nicht für Einsteiger geeignet ! ! !

Mike Riley

Deutsche Übersetzung: Thomas Demmig Mannheim



Englische ORIGINAL-Ausgabe




http://www.oreilly.de/catalog/automatearduinoger/index.html
http://www.oreilly.de/cgi-bin/perlfect/search/search.pl?p=1&mode=all&q=Das+intelligente+Haus


e-Book von der Fa. buecher.de
https://www.buecher.de


eBook von www.schaltungen.at downloadbar
Das intelligente Haus - Heimautomation mit Arduino, Android und PC (244 Seiten)_1a.pdf


http://www.makezine.com
http://www.instructables.com
http://groups.google.com/group/comp.home.automation/topics



Kommentare und Fragen können Sie gerne an uns richten:
O’Reilly Verlag GmbH & Co. KG
Balthasarstr. 81
D-50670 Köln
mailto:[email protected]


Das intelligente Haus - Heimautomation mit Arduino, Android und PC
Mike Riley
Deutsche Übersetzung von Thomas Demmig
O'REILLY-Verlag
1. Auflage (August 2012)
ISBN: 3-86899-363-9
248 Seiten
Gedruckte Ausgabe nicht mehr lieferbar!
eBook-Format: PDF

Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;
detaillierte bibliografische Daten sind im Internet über
http://dnb.d-nb.de abrufbar.

Mike Riley ist seit 25 Jahren ein Technologie-Begeisterter, Entwickler und Autor und hat für Connected World, DevPro Connections, Dr Dobbs, iPhone Life, Make und Software Development geschrieben.

Das intelligente Haus - Heimautomation mit Arduino und Android und PC (eBook, ePUB)


Das intelligente Haus ist für Heimwerker, Programmierer und Bastler gedacht, die ihre Freizeit gerne damit verbringen, High-Tech-Lösungen zu bauen,
um ihr Leben zu vereinfachen und Freunde und Familie mit ihren Kreationen zu beeindrucken.
Also für alle, die gerne selbst mit Technik und Elektronik arbeiten, um ihre private Umgebung zu verbessern.
Es ist empfehlenswert, schon etwas über den Arduino zu wissen.



Kurzbeschreibung
Das intelligente Haus – Heimautomation mit Arduino, Android und PC zeigt Ihnen anhand von geekigen Projekten, wie Sie Ihr Haus bzw. Ihre Wohnung clever automatisieren.
Geeks, Häuslebauer, Programmierer und Technikjünger lernen darin, wie sie die Hausbeleuchtung fernsteuern, Ihre Wohnung vor Einbruch schützen oder auch: wie sie eine twitternde Vogeltränke bauen.

Ausführliche Beschreibung
In Das intelligente Haus - Heimautomation mit Arduino, Android und PC führt Sie der Technologie-begeisterte Autor Mike Riley durch eine Reihe von Heimautomations-Projekten - von einer Telefon-App, die Sie informiert, wenn ein Paket vor Ihrer Haustür abgelegt wurde, bis zu einem elektronischen Wachhund, der unerwünschte Besucher fernhält.

Geekige Projekte
Öffnen Sie Türen mit Ihrem Smartphone.
Bauen Sie ein Vogelhäuschen, das sich via Twitter meldet, wenn die Vögel zum Fressen kommen oder das Futter ausgeht.
Lassen Sie Ihr Haus sprechen, wenn Sie eine E-Mail erhalten, Besucher kommen und vieles mehr.

Spannende Projekte
Sie werden lernen, wie Sie Android-Smartphones, Arduinos und eine ganze Reihe von Sensoren, Servos, Programmiersprachen, Web-Frameworks und mobile SDKs einsetzen.
Das intelligente Haus -- Heimautomation mit Arduino, Android und PC ist für Smartphone-Programmierer, Webentwickler, Technik-Bastler und alle anderen, die Spaß daran haben, als Heimwerker spannende elektronische Projekte zu verwirklichen.

Innovative Projekte
Dieses Buch soll Sie inspirieren und Ihnen die notwendigen Fertigkeiten zum Bauen erstaunlicher Automationsprojekte vermitteln, so dass Sie Ihr Haus in das intelligenteste Haus der ganzen Nachbarschaft verwandeln können!

Was Sie brauchen
Um Das intelligente Haus - Heimautomation mit Arduino, Android und PC richtig einsetzen zu können, sollte Ihnen die Arduino-Plattform nicht ganz fremd sein und Sie sollten Spaß am Basteln haben.
Und natürlich sollten Sie neugierig sein und dazulernen wollen.
Auch ein bisschen Erfahrung bei der Anwendungsentwicklung ist nicht verkehrt.




http://www.buecher.de/shop/heimnetzwerke/das-intelligente-haus-heimautomation-mit-arduino-und-android-und-pc-ebook-epub/riley-mike/products_products/detail/prod_id/38618942/

Online-Ressourcen
Schauen Sie auf der (englischsprachigen) Website des Buches vorbei
http://pragprog.com/titles/mrhome
wo Sie den Code für die Projekte herunterladen, am Diskussionsforum zum Buch teilnehmen, Fragen stellen und
Ihre eigenen Ideen zur Heimautomation veröffentlichen können. Fehler, fehlende Informationen und andere Korrekturen finden Sie hier ebenfalls im

Errata-Bereich.
https://pragprog.com/titles/mrhome/errata
Weitere beliebte Websites sind die Do-it-yourself-Websites Makezine und Instructables, auf denen viele selbstgebaute Werke vorgestellt werden.


Most
#49356: I recommend you don't use a sans-serif font for filenames/codes/library names when they're within regular body text (i.e. inline). You should...more...
P1.0
19-May-12


35

#49283: "considering sharing your discoveries" should be "consider sharing your discoveries"--Paul Thompson

P1.0
06-May-12


37
#49284: "replace the broken Ethernet.h in the original #include statement with #include Ethernet2.h" should be "replace the broken Ethernet.h in the o...more...
P1.0
06-May-12


37
#49285: "replace the broken Ethernet.h in the original #include statement with #include Ethernet2.h" should be "replace the broken Ethernet.h in the o...more...
P1.0
06-May-12


37

#49286: In "Ethernet2.h instead", "instead" is superfluous.--Paul Thompson

P1.0
06-May-12


38
#49287: "MAC" has already been defined on page 36 (i.e. "Media Access Control"), so no need to define it again on page 38. Replace: "Media Access Cont...more...
P1.0
06-May-12


38

#49288: Why have you written "IP Address" on page 38, but "IP address" on page 36?--Paul Thompson

P1.0
06-May-12

62
#49785: The Arduino that I have monitoring my sump pit is sitting in a hobby box mounted on the wall several feel (should be feet, right?) above the s...more...
P1.0
06-Sep-12


70

#49463: The XBee is directly connected to +5V (Figure 14). But it operates on 3.3V. If you connect the XBee directly like this, it might destroy your XBee.--Markus

P1.0
26-Jun-12


91

#49544: In the code comments at the bottom of the page, it says "poll FLEX _SENSOR". It should say "poll FORCE_SENSOR".

P1.0
19-Jul-12


100

#49355: "packagedelivery" is a database/filename. You shouldn't let it hypenate/split across lines just like it's a regular english word.--Paul Thompson

P1.0
19-May-12


187
#51454: I get a problem here:-- <callout id="code.osx-voice-automation.scpt.miscmusic"/>as well as when i try to "play music", it goes has an ...more...





Link-Liste

http://www.pachube.com
http://www.exosite.com
http://www.yaler.org.
http://www.makezine.com
http://www.instructables.com.
http://groups.google.com/group/comp.home.automation/topics
http://freemind.sourceforge.net
http://fritzing.org/
http://inkscape.org
http://www.creating-your-app.de/electronic_toolbox_features.html?&amp;L=1
http://icircuitapp.com/
http://ithoughts.co.uk
http://minidraw.net/
http://www.pragprog.com/magazines/2011-04/testing-arduino-code
http://developer.android.com/guide/topics/testing/testing_android.html
http://arduino.cc/
http://developer.android.com/guide/topics/usb/adk.html
http://jquerymobile.com/
http://developer.android.com/sdk
http://www.virtualbreadboard.net
http://emulare.sourceforge.net/
http://www.digi.com/xbeewifi
http://www.makershed.com/ProductDetails.asp?ProductCode=JM691104
http://git-scm.com/
http://arduino.cc/en/Reference/Ethernet und http://www.arduino.cc/playground/Code/Spi
http://code.google.com/p/tinkerit/source/browse/trunk/Ethernet2+library/Ethernet2/
http://gkaindl.com/software/arduino-ethernet
http://www.adafruit.com/products/175
http://www.adafruit.com/products/155
http://www.sparkfun.com/products/9736
http://www.makershed.com/ProductDetails.asp?ProductCode=MKSEEED14
http://www.ladyada.net/make/waveshield/
http://www.ladyada.net/learn/sensors/pir.html
http://www.freesound.org
http://www.ladyada.net/make/waveshield/convert.html
http://audacity.sourceforge.net/
http://www.ladyada.net/make/waveshield/libraryhc.html
http://www.arduino.cc/playground/Main/Mediaplayer
http://www.ladyada.net/media/wavshield/AFWave_18-02-09.zip
http://www.arduino.cc/playground/Main/Mediaplayer
http://www.arduino.cc/playground/uploads/Main/ServoTimer2.zip
http://www.makershed.com/ProductDetails.asp?ProductCode=MKGR1
http://www.adafruit.com
http://www.solio.com/chargers/
http://www.arduino.cc/playground/Main/CapSense
http://www.ladyada.net/learn/sensors/cds.html.
http://www.ladyada.net/make/xbee/
http://ladyada.net/make/xbee/point2point.html
http://alioth.debian.org/projects/minicom/
http://www.sqlite.org/download.html
https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
http://oauth.net/
http://code.google.com/p/python-twitter/
http://www.solio.com/chargers/
http://www.sunforceproducts.com/results.php?CAT_ID=1
http://cairoplot.sourceforge.net/
http://www.adafruit.com/products/166
http://www.sparkfun.com/products/9376.
https://github.com/alertedsnake/packagetrack
https://github.com/alertedsnake/python-fedex
http://www.intellihome.be/deutsch/heim_automation
https://www.virtualbox.org/
http://www.x10.com
http://www.heyu.org/heyu_faq.html
http://www.heyu.org/docs/protocol.txt
http://heyu.org
http://www.rubyonrails.com
http://eclipse.org
http://developer.android.com/sdk
http://developer.android.com/sdk/eclipse-adt.html
http://www.prolific.com.tw/eng/downloads.asp?ID=31l.
http://developer.apple.com/technologies/tools/
http://developer.android.com/sdk
http://developer.android.com/guide/developing/devices/managing-avds.html
http://developer.android.com/guide/publishing/app-signing.html
http://developer.android.com/guide/developing/building/building-eclipse.html
http://www.sinatrarb.com/
https://www.adafruit.com/products/324
http://www.adafruit.com/products/81
https://www.adafruit.com/products/352
https://www.adafruit.com/products/165
http://www.ladyada.net/make/mshield/make.html
https://github.com/adafruit/Adafruit-Motor-Shield-library
http://www.ladyada.net/make/mshield/use.html
http://accessories.android.com
http://www.powerswitchtail.com/Pages/PSTIIU.aspx
http://www.adafruit.com/products/327
http://www.sparkfun.com/products/8269
http://www.adafruit.com/products/352
https://groups.google.com/group/ioio-users?pli=1
http://www.sparkfun.com/products/8734
http://www.sparkfun.com/products/10748
http://www.sparkfun.com/products/8612.
http://www.smarthome.com/5192/Electric-Door-Strike-Mortise-Type/p.aspx
http://www.sparkfun.com/products/10745
http://handbagdevices.com/
https://github.com/ytai/ioio/wiki
http://www.sparkfun.com/tutorials/280
http://code.google.com/p/android-webserver/
http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_%28no_Intents%29_in_Android
http://code.google.com/p/krvarma-android-samples/
http://developer.android.com/reference/android/hardware/Camera.html
http://code.google.com/p/javamail-android/
https://www.grc.com/ppp.htm
http://www.supertooth.net/EN/DISCO
http://www.radioshack.com/product/index.jsp?productId=2131022
http://store.griffintechnology.com/imic
http://developer.apple.com/library/mac/#documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/osascript.1.html
http://developer.android.com/resources/articles/speech-input.html oder http://msdn.microsoft.com/en-us/library/ee125663%28VS.85%29.aspx.
http://arduino.cc/blog/2011/10/04/arduino-1-0/
http://www.adafruit.com/products/191
http://www.adafruit.com/products/164
http://www.adafruit.com/products/143
http://www.adafruit.com/products/387
https://www.adafruit.com/products/385
http://www.sparkfun.com/products/9964
http://revision3.com/tbhs/homeauto




ORDNER:  C:\Benutzer\fritz\Desktop\Heimautomation mit Arduino\ mrhome-code.zip

Von www.schaltungen.at downloadbar

Das intelligente Haus - Heimautomation mit Arduino, Android und PC (244 Seiten)_1a.pdf



Inhaltsverzeichnis
Danksagung . . . . . . . . . . . . . xi

Einleitung . . . . . . . . . . . . . . xiii


            Teil I – Vorbereitungen
1. Der Einstieg . . . . . . . . . . . . . 3
1.1 Was ist Heimautomation? 3
1.2 Kommerzielle Lösungen 4
1.3 Do-it-yourself-Lösungen 5
1.4 Die Ausgaben im Auge behalten 6
1.5 Richten Sie Ihren Arbeitsplatz ein 7
1.6 Skizzieren Sie Ihre Ideen 7
1.7 Schreiben, Verdrahten und Testen 9
1.8 Dokumentieren Sie Ihre Arbeit 10

2. Anforderungen . . . . . . . . . . . . . 13
2.1 Die Hardware kennen 14
2.2 Die Software kennen 19
2.3 Spaß mit Sicherheit 20

            Teil II – Projekte
3. Wasserstands-Warner . . . . . . . . . . . 25
3.1 Was Sie benötigen 25
3.2 Die Lösung bauen 28
3.3 Der Zusammenbau 29
3.4 Ein Sketch 30
3.5 Den Web-Mailer schreiben 36
3.6 Einen Ethernet Shield hinzufügen 38
3.7 Und jetzt alles zusammen 42
3.8 Nächste Schritte 44

4. Elektronischer Wachhund . . . . . . . . . . 47
4.1 Was Sie benötigen 48
4.2 Die Lösung zusammenbauen 50
4.3 Den Hund zusammenbauen 51
4.4 Hundeschule 54
4.5 Das Projekt testen 58
4.6 Den Hund von der Leine lassen 58
4.7 Nächste Schritte 59

5. Zwitscherndes Vogelhäuschen . . . . . . . . 61
5.1 Was Sie benötigen 62
5.2 Die Lösung zusammenbauen 65
5.3 Der Landesensor 65
5.4 Der Futtersensor 69
5.5 Drahtlos agieren 72
5.6 Tweeting mit Python 79
5.7 Und jetzt alles zusammen 86
5.8 Nächste Schritte 87

6. Paketzustellungs-Detektor . . . . . . . . . 89
6.1 Was Sie benötigen 90
6.2 Die Lösung zusammenbauen 92
6.3 Hardware-Zusammenbau 93
6.4 Den Code schreiben 94
6.5 Der Paketzustell-Sketch 95
6.6 Den Sketch testen 96
6.7 Der Zustell-Prozessor 97
6.8 Die Zustell-Datenbank anlegen 97
6.9 Die abhängigen Pakete installieren 99
6.10 Das Skript schreiben 100
6.11 Den Zustell-Prozessor testen 105
6.12 Die Hardware einrichten 106
6.13 Nächste Schritte 107

7. Lichtschalter mit Web-Unterstützung . . . . . . 109
7.1 Was Sie benötigen 110
7.2 Die Lösung zusammenbauen 113
7.3 Hardware verbinden 114
7.4 Den Code für den Webclient schreiben 117
7.5 Den Webclient testen 119
7.6 Code für den Android-Client schreiben 121
7.7 Den Android-Client testen 125
7.8 Nächste Schritte 127

8. Rollo-Automation . . . . . . . . . . . . 129
8.1 Was Sie benötigen 129
8.2 Die Lösung zusammenbauen 132
8.3 Den Schrittmotor verwenden 133
8.4 Den Schrittmotor programmieren 134
8.5 Die Sensoren hinzufügen 136
8.6 Den Sketch schreiben 138
8.7 Die Hardware einrichten 142
8.8 Nächste Schritte 144

9. Android-Türöffner . . . . . . . . . . . . 147

9.1 Was Sie benötigen 147
9.2 Die Lösung zusammenbauen 151
9.3 Den Android-Türöffner steuern 154
9.4 Den Android-Server schreiben 159
9.5 Den Android-Client schreiben 170
9.6 Testen und Einrichten 175
9.7 Nächste Schritte 176

10. Geben Sie Ihrem Haus eine Stimme . . . . . . . 179
10.1 Was Sie benötigen 180
10.2 Lautsprecher einrichten 181
10.3 Lion eine Stimme geben 183
10.4 Das schnurlose Mikrofon kalibrieren 187
10.5 Einen sprechenden Löwen programmieren 189
10.6 Sprechen Sie mit Ihrem Haus 197
10.7 Nächste Schritte 197


             Teil III – Vorhersagen
11. Zukunftsentwürfe . . . . . . . . . . . . 201
11.1 In der nahen Zukunft 201
11.2 Auf lange Sicht 204
11.3 Das Haus der Zukunft 206

12. Weitere Projektideen . . . . . . . . . . . 211
12.1 Krempel-Detektor 211
12.2 Stromverbrauch messen 212
12.3 Elektrische Vogelscheuche 212
12.4 Ferngesteuerte Fernbedienung für die Unterhaltungselektronik 212
12.5 Schlaf-Timer für Geräte 213
12.6 Feuchtigkeitsgesteuerte Gartenbewässerung 213
12.7 Vernetzte Rauchmelder 213
12.8 Garage öffnen per GPS-Position 214
12.9 Intelligente Temperatursteuerung 215
12.10 Intelligenter Briefkasten 215
12.11 Intelligente Lichtsteuerung 215
12.12 Energieüberwachung für Solar- und Windstrom 215


               Teil IV – Anhänge
A1. Arduino-Bibliotheken installieren . . . . . . . 219
A1.1 Apple OS X 219
A1.2 Linux 220
A1.3 Windows 220

A2. Literaturverzeichnis . . . . . . . . . . . 221

Index . . . . . . . . . . . . . . . 223



Vollständige Liste der elektronischen Komponenten, die man benötigt, um die Projekte in diesem Buch nachzubauen, zusammen mit den ungefähren Preisen (in US$,   Fa. Adafruit  Fa. Sparkfun  USA

http://www.adafruit.com
http://www.sparkfun.com
http://www.watterott.com



ARDUINO UNO R3, Duemilanove oder Diecimila - $30,-
• Ethernet Shield - $45,-
• Wave Shield mit Lautsprecher, Kabeln und SD-Karte - $35,-
• Passiver Infrarot-Bewegungssensor (PIR-Sensor) - $10,-
Flex-Sensor - $12,-
• Force Sensing Resistor - $7,-
TMP36 analoger Temperatursensor - $2,-
• Fotowiderstand LDR03  (im Englischen auch Photocell oder CdS) - $1,-
• Standard-Servomotor - $15,-
• Elektrischer Türöffner (12Vdc) - $35,-
• Zwei XBee-Module und Adapter-Kits - $70,-
FTDI-Verbindungskabel - $20,-
• Solarladegerät mit Akku-Pack - $30,-
X10 CM11A ActiveHome Serielle Computerschnittstelle - $50,-
X10 PLW01 Standardschalter - $10,-
• Seriell-USB-Konverter - $20,-
• PC (möglichst Linux oder Mac) – $200,-   (bis $2000,-  je nach Modell)
• Drahtloser Bluetooth-Lautsprecher - $120,-
Android G1 – $80,- bis $150,- je nach Gebrauchsspuren
Android-Smartphone – $50,- bis $200,- je nach Features und Vertragsbedingungen
• Sparkfun IOIO-Board mit JST-Connector, Barrel Jack to 2-Pin JSTConnector und 5Vdc-Stromversorgung - $60,-
USB auf Mini-USB-Kabel - $3,-
2,1mm Buchse für Klinkenstecker - $3,-
• Kupferdraht (zum Beispiel mit 0,66 mm Durchmesser = AWG22) - $3,-
10k Ohm Widerstand - $0.10
10M Ohm Widerstand - $0.10
• Kleine Steckplatine - $4,-
• Isolierband und Schrumpfschlauch - $5,-
• Stromversorgung 9Vdc - $7,-
• Schaltnetzteil 12V 5A - $25,-
• PowerSwitch Tail IIU mit einem 1k Widerstand und einem
Transistor 2N4222A npn - $20,-
• Schrittmotor - $14
,-


Source Code

Programming Your Home

https://pragprog.com/titles/mrhome/source_code

ORDNER:  C:\Benutzer\fritz\Desktop\Heimautomation mit Arduino\ mrhome-code.zip



WaterLevelNotifier/WaterLevelNotifier.pde



Bibliothek

MediaPlayer.h



Processing-IDE
MediaPlayer.pde
MediaPlayerTestFunctions.pde

Seite 032  WaterLevelSensor.pde
Seite 042  WaterLevelNotifier.pde 
Seite 057  ElectricGuardDog.pde 
Seite 068  BirdPerchTest.pde
Seite 070  SeedPhotocellTest.pde 
Seite 075  TweetingBirdFeeder.pde 
Seite 095  PackageDeliveryDetector.pde
Seite 136  StepperTest.pde 
Seite 138  CurtainAutomation.pde 





032 - WaterLevelNotifier/WaterLevelSensor.pde

void loop()
{
// Bei jedem Durchlauf eine Sekunde warten
delay(1000);
// FLEX_SENSOR abfragen
bend_value = analogRead(FLEX_SENSOR);
// bend_value am seriellen Port ausgeben, um erste Messungen zu machen
// Auskommentieren, wenn die Werte für den Standardwert sowie die obere
// und untere Grenze definiert wurden
Serial.print("bend_value=");
Serial.println(bend_value);
switch (bend_state)
{
case 0: // bend_value bleibt im Normalbereich
if (bend_value >= FLEX_TOO_HI || bend_value <= FLEX_TOO_LOW)
{
bend_state = 1;
SendWaterAlert(bend_value, bend_state);
}
break;
case 1: // bend_value ist zu hoch oder zu niedrig
if (bend_value < FLEX_TOO_HI && bend_value > FLEX_TOO_LOW)
{
bend_state = 0;
SendWaterAlert(bend_value, bend_state);
}
break;
}
}





042 - WaterLevelNotifier/WaterLevelNotifier.pde
void ContactWebServer(int bend_value, int bend_state)
{
Serial.println("Mit Webserver verbinden, um Warnung zu schicken ...");
if (client.connect())
{
Serial.println("Verbunden mit PHP-Server");
// HTTP-Request erstellen:
client.print("GET /wateralert.php?alert=");
client.print(bend_state);
client.print("&flex=");
client.print(bend_value);
client.println(" HTTP/1.0");
client.println();
client.stop();
}
else
{
Serial.println("Verbindung mit Webserver fehlgeschlagen");
}
}



057 - ElectricGuardDog/ElectricGuardDog.pde

void loop(){
pirValue = digitalRead(inputPin); // Wert des PIR abfragen
if (pirValue == HIGH) { // Bewegung erkannt?
digitalWrite(ledPin, HIGH); // Onboard-LED anschalten
if (pirStatus == LOW) { // Bewegung auslösen
Serial.println("Bewegung erkannt");
// Zufallszahl zwischen 1 und 5 erzeugen, um eine Datei auszuwählen,
// sie wiederzugeben und den Servo zu bewegen
switch (random(1,6)) {
case 1:
Serial.println("Wiedergabe von 1.WAV");
theservo.write(1250);
mediaPlayer.play("1.WAV");
break;
case 2:
Serial.println("Wiedergabe von 2.WAV");
theservo.write(1400);
mediaPlayer.play("2.WAV");
break;
case 3:
Serial.println("Wiedergabe von 3.WAV");
theservo.write(1600);
mediaPlayer.play("3.WAV");
break;
case 4:
Serial.println("Wiedergabe von 4.WAV");
theservo.write(1850);
mediaPlayer.play("4.WAV");
break;
case 5:
Serial.println("Wiedergabe von 5.WAV");
theservo.write(2100);
mediaPlayer.play("5.WAV");
break;
}
delay(1000); // Eine Sekunde warten
theservo.write(1000); // Servo in Startposition zurücksetzen
pirStatus = HIGH; // pirStatus-Flag auf HIGH, um eine Wiederholung
// der Bewegung zu stoppen
}
} else {
digitalWrite(ledPin, LOW); // Onboard-LED abschalten
if (pirStatus == HIGH){
Serial.println("Keine Bewegung");
mediaPlayer.stop();
pirStatus = LOW; // pirStatus-Flag auf LOW setzen, um
// für eine Bewegung gerüstet zu sein
}
}
}


068 - TweetingBirdFeeder/BirdPerchTest.pde

#include <CapSense.h>
#define ON_PERCH 1500
#define CAP_SENSE 30
#define ONBOARD_LED 13
CapSense foil_sensor = CapSense(10,7); // Kapazitiver Sensor
// Widerstandsbrücke zwischen den digitalen Pins 7 und 10,
// Kabel am Pin 7 angeschlossen
int perch_value = 0;
byte perch_state = 0;
void setup()
{
// Zum Debuggen im seriellen Fenster
Serial.begin(9600);
// Pin für Onboard-LED
pinMode(ONBOARD_LED, OUTPUT);
}
void SendPerchAlert(int perch_value, int perch_state)
{
digitalWrite(ONBOARD_LED, perch_state ? HIGH : LOW);
if (perch_state)
Serial.print("Vogel gelandet, perch_value=");
else
Serial.print("Vogel weggeflogen, perch_value=");
Serial.println(perch_value);
}
void loop() {
// Bei jedem Durchlauf eine Sekunde warten
delay(1000);
// Folienwert abfragen
perch_value = foil_sensor.capSense(CAP_SENSE);
switch (perch_state)
{
case 0: // Kein Vogel auf der Stange
if (perch_value >= ON_PERCH)
{
perch_state = 1;
SendPerchAlert(perch_value, perch_state);
}
break;
case 1: // Vogel auf der Stange
if (perch_value < ON_PERCH)
{
perch_state = 0;
SendPerchAlert(perch_value, perch_state);
}
break;
}
}


070 - TweetingBirdFeeder/SeedPhotocellTest.pde
#define SEED 500
#define ONBOARD_LED 13
#define PHOTOCELL_SENSOR 0
int seed_value = 0;
byte seed_state = 0;
void setup()
{
// Zum Debuggen im seriellen Fenster
Serial.begin(9600);
// Pin für Onboard-LED
pinMode(ONBOARD_LED, OUTPUT);
}
void SendSeedAlert(int seed_value, int seed_state)
{
digitalWrite(ONBOARD_LED, seed_state ? HIGH : LOW);
if (seed_state)
Serial.print("Futter alle, seed_value=");
else
Serial.print("Futter nachgefüllt, seed_value=");
Serial.println(seed_value);
}
void loop() {
// In jedem Durchlauf eine Sekunde warten
delay(1000);
// Wert der Fotozelle auslesen
seed_value = analogRead(PHOTOCELL_SENSOR);
switch (seed_state)
{
case 0: // Futter nachgefüllt
if (seed_value >= SEED)
{
seed_state = 1;
SendSeedAlert(seed_value, seed_state);
}
break;
case 1: // Futter aufgebraucht
if (seed_value < SEED)
{
seed_state = 0;
SendSeedAlert(seed_value, seed_state);
}
break;
}
}



075 - TweetingBirdFeeder/TweetingBirdFeeder.pde
#include <CapSense.h>;
#include <NewSoftSerial.h>
#define ON_PERCH 1500
#define SEED 500
#define CAP_SENSE 30
#define ONBOARD_LED 13
#define PHOTOCELL_SENSOR 0
// Transmit/Receive-Pins für den XBee setzen
NewSoftSerial XBeeSerial = NewSoftSerial(2, 3);
CapSense foil_sensor = CapSense(10,7); // Kapazitiver Sensor
// Widerstandsbrücke zwischen den digitalen Pins 7 und 10,
// Kabel am Pin 7 angeschlossen
int perch_value = 0;
byte perch_state = 0;
int seed_value = 0;
byte seed_state = 0;
void setup()
{
// Zum Debuggen im seriellen Fenster
Serial.begin(9600);
// Für die XBee-Übertragung
XBeeSerial.begin(9600);
// Pin für Onboard-LED
pinMode(ONBOARD_LED, OUTPUT);
}
void SendPerchAlert(int perch_value, int perch_state)
{
digitalWrite(ONBOARD_LED, perch_state ? HIGH : LOW);
if (perch_state)
{
XBeeSerial.println("arrived");
Serial.print("Vogel gelandet, perch_value=");
}
else
{
XBeeSerial.println("departed");
Serial.print("Vogel abgeflogen, perch_value=");
}
Serial.println(perch_value);
}
void SendSeedAlert(int seed_value, int seed_state)
{
digitalWrite(ONBOARD_LED, seed_state ? HIGH : LOW);
if (seed_state)
{
XBeeSerial.println("refill");
Serial.print("Futter alle, seed_value=");
}
else
{
XBeeSerial.println("seedOK");
Serial.print("Futter nachgefüllt, seed_value=");
}
Serial.println(seed_value);
}
void loop() {
// Bei jedem Durchlauf eine Sekunde warten
delay(1000);
// Foliensensor abfragen
perch_value = foil_sensor.capSense(CAP_SENSE);
// Fotozelle abfragen
seed_value = analogRead(PHOTOCELL_SENSOR);
switch (perch_state)
{
case 0: // Zur Zeit kein Vogel auf der Stange
if (perch_value >= ON_PERCH)
{
perch_state = 1;
SendPerchAlert(perch_value, perch_state);
}
break;
case 1: // Zur Zeit Vogel auf der Stange
if (perch_value < ON_PERCH)
{
perch_state = 0;
SendPerchAlert(perch_value, perch_state);
}
break;
}
switch (seed_state)
{
case 0: // Vogelfutter war aufgefüllt
if (seed_value >= SEED)
{
seed_state = 1;
SendSeedAlert(seed_value, seed_state);
}
break;
case 1: // Vogelfutter war aufgebraucht
if (seed_value < SEED)
{
seed_state = 0;
SendSeedAlert(seed_value, seed_state);
}
break;
}
}



BUCH:
Mark Lutz and David Ascher. Einführung in Python. O’Reilly, Köln, 2007.


083 - Die Python-Twitter-Bibliothek
Selbst mit dem API-Zugriff auf Twitter müssen wir es immer noch von Python
aus ansprechen können. Dazu können wir auf die Hilfe der Python-Twitter-
Bibliothek
TweetingBirdFeeder/tweetingbirdfeeder.py
# DateTime, Serial port, SQLite3 und Twitter-Python-Bibliotheken importieren
from datetime import datetime
import serial
import sqlite3
import twitter
# OS-Module importieren, um das Terminalfenster bei Start zu leeren.
# Windows nutzt "cls", Linux und OS X "clear"
import os
if sys.platform == "win32":
usw.



095 - PackageDeliveryDetector/PackageDeliveryDetector.pde

#include <NewSoftSerial.h>
#define FORCE_THRESHOLD 400
#define ONBOARD_LED 13
#define FORCE_SENSOR 0
// Transmit/Receive-Pins für den XBee setzen
NewSoftSerial XBeeSerial = NewSoftSerial(2, 3);
int force_value = 0;
byte force_state = 0;
void setup()
{
// Zum Debuggen über das serielle Fenster
Serial.begin(9600);
// Für die XBee-Übertragung
XBeeSerial.begin(9600);
// Pin für Onboard-LED
pinMode(ONBOARD_LED, OUTPUT);
}
void SendDeliveryAlert(int force_value, int force_state)
{
digitalWrite(ONBOARD_LED, force_state ? HIGH : LOW);
if (force_state)
Serial.print("Paket abgelegt, force_value=");
else
Serial.print("Paket aufgenommen, force_value=");
Serial.println(force_value);
XBeeSerial.println(force_value);
}
void loop()
{
// Bei jedem Durchlauf 1 Sekunde warten
delay(1000);
// FORCE_SENSOR abfragen
force_value = analogRead(FORCE_SENSOR);
switch (force_state)
{
case 0: // Wurde Paket abgelegt?
if (force_value >= FORCE_THRESHOLD)
{
force_state = 1;
SendDeliveryAlert(force_value, force_state);
}
break;
case 1: // Wurde Paket aufgenommen?
if (force_value < FORCE_THRESHOLD)
{
force_state = 0;
SendDeliveryAlert(force_value, force_state);
}
break;
}
}




101 PackageDeliveryDetector/packagedeliverydetector.py
from datetime import datetime
import packagetrack
from packagetrack import Package
import serial
import smtplib
import sqlite3
import time
import os
import sys
# Mit dem seriellen Port verbinden
XBeePort = serial.Serial(’/dev/tty.YOUR_SERIAL_DEVICE’, \
􀁼 baudrate = 9600, timeout = 1)
usw.




136 - CurtainAutomation/StepperTest.pde
#include <AFMotor.h>
AF_Stepper motor(48, 2);
void setup() {
Serial.begin(9600);
Serial.println("Schrittmotor-Test starten ...");
// Mit setSpeed wird die Drehgeschwindigkeit geändert
motor.setSpeed(20);
}
void loop() {
// step()-Funktion
motor.step(100, FORWARD, DOUBLE);
motor.step(100, BACKWARD, DOUBLE);
}


138 - CurtainAutomation/CurtainAutomation.pde
#include <AFMotor.h>
#define LIGHT_PIN 0
#define LIGHT_THRESHOLD 800
#define TEMP_PIN 5
#define TEMP_THRESHOLD 72
#define TEMP_VOLTAGE 5.0
#define ONBOARD_LED 13
int curtain_state = 1;
int light_status = 0;
double temp_status = 0;
boolean daylight = true;
boolean warm = false;
AF_Stepper motor(100, 2);
void setup() {
Serial.begin(9600);
Serial.println("Rollo-Automation starten ...");
// Umdrehungsgeschwindigkeit des Schrittmotors
// auf 100/min setzen
motor.setSpeed(100);
// Motor initialisieren
// motor.step(100, FORWARD, SINGLE);
// motor.release();
delay(1000);
}
void Curtain(boolean curtain_state) {
digitalWrite(ONBOARD_LED, curtain_state ? HIGH : LOW);
if (curtain_state) {
Serial.println("Rollo öffnen ...");
// SINGLE, DOUBLE, INTERLEAVE oder MICROSTOP testen
motor.step(800, FORWARD, SINGLE);
} else {
Serial.println("Rollo schließen ...");
motor.step(800, BACKWARD, SINGLE);
}
}
void loop() {
// Wert der Fotozelle
light_status = analogRead(LIGHT_PIN);
delay(500);
// light_status am seriellen Port ausgeben
Serial.print("Fotozelle: ");
Serial.println(light_status);
Serial.println("");
// Temperatur auslesen
int temp_reading = analogRead(TEMP_PIN);
delay(500);
// Spannung in Temperatur in °C und °F umwandeln
float voltage = temp_reading * TEMP_VOLTAGE / 1024.0;
float temp_Celsius = (voltage - 0.5) * 100 ;
float temp_Fahrenheit = (temp_Celsius * 9 / 5) + 32;
// temp_status am seriellen Port ausgeben
Serial.print("Temperatur (Celsius) = ");
Serial.println(temp_Celsius);
Serial.print("Temperatur (Fahrenheit) = ");
Serial.println(temp_Fahrenheit);
Serial.println("");
if (light_status > LIGHT_THRESHOLD)
daylight = true;
else
daylight = false;

if (temp_Fahrenheit > TEMP_THRESHOLD)
warm = true;
else
warm = false;
switch (curtain_state)
{
case 0:
if (daylight && !warm)
// Rollo öffnen
{
curtain_state = 1;
Curtain(curtain_state);
}
break;
case 1:
if (!daylight || warm)
// Rollo schließen
{
curtain_state = 0;
Curtain(curtain_state);
}
break;
}
}


157 - AndroidDoorLock/HelloIOIO-PTS/src/ioio/examples/hello/pts/MainActivity.java
class IOIOThread extends AbstractIOIOActivity.IOIOThread {
/** Die Onboard-LED. */
private DigitalOutput led_;
􀁻 private DigitalOutput powertail_;
usw.


164 - AndroidDoorLock/DoorLockServer/src/com/mysampleapp/androiddoorlockserver/AndroidDoorLock-ServerActivity.java
@Override
protected void loop() throws ConnectionLostException {
usw.


166 - AndroidDoorLock/DoorLockServer/src/com/mysampleapp/androiddoorlockserver/CameraSurface.java
public void startTakePicture(){
camera.autoFocus(new AutoFocusCallback() {
usw.


191 -GivingYourHomeAVoice/osx-voice-automation.scpt
with timeout of 2629743 seconds
set exitApp to "no"
repeat while exitApp is "no"
􀁻 tell application "SpeechRecognitionServer"
usw.





*********************************************************
Einen Arduino konfigurieren
Wir werden mit der Arduino-IDE unseren Code für den Arduino schreiben, kompilieren und auf das Gerät übertragen.
Wer eine umfangreichere Einführung in die Arduino-Programmierung sucht, siehe

Maik Schmidt. Arduino: A Quick Start Guide. The Pragmatic Bookshelf,
Raleigh, NC and Dallas, TX, 2011.






DIN A4 ausdrucken
*********************************************************

Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected]
ENDE