Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Arduino: endre parameter via JSON


Tverfyll

Anbefalte innlegg

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

 

 

 

 

Lenke til kommentar
Del på andre sider

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 av Håvardgj
  • Like 1
Lenke til kommentar
Del på andre sider

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();

 

 

  • Like 2
Lenke til kommentar
Del på andre sider

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.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.