ปัญหาเชิงโปรแกรม

ถ้าผมจะกําหนดค่าความชื้นของดินแบบว่าค่าเท่านี้ให้ทํางาน โดยใช้ slider ในblynk ต้องทํายังไงคับ

กระทู้ตัวอย่างการใช้งาน

และการคิดเชิงโปรแกรมครับ

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
int sensorValue = 0;
int outputValue = 0;
const int analogInPin = A0;
char auth[] = " vrUsz_PiEoHTQN3nfrY6gZI9jJBpXnis";
char ssid[] = “iPhone”;
char pass[] = “12345678”;
BLYNK_WRITE(V23)
{
if(outputValue = param.asInt()){
digitalWrite(D4, HIGH);}
}

BLYNK_WRITE(V5)
{
if(param.asInt() == 0)
{
digitalWrite(D4, HIGH);
}
if(param.asInt() == 1)
{
digitalWrite(D4, LOW);
}
}

BLYNK_CONNECTED() {
Blynk.syncAll();
}

void setup()
{
pinMode(D4,OUTPUT);
digitalWrite(D4, HIGH);
Blynk.begin(auth, ssid, pass);
}

void loop()
{

sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023,100,0);
Blynk.virtualWrite(V0,outputValue);
Blynk.run();

}

ต้องแก้ตรงไหนคับ

แก้อะไรครับ ติดปัญหาอะไร

ผมจะให้sliderเป็นตัวกําหนดความชื้นว่าความชื้นเท่านี้จะให้ทํางานจะต้องเขียนโค้ดยังไงคับ

ตั้งค่า

int t_slider = 0;

BLYNK_WRITE(V1){

  t_slider = param.asInt();
  Serial.print(t_slider);

}

ยังใช้งานไม่ได้คับบ ติดตรงไหน

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
int sensorValue = 0; //ตัวแปรค่า Analog
int outputValue = 0; // ตัวแปรสำหรับ Map เพื่อคิด %
const int analogInPin = A0;
char auth[] = " vrUsz_PiEoHTQN3nfrY6gZI9jJBpXnis";
char ssid[] = “iPhone”;
char pass[] = “12345678”;
int t_slider = 0;

BLYNK_WRITE(V1){ //ควบคุมความชื้น //ยังติดปัญหา
if (t_slider = outputValue){
digitalWrite(D4, HIGH);
Serial.print(‘ON’);
}
}
BLYNK_WRITE(V5)// ตั้งเวลา
{
if(param.asInt() == 0)
{
digitalWrite(D4, HIGH); // เปิด
}
if(param.asInt() == 1)
{
digitalWrite(D4, LOW); //ปิด
}
}

BLYNK_CONNECTED() {
Blynk.syncAll();
}

void setup()
{

Serial.begin(9600);
pinMode(D4,OUTPUT);
digitalWrite(D4, HIGH);
Blynk.begin(auth, ssid, pass);
}

void loop()
{

sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023,100,0); //คิดเป็นเปอร์เซ็น
Blynk.virtualWrite(V0,outputValue);
Blynk.run();

}

เอาข้อมูลที่เซตอัพในเอพมาดูหน่อยครับ รันแล้ว print ดูมันขึ้นว่าอะไร แอพมันออนรึยังมันเชื่อมได้ไหม ให้ข้อมูลแค่นี้ผมตอบให้ไม่ได้ครับ

แนบรูปตรงไหนหรอคับ

ซีเรียลมันปริ้น203022 เวลาเลื่อนslider

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
int sensorValue = 0;  //ตัวแปรค่า Analog      
int outputValue = 0;   // ตัวแปรสำหรับ Map เพื่อคิด %      
const int analogInPin = A0;
char auth[] = " vrUsz_PiEoHTQN3nfrY6gZI9jJBpXnis";
char ssid[] = "iPhone";
char pass[] = "12345678";
int t_slider = 0;

BLYNK_WRITE(V1){ //ควบคุมความชื้น //ยังติดปัญหา
t_slider = outputValue;
 digitalWrite(D4, HIGH);
 Serial.print('ON');
}
BLYNK_WRITE(V5)// ตั้งเวลา
{
  if(param.asInt() == 0)
  {
    digitalWrite(D4, HIGH); // เปิด
  }
  if(param.asInt() == 1)
  {
    digitalWrite(D4, LOW); //ปิด
  }
}

BLYNK_CONNECTED() {
  Blynk.syncAll();
}

void setup()
{

Serial.begin(9600);
      pinMode(D4,OUTPUT);
  digitalWrite(D4, HIGH);
    Blynk.begin(auth, ssid, pass);
}

void loop()
{

  sensorValue = analogRead(analogInPin);
  outputValue = map(sensorValue, 0, 1023,100,0); //คิดเป็นเปอร์เซ็น
  Blynk.virtualWrite(V0,outputValue); 
  Blynk.run();
  
}
int t_slider = 0;

BLYNK_WRITE(V1){

  t_slider = param.asInt();
  Serial.print(t_slider);

}

แก้เป็น

int t_slider = 0;

BLYNK_WRITE(V1){

  t_slider = param.asInt();
  Serial.printIn(t_slider);

}

ขอดู widget อื่นด้วยครับ มีอะไร เซตอะไรไว้บ้าง

อธิบายโปรแกรมของตัวเองพอสังเขบหน่อยครับว่าตอนนี้มันทำอะไรได้แล้วบ้าง แล้วติดปัญหาที่ตรงไหนอยู่

ผมจะทําเครื่องรดนํ้าต้นไม้โดยมีโหมด
1.ตั้งเวลลาการทํางาน
2.ทํางานตามความชื้นที่ตั้งไว้
ที่ได้แล้ว
1.ตั้งเวลา
2.โชว์ค่าความชื้น
ที่ติดอยู่
1.กําหนดค่าความชื้นให้ทํางานโดยใช้widget

จนปัญญาแล้วจิง