DIY Værstasjon
- hjemmelaget værstasjon på 1-2-3 (og 4-5 og 6)
Introduksjon
Formålet med kurset er å dele kunnskap om hvordan man kan sette sammen mikrokontrolleren ESP8266 med både LED-skjerm og en servo, for så å hente data fra et API. Alle deltakere vil få utdelt et eget sett med mikrokontroller, kretskort, kabler, komponenter etc., og alle vil få muligheten til å prøve å lodde dette sammen på egenhånd.
Hardware
I hvert utviklersett finner du disse delene:
- ESP8266 mikrokontroller
- Værstasjon-plate i kryssfinér
- MAX7219 7-segment display
- Servo
- USB-kabel
- Dupont kabler (hvor mange?)
Kom i gang / Software
Ikke ha ESP8266 mikrokontrolleren tilkoblet under installasjon.
IKKE HOPP OVER NOEN STEG! Det er ikke valgfritt! (...)
- Følg installasjonen av ESP8266 her!
- I Arduino IDE, gå til Sketch --> Include Library --> Manage libraries og søk etter WiFiManager. Last ned og installer siste versjon.
- I Arduino IDE, gå til Sketch --> Include Library --> Manage libraries og søk etter ArduinoJSON. Last ned og installer 6.x versjonen.
- Installer modifisert MAX7219 bibliotek fra https://github.com/9khil/LedControl (eller installer fra Library manager og utfør AVR fix). Hvorfor modifisert? Hvilken AVR fix? Sjekk github repoet. Installeres ved å laste ned og lime inn i libraries-mappen lokalt på din maskin. (Mac OS: ~/Documents/Arduino/libraries/ og Windows: My Documents\Arduino\libraries\)
- Klon/last ned dette repoet.
- Begynn på oppgavene i mappen Excercises (hint og tips til oppgavene finner du nederst på denne siden)
Oppgaver
Etter du har gjennomført
Kom i gang / Software stegene, åpner du første excercise i repoet du klonet/lastet ned. Oppgavene er fordelt i forskjellige mapper:
- Lesson 01: Hello world
- Lesson 02: Hello servo
- Lesson 03: Hello display
- Lesson 04: Hello WiFiManager
- Lesson 05: Hello Weather API
- Lesson 06: Kombinér alt du har lært
Oppgavene gjennomfører du ved å bruke nettet for å finne løsninger, se på hint til oppgavene lenger ned eller spørre en kursholdere. Om du står bom fast kan du også kikke i Answers-mappen.
Du finner mye bra informasjon her:
Hint til oppgavene
Lesson 01
Serial.begin(*hastighet på tilkoblingen til ESP8266*)
Serial.println("tekst"); / Serial.print("tekst");
delay(antall_millisekunder)
Lesson 02
Servoen har tre ledninger som kobles slik:
Brun: G
rød: 5v
oransje: servo signal, kobles til D3
.attach(*servo Pin*)
.write(*ønsket posisjon*)
Lesson 03
øk number variabelen
Resten av løsningen er en hack! Bedre måte kommer
Cast number variabelen over til en String variabelen: stringNumber (String er egentlig fy)
Kopier stringNumber til charArray med lengde 9 (.toCharArray(*target*, *størrelse*)
Kall writeToSegmentDisplay() med charArray som argument
Lesson 04
Sketch -> Include Library
WiFiManager wifiManager;
.autoConnect(*ssid*, *egendefinert passord*)
Lesson 05
DynamicJsonDocument jsonBuffer(*størrelse*)
deserializeJson(argument1, argument2);
const String foo = root["bar"];
For å se hvilke data du kan få ut kan du gå hit: http://weather.labben.org/api/yr/?location=Norge/Oslo/Oslo/Oslo/
Lesson 06
Se tidligere hint :)
Begynn i loop(), følg doRequest() og forstå hva som skjer. Løs oppgavene underveis.
Hjelp / feilsøking
Mac OS
Hvis mikrokontrollerne ikke dukker opp i Arduino IDE etter du har installert driver OG restartet maskinen, sjekk følgende:
- Gå til System Innstillinger/System Preferences
- Gå til Security and Privacy
- Under tabben General: sjekk om du har tillatt å installere software utenfor AppStore
Linux
Linux har i utgangspunktet driver innebygd, men det kan være flere ting som gjør at det ikke fungere. Prøv følgende:
- Restart maskinen (ja, det funka for en på kurset (!))
- Endre rettighetene til USB-devicen slik:
sudo usermod -aG dialout *dittBrukernavn*
sudo chmod 777 /dev/ttyUSB0
Kompileringsfeil i Windows (kan gjelde andre OS):
Feilen kom fra en annen kompilator for Simula som allerede lå inne i systemet. Når Arduino prøvde å installere greide den ikke skrive over den systemvariabelen som allerede lå der. Simula er verdens første objektorienterte programmerings språk og henger igjen via noen nostalgiske forelesere. Det eneste faget det brukes i er PYSE (pålitelighet ytelese og simulering) på NTNU.
How to fix:
Cmd "echo %GCC_EXEC_PREFIX%"
Hvis den returnerer en path må pathen slettes.
Kontrollpanel ->
System ->
Avanserte systeminstillinger ->
miljøvariabler (Enviroment variables)
Finn " GCC_EXEC_PREFIX " i bruker og/eller system listene og slett.
Restart pc.
Takk til Jonas T. Gedde-Dahl
Noe annet?
Spørsmål? Lenker som ikke fungerer? Vil du ha denne workshoppen holdt hos deg? Ta kontakt med
Nikhil André Luthra!