195 lines
6.0 KiB
Markdown
195 lines
6.0 KiB
Markdown
## Bram's Learning Curve
|
|
Here i post my progress on learning and mastering arduino. I originally did the Gamedevelopment study but decided to switch to "Technische Informatica". That is why i need to learn everything from scratch, and everything is new to me.
|
|
This is the reason that i made these documents, in order to track my progression in this new study.
|
|
|
|
|
|
### Buzzer
|
|
For one of my first projects I wanted to learn how to use a buzzer with different notes.
|
|
To achieve this, i went on a search accross sites to see how i can use frequenties to make different sounds.
|
|
Then i came accross a teaching site (https://www.codingkids.nl/arduino-buzzer.html) that taught me the language to communicate to the buzzer what frequenties to use. This way i can make any sound come out of this simple buzzer.
|
|
|
|
### Arduino Video
|
|
I watched a video about using arduino and took alot op notes along the way.
|
|
The link is: (https://www.youtube.com/watch?v=BLrHTHUjPuw).
|
|
|
|
\/\/arduino information:
|
|
|
|
\/pinnumber(locatie, in-/output)
|
|
|
|
\/digitalwrite(locatie, high/low)
|
|
|
|
\/delay(time in millisec)
|
|
|
|
\/int... <- variable
|
|
\/with a decimal its a double -> 1,2
|
|
\/a character is a char -> "a"
|
|
|
|
\/\/serial communications:
|
|
\/setup:
|
|
Serial.begin(9600) -> the text speed
|
|
Serial.sprintLn(text)
|
|
|
|
\/Loop:
|
|
Serial.print("text")
|
|
Serial.printLn(....) -> variable because no "
|
|
|
|
\/Ctrl + shift + M = serial monitor.
|
|
The text speed needs to be the same as given.
|
|
|
|
\/\/If Statements:
|
|
if(condition){
|
|
action
|
|
}else{
|
|
action
|
|
}
|
|
|
|
\/&& = "and"
|
|
\/|| = "or"
|
|
|
|
\/\/For loops:
|
|
For(int*i; i <= 10 ; i++){
|
|
serial.print(i)
|
|
}
|
|
|
|
\/The fading of led's:
|
|
examples, basics, fade
|
|
|
|
\/ servo's
|
|
examples, servo, sweep
|
|
|
|
### Linux and raspberryPI.
|
|
To gain more knowledge about linux, i first asked my class mates if they could get me started.
|
|
They showed me how to gain acces to a server, and told me how to navigate through files.
|
|
By doing this i got taught the following commands:
|
|
|
|
~ $ 'ls -la' = show file / volders
|
|
~ $ 'top' = see currently running programs
|
|
~ $ 'cd ' = change directory
|
|
~ $ 'mkdir name' = make directory
|
|
~ $ 'touch name' = make file
|
|
~ $ 'ping ip addres'
|
|
~ $ 'ssh username@ip address' = open ssh connection.
|
|
|
|
|
|
### Air, temperature, and all sort of stuff.
|
|
After the linux coding i decided to take a step back and began gaining experience with sensors.
|
|
I began trying to make our group project's "node" for myself.
|
|
I did this by using one of the main sensors and tried programing it in myself.
|
|
I used this website for the information and for the right library:(https://randomnerdtutorials.com/esp32-dht11-dht22-temperature-humidity-sensor-arduino-ide/).
|
|
Aside from the website i used my teammates for help where it was needed.
|
|
I wanted to make my own spin on the original design by including a button to activate the sensor and an LED to show if its on.
|
|
The rest of the tutorial was clear and worked like a charm.
|
|
the code used looks like this:
|
|
```
|
|
#include "DHT.h"
|
|
|
|
#define DHTPIN 4
|
|
#define DHTTYPE DHT11
|
|
|
|
DHT dht(DHTPIN, DHTTYPE);
|
|
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
Serial.println(F("DHTxx test!"));
|
|
dht.begin();
|
|
}
|
|
|
|
void loop() {
|
|
delay(2000);
|
|
float h = dht.readHumidity();
|
|
float t = dht.readTemperature();
|
|
float f = dht.readTemperature(true);
|
|
|
|
if (isnan(h) || isnan(t) || isnan(f)) {
|
|
Serial.println(F("Failed to read from DHT sensor!"));
|
|
return;
|
|
}
|
|
|
|
float hif = dht.computeHeatIndex(f, h);
|
|
float hic = dht.computeHeatIndex(t, h, false);
|
|
|
|
Serial.print(F("Humidity: "));
|
|
Serial.print(h);
|
|
Serial.print(F("% Temperature: "));
|
|
Serial.print(t);
|
|
Serial.print(F("°C "));
|
|
Serial.print(f);
|
|
Serial.print(F("°F Heat index: "));
|
|
Serial.print(hic);
|
|
Serial.print(F("°C "));
|
|
Serial.print(hif);
|
|
Serial.println(F("°F"));
|
|
}
|
|
```
|
|
And The fysical board looks like this:
|
|

|
|
And here it looks in action:
|
|

|
|
Later on i could expand this code and the fysical product to include the rest of the sensors.
|
|
|
|
### Buzzers .pt 2
|
|
I found out how to make multiple buzzers go off with the press of one button and increase as mutch as there are pins.
|
|
I tried to not look up anything for this one, but did ask questions form time to time.
|
|
I designed it to work with scaning if there is and input and then output this signal to activate the buzzers.
|
|
This output signal can activate over multiple pins so this one button can set off all sorts of stuff.
|
|
The code is short and simple:
|
|
```
|
|
int button = 20;
|
|
int buzzerone = 12;
|
|
int buzzertwo = 11;
|
|
|
|
void setup() {
|
|
// put your setup code here, to run once:
|
|
pinMode(button, INPUT);
|
|
pinMode(buzzerone, OUTPUT);
|
|
pinMode(buzzertwo, OUTPUT);
|
|
}
|
|
|
|
void loop() {
|
|
|
|
if(digitalRead(button) == HIGH){
|
|
digitalWrite(buzzerone, HIGH);
|
|
digitalWrite(buzzertwo, HIGH);
|
|
}else{
|
|
digitalWrite(buzzerone, LOW);
|
|
digitalWrite(buzzertwo, LOW);
|
|
}
|
|
}
|
|
```
|
|
|
|
|
|
### Python For Dummies.
|
|
My job was to make a connection between the websocket and the database we had set up, and to do this we wanted to use python.
|
|
I had never used python before and was totaly new to the entire code structure and wording.
|
|
Because I was totaly new to all of python, I asked chatGPT for and example and some concrete code.
|
|
I asked it my question wich was the assignment I was given and tried to reverse learn this way.
|
|
I went and looked up fitting tutorials on W3SChools.
|
|
The following were used:
|
|
(https://www.w3schools.com/python/python_mysql_getstarted.asp)
|
|
(https://websockets.readthedocs.io/en/stable/)
|
|
(https://www.w3schools.com/python/python_mysql_insert.asp)
|
|
(https://www.w3schools.com/python/python_json.asp)
|
|
|
|
after still not getting it very well i asked Dano ( a teammate of mine ) if he could learn me some basics, and so we did.
|
|
He taught me how to make a simple calculator and told me why my code worked the way it did.
|
|
(This was the code:
|
|
print("1 = + 2 = -")
|
|
c = int(input())
|
|
print("first number")
|
|
a = input()
|
|
|
|
print("second number")
|
|
b= input()
|
|
|
|
if c == 1:
|
|
print(int(a) + int(b))
|
|
elif c == 2:
|
|
print(int(a) - int(b))
|
|
|
|
)
|
|
even if it looked simple,this was the ignition I needed to understand python better and continue my own research.
|
|
|
|
|
|
|
|
|