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. Last ned og installer nyeste versjon av Arduino IDE
  2. Åpne Arduino IDE, gå inn i Preferences og legg inn denne URLen i Additional Boards Manager URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. I Arduino IDE, gå til Tools --> Board --> Boards Manager. Søk etter ESP8266 og last ned nyeste versjon av denne pakken.
  4. I Arduino IDE, gå til Sketch --> Include Library --> Manage libraries og søk etter Phant. Last ned og installer siste versjon.
  5. Last ned og installer CH340 drivere for ESP8266 mikrokontrolleren. Det kan hende du må restarte maskinen etter du har installert driveren.
    • Mac OS
    • Windows 7,8,10
    • Linux har i utgangspunktet driverne innebygget. Problemer? Scroll nedover til "Hjelp".
  6. Plugg inn ESP8266 med USB kabelen du har fått utdelt.
  7. Åpne Arduino IDE, gå til Tools --> Board og velg Wemos D1 R2 & Mini. Endre upload speed til 115200. I undermenyen Port velger du den porten som har noe med USB å gjøre. ESP må være tilkoblet for at porten skal dukke opp i denne menyen.
  8. Klon/last ned dette repoet.
  9. Begynn på oppgavene i mappen Excercises


Hjelp / feilsøking

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


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
  • BONUS: Lesson 06: Koble dingsen til Blynk for å få varsling på mobil

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)

    analogRead(*pin number*)

  • Lesson 03

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

    WiFi.status()

    WL_CONNECTED

    WiFi.localIP()

  • Lesson 04

    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 05-web

    Rediger filen scripts.js

    Bruk URL til JSON-feeden til phant





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