Redd plantene

- fra løse komponenter, gjennom lodding til ferdig løsning på nett


Introduksjon

Formålet med kurset er å dele kunnskap om hvordan man kan sette sammen mikrokontrollere med forskjellige sensorer, for så å få dette ut på internett. Alle deltakere vil få utdelt et eget sett med mikrokontroller, kretskort, kabler, sensor etc., og alle vil få muligheten til å prøve å lodde dette sammen på egenhånd.


Hardware

I hvert utviklersett finner du disse delene:

  • Custom kretskort
  • ESP8266 mikrokontroller
  • Terminal for kabeltilkobling
  • Fuktighetssensor
  • USB-kabel
  • Tre dupont kabler


Kom i gang / Software

Ikke ha ESP8266 mikrokontrolleren tilkoblet under installasjon.

  1. Gå til ESP8266.labben.org og følg manualen for å installere ESP8266 med tilhørende drivere.
  2. I Arduino IDE, gå til Sketch --> Include Library --> Manage libraries og søk etter Phant. Last ned og installer siste versjon.
  3. Klon/last ned dette repoet.
  4. Begynn på oppgavene i mappen Excercises


Hjelp / feilsøking

Mac OS

Hvis mikrokontrollerne ikke dukker opp i Arduino IDE etter du har installert driver OG restartet maskinen, sjekk følgende:
  1. Gå til System Innstillinger/System Preferences
  2. Gå til Security and Privacy
  3. 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:

    1. sudo usermod -aG dialout *dittBrukernavn*
    2. sudo chmod 777 /dev/ttyUSB0


Windows

Problemer med at du ikke får flashet/lastet opp kode til mikrokontrolleren, og feilmelding som sier noe om at fila er i bruk av en annen prosess? Slå av antivirus!



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

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: Initialisere serieport og skrive til serieporten
  • Lesson 02: Lese data fra sensor
  • Lesson 03: Koble til WiFi
  • Lesson 04: Koble til Phant server for å poste data
  • Lesson 05: Hente ut data fra Phant server

Oppgavene gjennomfører du ved å bruke nettet for å finne løsninger, se på hint til oppgavene lenger ned eller spørre en kursholder. 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.prin("tekst");

    delay(antall_millisekunder)

  • Lesson 02

    pinMode(*pin number*, INPUT)

    digitalWrite(MOISTURE_POWER_PIN, HIGH);

    analogRead(*pin number*)

  • Lesson 03

    Se på tidligere hint

  • Lesson 04

    WiFi.begin(*ssid*, *passord*)

    WiFi.status()

    WL_CONNECTED

    WiFi.localIP()

  • Lesson 05

    Phant server: phant.labben.org:8090

    Fields: navn på dataene du skal sende inn. I vårt tilfelle moisture

    Ta vare på nøklene du får når du har opprettet streamen!

    Phant phant(PhantHost, publicKey, privateKey)

    phant.add(*fieldNavn*, *sensorverdi*)

    if(!client.connect(PhantHost, httpPort))

    client.print(phant.post());

  • Lesson 06-web

    Rediger filen scripts.js

    Bruk URL til JSON-feeden (kopier lenken til knappen det står JSON på inne på Phant-streamen) til phant





Noe annet? Spørsmål? Lenker som ikke fungerer? Ta kontakt med Nikhil André Luthra!