Dieses Blog durchsuchen

Sonntag, 27. August 2017

Arduino Tutorial

Hallo,

ich fange hier mit einen Arduino Tutorial an. Hiermit werden wir eine kleine Wetterstation für zu Hause bauen. Die Teile liste ich genau auf. Bitte lest das Tutorial von vorne weg. Ich werde auch einige weitere Sachen zusätzlich erklären, die möglicherweise wichtig sind.

Hier ist Part 1

Benötigte Teile:
Hardware
Software
  • Arduino IDE


Im heutigen Schritt erstellen wir als erstes eine einfache Schaltung, und machen eine LED welche im Takt des Loops blinkt.
Im nächsten Teil werden wir dann weitermachen.

Erst mal die Schaltung - für das Zeichen der Schaltung verwende ich Fritzing, zum Programmieren des Codes verwende ich die Arduino IDE.

1. Schaltung mit Arduino UNO


2. Schaltung mit Arduino Mega
Das ist der erste Teil. Jetzt mal kurz eine Erklärung. Warum 220 Ohm

Rote Leds benötigten je nach Aufbau (GaAsP, oder GAP) 1,6 Volt oder 2,1 Volt. Der Arduino hat eine Spannung von 5 Volt auf den digitalen Pins, mit einem Strom von 20 mA

Somit können wir ausrechnen, wieviel Spannung abfallen muss, damit wir die LED nicht überlasten.
Ich verwende dazu eine PSPICE Grafik um das zu veranschaulichen.


 dann kommen wir jetzt zum Code.
da der Arduino UNO 16 MHZ hat, wäre ein Loop wohl etwas zu schnell. Daher werden wir als Schritt eins einen Delay einbauen sagen wir 1000 ms.

Als erstes sehen wir uns den Code an.
Wenn man einen neuen Sketch in der Arduino IDE erstellen - sehen wir folgendes.

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run
repeatedly:
 }
 Code innerhalb von void setup() wird beim starten des Programmes einmal ausgeführt.
Code innerhalb von void loop() wird immer wieder ausgeführt. Dort werden wir auch unseren Delay einbauen. Der Code sieht dann so aus: 

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:


delay(1000);
}


 delay(1000); ist der befehl dass der Arduino 1000ms wartete bevor der Loop erneut startet. Mit der zahl stellt man die ms ein.

als nächstes müssen wir unseren Pin defineren. Hier haben wir 2 Codes. Einen für den Uno und einen für dem Mega . der Unterschied ist lediglich die PIN Nummer.
wird definieren den Pin mit einen #define befehl. dieser wird noch vor das void setup() geschrieben

#define led_pin 13    <-- Arduino UNO
#define led_pin 22    <-- Arduino MEGA

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:


delay(1000);
}


jetzt haben wir unseren Pin definiert. diesen werden wir nun im void setup einstellen. 

