Tverfyll Skrevet 9. mai 2017 Skrevet 9. mai 2017 Hei. Jeg forsøker å endre en verdi i HS vha JSON fra min arduino. Jeg har fått json-strengen til å fungere i nettleser, men sliter med å gjøre det fra arduino. (http://localhost/JSON?request=controldevicebyvalue&ref=211&value=200) Jeg har fått den på wifi, men der stopper min kunskap jeg har en formening om at jeg bør bruke en http klient i arduino. Noen som kan skubbe meg i riktig retning? Ja, jeg vet det finnes en plugin, men jeg ønsker ikke å bruke penger på den når jeg (Forhåpentligvis) kan gjøre det enkelt med JSON Siter
ZoRaC Skrevet 9. mai 2017 Skrevet 9. mai 2017 Jeg har kode for det, mener jeg. Kan legge den ut i morgen. Har også for HTTPS, med passord, vet ikke om du bruker det? Siter
Tverfyll Skrevet 9. mai 2017 Forfatter Skrevet 9. mai 2017 Det hadde vært supert! Jeg kommer nok bare til å bruke det på lokalnettet, så ingen https. Men legg det gjerne ut, hvis andre kan bruke det! Siter
Håvardgj Skrevet 9. mai 2017 Skrevet 9. mai 2017 (endret) 2 timer siden, Tverfyll skrev: Hei. Jeg forsøker å endre en verdi i HS vha JSON fra min arduino. Jeg har fått json-strengen til å fungere i nettleser, men sliter med å gjøre det fra arduino. (http://localhost/JSON?request=controldevicebyvalue&ref=211&value=200) her er for en WeMos (esp8266), så mesteparten skal vel sikkert fungere du kan sikkert se bort fra det meste som har med DS18B20 og ESP8266 hvis dette skal brukes på en "normal" arduino /********* Rui Santos Complete project details at http://randomnerdtutorials.com *********/ // Including the ESP8266 WiFi library #include <ESP8266WiFi.h> //mesteparten kan droppes hvis det ikke er til esp8266 eller ds18b20 #include <OneWire.h> #include <DallasTemperature.h> #include <ESP8266HTTPClient.h> // Data wire is plugged into pin D1 on the ESP8266 12-E - GPIO 5 #define ONE_WIRE_BUS 5 // Replace with your network details const char* ssid = "DIN SSID"; const char* password = "DITT PASSORD"; String lastTemp; IPAddress ip(192, 168, 1, 203); // IP-adresse til enheten IPAddress subnet(255, 255, 255, 0); IPAddress gateway(192, 168, 1, 1); //IP-adresse til Router OneWire oneWire(ONE_WIRE_BUS); //OneWire DallasTemperature DS18B20(&oneWire); //DS18B20 char temperatureCString[6]; // only runs once on boot void setup() { // Initializing serial port for debugging purposes Serial.begin(115200); delay(10); DS18B20.begin(); // IC Default 9 bit. If you have troubles consider upping it 12. Ups the delay giving the IC more time to process the temperature measurement // Connecting to WiFi network Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.config(ip, gateway, subnet); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); String s = WiFi.macAddress(); Serial.println(s); Serial.println(WiFi.macAddress()); // Printing the ESP IP address Serial.println(WiFi.localIP()); } float getTemperature() { float tempC; do { DS18B20.requestTemperatures(); tempC = DS18B20.getTempCByIndex(0); dtostrf(tempC, 2, 2, temperatureCString); delay(100); return readtemp } while (tempC == 85.0 || tempC == (-127.0)); } // runs over and over again void loop() { String stringTemp = String(getTemperature()); HTTPClient http; if(stringTemp != lastTemp) { Serial.println("Temp endret"); Serial.println("Temp er:"+stringTemp+" Forrige var:"+lastTemp); http.begin("http://192.168.1.6/JSON?request=controldevicebyvalue&ref=85&value="+stringTemp); // her skal JSON-strengen settes uinn int httpCode = http.GET(); //http.writeToStream(&Serial); http.end(); lastTemp = stringTemp; delay(3000); } delay(30000); //Venter 30 sek før ny måling det som befinner seg i "void loop" er det du er på jakt etter, Endret 9. mai 2017 av Håvardgj 1 Siter
ZoRaC Skrevet 9. mai 2017 Skrevet 9. mai 2017 Og jeg kom på at jeg allerede har delt koden min her... 1 Siter
Tverfyll Skrevet 10. mai 2017 Forfatter Skrevet 10. mai 2017 Fikk det til tilslutt. Her er det eneste jeg trengte av kode for å endre verdien med json. Vil si det er enklere en å konfigurere arduino-plugin;) Nå skal plantene få et nytt å bedre liv? #include <ESP8266HTTPClient.h> HTTPClient http; http.begin("http://192.168.0.104/JSON?request=controldevicebyvalue&ref=211&value=250"); int httpCode = http.GET(); http.end(); 2 Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.