# Hur man får en DHT11 Sensor att visa sitt värde på :link:Thingspeak.com Hejsan här tänkte jag visa en snabb liten guide till hur man får upp temperatur och fuktighetsvärden från en dht 11 sensor via en Arduino Uno med ethernet sköld till :link:Thingspeak.com. Tidsåtgång: Ca 1 timme. Förberedelser (50 min, koppla in, skapa konton ladda ner bibliotek och installera dom). Vad du behöver: en Arduino Uno, en breadboard, ethernet sköld, tre sladdar att koppla till Arduino (en röd för **plus**, en svart för **jord** och en vit för **signal** för mig), En ethernet kabel och usb c kabel (eller vilken usb kabel du använder för att strömsätta Arduinon). Steg 1: Tryck på din sköld på din Arduino försiktigt så att du inte viker några metallben. Anslut därefter din ethernet kabel till din router och andra ändan till din sköld i ethernet uttaget. Steg 2: Koppla den vita sladden från Arduino port nr 2 till dataporten på din dht11 sensor(vänster ben för mig). Koppla därefter Den röda från port "5 V" till plus på din sensor(mittenbenet för mig). Sedan den svarta kabeln från uttaget gnd(ground) på din Arduino till din jord på din sensor(högerben för mig). Det kan vara viktigt att kika hur din sensor är satt med plus minus och data då det kan vara olika. Såhär ser min Arduino med breadboard ut när det är färdigkopplat. ![](https://i.imgur.com/07zqBu7.jpg) ![](https://i.imgur.com/gQRn5pe.jpg) ![](https://i.imgur.com/9GD67Ja.jpg) # Kopplingschema ![](https://i.imgur.com/hPFfwCV.jpg) Steg 3: När du kopplat allt som ovan måste du ladda ned Arduino utvecklingsmiljön (programmet där man skriver kod) detta gör man här: :link:https://www.arduino.cc/en/software . Du måste även gå in på :link:thingspeak.com och göra ett konto och göra en kanal så att du kan presentera dina värden. Sedan måste du använda ett par bibliotek som du måste ladda ner antingen som zip fil eller i arduino miljön Ethernet.h(Under fliken verktyg -> hantera bibliotek, sökrutan skriver du Ethernet.h, i Arduino miljön), "Thingspeak.h" hittar du här: :link: https://github.com/mathworks/thingspeak-arduino (ladda ned zipfilen i den gröna rutan "code", i din Arduino miljö under fliken skiss -> inkludera bibliotek -> lägg till .ZIP bibliotek. Välj där du lagt din nedladdade zip fil) och "DHT.h" hittar ni på samma sätt som på Ethernet.h. # Koden Sedan går du till din Arduino miljö där du längst upp i vänstra hörnet hittar FIL -> Exempel -> Thingspeak -> Arduinoethernet -> Writemultiplefields. Öppna den och i secrets.h skriver du ditt kanal nummer(Sju siffror som du hittar under Your channels -> channel id) i thingspeak och din writeAPI nyckel, som du hittar i ditt thingspeak(Under fliken your channel -> API KEYS). Skriv ner det i secrets och testa att köra koden genom att trycka på "Ladda upp" i Arduino miljön, glöm ej att ansulta din arduino till datorn. Spara gärna med ett förklarande namn. Denna kod som du har där nu ger dig ett random number istället för det aktuella värdet. Därför måste du även installera/includera DHT.h biblioteket för att kunna skriva ut dina värden. ![](https://i.imgur.com/VBfoPpU.png) Såhär ska koden se ut. kopiera den och klistra in den istället. ```cpp /* ______________________________________________________________________________________ Date : 2020-12-04 File : mytemptointernet.ino Description : Program that takes value from sensor and presents it on internet. Author : Rickard Tiger r.tiger@hotmail.se ______________________________________________________________________________________ */ //Tillgång till Thingspeak biblioteket. #include "ThingSpeak.h" //Tillgång till ethernet sköldsbiblioteket. #include <Ethernet.h> //Tillgång till secrets.h filen #include "secrets.h" //Tillgång till sensorbiblioteket. #include "DHT.h" //Include sensorn dht 11. #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); //Här är din mac adress. byte mac[] = SECRET_MAC; //Sätter den statiska ip adressen om DHCP inte fungerar. IPAddress ip(192, 168, 0, 177); IPAddress myDns(192, 168, 0, 1); EthernetClient client; //Här är ditt kanal nummer. unsigned long myChannelNumber = SECRET_CH_ID; //Här är din API nyckel. const char * myWriteAPIKey = SECRET_WRITE_APIKEY; // Deklaration av variabler som sätter nummer1 och 2, float för att kunna ha decimal. float number1; float number2 ; void setup() { Ethernet.init(10); //Använd serial monitor på 9600 bandet för att kunna följa koden. //Hittas i Verktyg -> Serial monitor. Serial.begin(9600); dht.begin(); //Startar ethernet anslutningen. Serial.println("Initialize Ethernet with DHCP:"); if (Ethernet.begin(mac) == 0) { Serial.println("Failed to configure Ethernet using DHCP"); // Presenterar om hårdvaran inte hittas. if (Ethernet.hardwareStatus() == EthernetNoHardware) { Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :("); while (true) { delay(1); } } if (Ethernet.linkStatus() == LinkOFF) { Serial.println("Ethernet cable is not connected."); } Ethernet.begin(mac, ip, myDns); } else { Serial.print(" DHCP assigned IP "); Serial.println(Ethernet.localIP()); } // Ger skölden 1000 millisekunder att initialisera. delay(1000); ThingSpeak.begin(client); // Initialize ThingSpeak } void loop() { // Läser temp till celsius. number1 = dht.readTemperature(); number2 = dht.readHumidity(); // Sätter 2 fält med värderna. ThingSpeak.setField(1, number1); ThingSpeak.setField(2, number2); // Skriver till thingspeak. int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey); if(x == 200) { Serial.println("Channel update successful."); } else { Serial.println("Problem updating channel. HTTP error code " + String(x)); } delay(30000); // Väntar 30 sekunder för att updatera kanalen igen. } } ``` # Slutresultat Nu ska du, om du gjort rätt, kunna läsa från din dht11 sensor till thingspeak och presentera dina värden. Är det några fel får ni gärna kontakta mig eller försöka att "labba" själva med hjälp av google är alltid en smart grej. Såhär ser det ut för mig på min kanal ![](https://i.imgur.com/eiiVXRC.png) https://thingspeak.com/channels/1244000 om ni vill titta på mitt hus. MVH Rickard.