#define led_pin 13
void setup() {
  // put your setup code here, to run once:
  pinMode(led_pin,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:


delay(1000);
}


 mit pinMode kann der Modus des Pins eingestellt werden. Der erste Wert ist die Pinnummer der zweite wert entweder INPUT oder OUTPUT. da wir eine LED leuchten lassen wollen, setzten wir den Wert auf Output.
Wenn wir uns den define Befehl sparen wollen könnten wir auch pinMode(13,OUTPUT); schreiben.

Nun generieren wir eine Variable, die den Status der LED hält. Damit wir auch blinken können.

#define led_pin 13
bool led_status = false;
void setup() {
  // put your setup code here, to run once:
  pinMode(led_pin,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:


delay(1000);
}


 bool led_status = false, bedeutet das der wert des leds aktuell 0 ist. Bool ist ein Datentyp der nur 2 Zustände haben kann, true oder false.

Jetzt müssen wir diesen Status bei jedem Durchlauf umschalten. 

 #define led_pin 13
bool led_status = false;
void setup() {
  // put your setup code here, to run once:
  pinMode(led_pin,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:

led_status = !led_status;
delay(1000);
}


led_status = !led_status bedeutet das die boolsche Variable negiert wird, und sich setzt. Das ! bedeutet nicht. Somit wenn led_status true ist, wird er nachher false und vice versa.

Und jetzt muss es noch leuchten. Das erreichen wir mit einem digitalWrite befehl, der den aktuellen Wert an den Pin sendet und somit das Led leuchten lässt oder auch nicht.

#define led_pin 13
bool led_status = false;
void setup() {
  // put your setup code here, to run once:
  pinMode(led_pin,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
digitalWrite(led_pin, led_status);
led_status = !led_status;
delay(1000);
}


 So das war der erste Teil des Tutorials - wir sehen uns im nächsten Teil.

Dienstag, 25. April 2017

Giessen und andere Hobbies

Morgen,

ja ich habe damit angefangen endlich meine Giessanlage zu bauen. Sie ist noch nicht sondlich schön - aber ich hab schon die ersten Messergebniss geholt. (momentan giesst sie noch nicht - ich mache gerade Referenzmessungen)

Die Bauteilliste sieht aktuell wie folgt aus.

Testversion

 Arduino MEGA
 Analoger Temperatursensor
 Analoger Bodenfeuchtesensor (messt den Leitwert der Erde) - wird aber durch eine kapazitive Messung ersetzt)
  Analoger Helligkeitsmesser
  4 LEDs (grün)
  1 LED  (rot)

 Aktuelle Version

Arduino NANO V3
Analoger Temperatursensor
LCD (32 Zeichen auf 2 Zeilen)
Analoger Bodenfeuchtesensor
1 LED Grün
POTI (für die LCD helligkeit)

Momentan stimmt das Mapping noch nicht ganz. dH ich habe nie eine Bodenfeuchtigkeit von 0% selbst wenn er gar nicht im Boden steckt - und somit kein Strom fliessen kann. Ausserdem hab ich nie 100 % selbst wenn ich Ihn in ein Glas Wasser (mit gelöstem Salz) hänge.

Aber ich denke dass ich das noch in den Griff kriege - und vorallem dann - wenn ich einen kapazitiven Sensor verwende.

Die Idee dahinter ist, dass er nur giessen soll wenn der Schwellwert der Bodenfeuchtigkeit unterschritten ist - und wenn die Helligkeit stimmt. (Pflanzen soll man ja nicht giessen wenn die Sonne sie anscheint - die Blätter können verbrennen.) dH. Der Messinterval wird abhängig von der Helligkeit. Wenn es dunkel ist, messt er öfters, und giesst auch zu dieser Zeit. Wenn es Hell ist giesst er nicht - sondern merkt sich nur dass er giessen soll. Wenn dann die Helligkeit weg ist. Natürlich muss es ein Notsystem geben - dass heist wenn die Bodenfeuchtigkeit zu niedrich ist (unter dem ersten Schwellenwert. -> und die Bodenfeuchtigkeit unter den 2ten Schwellwert fällt. Muss er giesen - ganz egal wie hell es ist. Sonst kann es ja passieren dass die Pflanze austrocknet.

Das nächste wird sein, dass ich versuche die Daten zu loggen. Somit kann das Programm auf Erfahrungswerte zugreifen -  und den Messintervall nach diesen stellen. Zusätzlich möchte ich noch eine Möglichkeit schaffen - dass die Intervalle als Kurven vom I-Net runtergeladen werden können. So kann jeder der das System verwendet -> auf Daten zugreifen welche ein anderer bereits verwendet hat - diese Daten anpassen und danach bewerten.

Einfaches Beispiel wäre: Das für jede ZONE eine Pflanzart ausgwählt werden kann. Und die Schaltung seinen Intervall genau nach dieser Einstellung bestimmt. -> Das wird mit dem aktuellen Board nicht so sauber funktionieren - darum bin ich gerade dabei ein anderes Board zu wählne. (Möglicherweise ein Arduino YUN oder so. Damit ich eine WIFI-Verbindung habe und die Daten übertragen kann.

Hier noch ein Bild von dem Teil. (TESTAUFBAU)

Montag, 27. März 2017

Irgendwas

Hallo,

jetzt wo der Umbau unseres Hauses "fast" erledigt ist, hab ich wieder Zeit mich um diese Seite zu kümmern. Ich weiß ich hab das schön des öftern gesagt, aber ich werde es diesesmal vielleicht einhalten.

Des weiteren habe ich wieder 2 Bücher an div. Verlage gesendet, und hoffe auf ein positives Feedback. - Mal sehen wie es ausgeht.

Ausserdem wollte ich eigentlich wiedermal ein politisches Statement abgeben, aber eigentlich habe ich keinen Bock mehr - mich mit diesem Zeugs zu beschäftigen. Es gibt sicher andere Menschen die besser dafür geeignet sind als ich. Und es wäre auch ziemlich toll, wenn sie in der Politik wären.

Auch zum Thema Schubladendenken will ich nur kurz etwas sagen. Scheißt auf die Schubladen die euch vorgegeben werden (Links, Rechts, Skater, Punk, ...) baut euch eure eigene. Ich weiß eine Schublade selber bauen ist nicht so leicht, und gelegentlich zwicken Sie dann ein bisschen - aber es ist wesentlicher angenehmer selber eine zu haben. Vorallem weil man dann nicht von der definition der Schublade eingeschränkt wird - man definiert sie einfach selber.  Und auch wenn jetzt wieder irgendwelche Leute kommen und meinen dass man nicht einfach eine eigene Meinung haben kann .... was für eine Frechheit !!! Dann kann man sie ja daran erinnern, dass jeder irgendwann eine eigene Meinung hatte - bevor man dahin getrimmt wurde, wo man jetzt ist. Also lieber eine Schublade selber bauen als eine nehmen, wo der Boden schon durchhängt.

Des weiteren ist unsere Katze Jonny nach 8 Wochen wieder nach Hause gekommen. Plötzlich stand sie ziemlich abgemagert vor der Tür. Ich bin froh das er wieder da ist und auch wenn er momentan wieder geschreckt ist, hat er sich bereits wieder gut eingefunden.

Bis denne,
Nieman D.

Dienstag, 7. März 2017

Scherben der Welt TRIOLOGIE

Morgen


Es wird für mich wieder Zeit an einen neuen Buch zu arbeiten.
Hier ist der Plan für die nächsten 2 Jahre ..... immerhin hab ich das ganze jetzt eh schon 4 Jahre verschoben.

Blutmond - Scherben der Welt Teil 2
            Wir erleben Aria - wie sie ein altes Geheimnis aufdeckt. Ausserdem betrachten wir Frederick und seine Rolle bei der Gründung einer neuen Religion

Morgenrot - Scherben der Welt Teil 3
              [NOT A PLOT YET]




Ausserdem arbeite ich immer noch am 2ten Teil von TIM. Den ersten Teil kann man hier ja auch gratis lesen.

Montag, 6. März 2017

Software Development

Hmmmm, momentan schlafen alle meine Projekte ein. Ganz egal was ich gerne machen würde, ich finde einfach keine Zeit dazu.

Weder mein Spiel, noch meine Anwendugssoftware noch meine Steuerung werden fertig.



Bei der Steuerung bin ich ja auch noch dazu umgestiegen. Von Arduino zu Raspberry. Auch wenn mir die Programmiersprache vom Arduino mehr liegt, aber Preis/Leistung ist beim Rasp einfach höher. Immerhin hat er WLAN und Bluetooth on Board. Und man braucht keine Separate Hardware dazu.

Die Warenwirtschaft die ich grade so nebenbei Schreibe steckt ebenfalls noch in den Kinderschuhen, und mein neues Buch hab ich auch noch nicht veröffentlicht. -> Mal sehen ob dass dieses Jahr noch was wird.

Aber dafür hab ich dank meiner gelieben Frau / Freundin jetzt einen Vorraum in Party-Pink. Was - wie ich ehrlich zugegeben muss, nicht so schlimm aussieht - wie ich es am Anfang vermutet habe. MUT ZUR FARBE würde ich dass dann nennen.

.... Ich werde mich auf jeden Fall mal wieder melden, wenn ich wieder mehr Zeit finde mich um meine Hobbies zu kümmern. ..... Momentan läuft das nicht so.

Dienstag, 21. Februar 2017

Hat wer Bock?

Morgen,

hätte ein neues Buch fertig (eh schon länger). Hätte wer Lust es Korrektur zu lesen?

Er/Sie wird dann im Buch erwähnt - und wenn es veröffentlicht wird, werden wir uns wegen einer Gewinnbeteilung unterhalten.