Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

IOT – Elkedel på internettet

Lignende præsentationer


Præsentationer af emnet: "IOT – Elkedel på internettet"— Præsentationens transcript:

1 IOT – Elkedel på internettet

2 Oversigt MQTT Broker

3 Opbygning af program Temperatur sensor og måling
Forbind til internet og upload måling Samle program delene til et komplet program Send sætpunkt og hent sætpunkt Send tænd/sluk kommando til stikkontakt

4 Temperatur sensor og måling
Arduino board måler temperaturen med en DS18b20 probe, som er nedsænket i vandet Vi skal bruge to biblioteker: 1- Wire bus Dallas Temperature Se hvordan man installer dem:

5 Forbind enhederne D2 = GPIO4 Vores sensor har ikke fire ledninger!!!
Og den signal er på blå eller gul ledning.

6 NodeMCU - Controller

7 Arduino program kode //alt hvad der starter med to // streger er bare kommentar og kan undlades i programmet. #include <OneWire.h> //Dette er et bibliotek, som gør det nemmere for os at #include <DallasTemperature.h> //skrive programmet, da den komplicerede kode er i biblioteket #define ONE_WIRE_BUS D8 //Beskriver hvor sensoren er tilsluttet. Husk at ændre til den rigtige pin  OneWire oneWire(ONE_WIRE_BUS); //Opretter et objekt som vi kan kommuniker med DallasTemperature sensors(&oneWire); //Fortæller objektet hvad der er for en sensor void setup(void) //Alt hvad der har med opsætning er i dette ”setup afsnit” køre kun { //en gang Serial.begin(9600); //Starter en seriel kommunikation op. Bemærk hastigheden Serial.println("Arduino Digital Temperature"); //Skriver en tekst på seriel porten sensors.begin(); //Starter sensor objektet op } void loop(void) //Alt hvad der er i loop afsnittet gentages hele tiden. { sensors.requestTemperatures(); //sensor objektet beder alle sensorerne som er tilsluttet om deres Serial.print("Temperature is: "); //måling og skriver det til serial porten Serial.println(sensors.getTempCByIndex(0)); //Vi beder om måling for index 0 - den første sensor. delay(1000); //Vent i 1000ms før næste gennemkørsel af loop afsnittet

8 Forbind til internet og upload måling
MQTT Broker: Dweet.io Upload (publish): Målt temperatur Tæller for hver loop gennemløb Vi sender to værdier op til MQTT brokeren Vi skal bruge to biblioteker: ArduinoJson dweetESP8266 Se hvordan man installer dem:

9 Arduino program kode #include "dweetESP8266.h"
#define THIG_NAME "Your_thing_name_here" // Her skal du indsætte dit unikker navn #define WIFISSID "ssid" // Vores netværks navn ”HUAWEI-6SS” #define PASSWORD "password" // Vores netværks kode ”qwer5678#” int aliveLoops = 0; // En lille tæller der angiver antal loops dweet client; // Her oprettes et dweet objekt void setup(){ Serial.begin(9600); delay(10); client.wifiConnection(WIFISSID, PASSWORD); //Forbinder til netværket } void loop(){ aliveLoops = aliveLoops +1; //Vi ligger en til tælleren per loop String value1= String(aliveLoops); //Ændre tal variablen til en streng client.add("Loops", value1); //Nøglen er ”Loops” og værdien //client.add("key2", value2); //er værdien i variablen value1 tilføjes client.sendAll(THIG_NAME); //Der kan samles op til 5 nøgler med } //værdi i samme afsendelse

10 Se om værdien er kommet igennem
Gå ind på: Gå til punktet ”dweets” Indsæt det navn du angav i koden under #define THIG_NAME "Your_thing_name_here" Eks. #define THIG_NAME ”CP2111_HBP” Eller tast følgende i browser adresse feltet. (husk at skift ”THIG_NAME”)

11 Send sætpunkt (og hent sætpunkt)
Vi har pt. ikke noget software som kan sende den ønskede vand temperatur, men vi kan sende et ”dweet” via vores browser. Eks. i adressefeltet skrives og sendes Derved sender vi et setpunkt med værdien 85 eks. 85 grader Celsius Vi skal bare huske at det vi sender er en tekst streng og det er det også når vi henter det ned igen. MQTT Broker

12 (Send sætpunkt) og hent sætpunkt
Når vi skal hente vores nøgle værdier ned fra MQTT brokeren skal vi bruge vores feed navn Og nøglen. MQTT Broker

13 Arduino program kode #include "dweetESP8266.h"
#define THIG_NAME "Your_thing_name_here" #define WIFISSID "ssid" #define PASSWORD "password" dweet client; void setup() { Serial.begin(115200); delay(10); client.wifiConnection(WIFISSID, PASSWORD); } void loop() { String value = client.getDweet(THIG_NAME, "Loops"); //Her beder vi om værdien fra Serial.println(value); //nøglen Loops

14 Send tænd/sluk kommando til stikkontakt
Da vi kun har en stikkontakt, skal vi være opmærksom på de andre hold som benytter samme feed og nøgle. Der ligger allerede et program i stikkontakten. Så det skal I ikke tænke på i denne omgang. For sat tænde stikkontakten skal i bruge: For at slukke stikkontakten skal i bruge: Things: CP_SDBG Key: RELAY Value: On eller Off Husk at passe på det varme vand! MQTT Broker

15 Samle program delene til et komplet program
Nu skal du bruge alt hvad du har lært på de forrige sider, google, dine kammerater og det du ellers har lært om programmering. Der bliver behov for nogle betingelser og der bliver behov for planlægning. En god ide er at starte med at lave et flow diagram inden du starter på programmeringsopgaven.

16 Flow diagram Når vi laver et flow diagram bruger vi disse symboler
Spørgsmål – Beslutning Indlæsning – Udlæsning Handling – Program kode Pilene hjælper os med at beskrive rækkefølgende tingene skal ske i

17 Et flow diagram Er counter >= 10 int counter = 0; void setup() {
Serial.begin(9600); } void loop() { if (counter >= 10){ counter = 1; else { counter = counter + 1; Serial.println(counter); delay(1000); Program start counter = 0 nej ja Setup Serial begin counter= counter +1 counter = 1 Loop start Serial print counter Vent 1 sek.


Download ppt "IOT – Elkedel på internettet"

Lignende præsentationer


Annoncer fra Google