#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[] = "3bb-Wichit";
char pass[] = "0626481214";
int t_slider = 0;
int Value_slider;
int led = D0;
bool lock1 = false;
bool lock2 = false;
BLYNK_WRITE(V1){
t_slider = param.asInt();
Blynk.virtualWrite(V7,t_slider);
delay(100);
}
BLYNK_WRITE(V3) // button ความชื้น
{
if (param.asInt()==1) {
digitalWrite(led, HIGH);
}
if (param.asInt()==0) {
digitalWrite(led, LOW);
}
}
BLYNK_WRITE(V2) //button ตั้งเวลา
{
if (param.asInt()== 1) {
digitalWrite(led, HIGH);
}
if (param.asInt()== 0) {
digitalWrite(led, LOW);
}
}
BLYNK_WRITE(V5)// ตั้งเวลา
{
if(param.asInt() == 1){
{ if(lock2 == false)
digitalWrite(led,HIGH);
Blynk.virtualWrite(V2,1);
lock2 = true;
}
}
else
{
lock2 = false;
}
if(param.asInt() == 0){
{ if(lock2 == false)
digitalWrite(led,LOW);
Blynk.virtualWrite(V2,0);
lock2 = true;
}
}
else
{
lock2 = false;
}
}
BLYNK_CONNECTED() {
Blynk.syncAll();
}
void setup()
{
pinMode(led,OUTPUT);
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);
if(outputValue >= t_slider)
{ if(lock1 == false)
digitalWrite(led,HIGH);
Blynk.virtualWrite(V3,1);
lock1 = true;
}
else
{
lock1 = false;
}
if(outputValue <= t_slider)
{ if(lock1 == false)
digitalWrite(led,LOW);
Blynk.virtualWrite(V3,0);
lock1 = true;
}
else
{
lock1 = false;
}
Blynk.run();
}
ยังทํางานชนกันครับ ตั้งเวลาให้เปิดแต่ไปดับเพราะคําสั่งเซนเซอร์
Remy_Martin
(Permpol Thanapunnamas)
63
แต่ละ อันคืออะไร อธิบายแยกแยะมาด้วยครับ
#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[] = “3bb-Wichit”;
char pass[] = “0626481214”;
int t_slider = 0;
int Value_slider;
int led = D0;
bool lock1 = false;
bool lock2 = false;
BLYNK_WRITE(V1){ // widget slider
t_slider = param.asInt();
Blynk.virtualWrite(V7,t_slider);
delay(100);
}
BLYNK_WRITE(V3) // button ความชื้น
{
if (param.asInt()==1) {
digitalWrite(led, HIGH);
}
if (param.asInt()==0) {
digitalWrite(led, LOW);
}
}
BLYNK_WRITE(V2) //button ตั้งเวลา
{
if (param.asInt()== 1) {
digitalWrite(led, HIGH);
}
if (param.asInt()== 0) {
digitalWrite(led, LOW);
}
}
BLYNK_WRITE(V5)// ตั้งเวลา
{
if(param.asInt() == 1){ // หาก widget timerส่งค่ามาเป็น1 จะให้ทํางาน
{ if(lock2 == false)
digitalWrite(led,HIGH);
Blynk.virtualWrite(V2,1); // v2คือ wiitget button มีค่าเป็น1
lock2 = true;
}
}
else
{
lock2 = false;
}
if(param.asInt() == 0){ // หากwidgettimer ส่งค่ามาเป็น0จะหยุดการทํางาน
{ if(lock2 == false)
digitalWrite(led,LOW);
Blynk.virtualWrite(V2,0); // v2คือ wiitget button มีค่าเป็น0
lock2 = true;
}
}
else
{
lock2 = false;
}
}
BLYNK_CONNECTED() {
Blynk.syncAll();
}
void setup()
{
pinMode(led,OUTPUT);
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);
if(outputValue >= t_slider) // หากค่าที่อ่านได้จากเซ็นเซอร์น้อยกว่ยกว่าwidget slider จะสั่งให้ทํางาน
{ if(lock1 == false)
digitalWrite(led,HIGH);
Blynk.virtualWrite(V3,1); // v3คือ wiitget button มีค่าเป็น1
lock1 = true;
}
else
{
lock1 = false;
}
if(outputValue <= t_slider) // หากค่าที่อ่านได้จากเซ็นเซอร์น้อยกว่ยกว่าwidget slider จะสั่งหยุดให้ทํางาน
{ if(lock1 == false)
digitalWrite(led,LOW);
Blynk.virtualWrite(V3,0); // v3คือ wiitget button มีค่าเป็น0
lock1 = true;
}
else
{
lock1 = false;
}
Blynk.run();
}
Remy_Martin
(Permpol Thanapunnamas)
67
แคปหน้านี้มาดูครับ หน้าหลักที่เห็นว่าฟิกอะไรไว้บ้าง ไม่งั้นก็เดาอะไรเป็นอะไรไม่ถูก
Remy_Martin
(Permpol Thanapunnamas)
72
สองปุ่มนี้ไว้ทำอะไร อธิบายหน่อยครับ
Remy_Martin
(Permpol Thanapunnamas)
74
ถ้าเป็นอย่างนั้นตรงนี้ก็เขียนผิด นะครับ นี้เป็นแค่การสั่งงานให้ led ติด on หรือ off เท่านั้น
ผมจะยกตัวอย่างการเลือกโหลดให้ดู
bool auto_lock = false;
BLYNK_WRITE(V3) // button ความชื้น
{
if (param.asInt()==1) {
auto_lock = true;
}else {
auto_lock = false;
}
}
}
void loop(){
if(auto_lock == true){
//led on
}else{
//led off
}
}
Remy_Martin
(Permpol Thanapunnamas)
75
ตรงนี้จะต้องมีของ button แยกกับ auto คนละชุดเพื่อไม่ให้ทำงานซ้ำซ้อนกัน
#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[] = "3bb-Wichit";
char pass[] = "0626481214";
int t_slider = 0;
int Value_slider;
int led = D0;
bool lock1 = false;
bool lock2 = false;
bool auto_lock = false;
bool manul = false;
BLYNK_WRITE(V1){
t_slider = param.asInt();
Blynk.virtualWrite(V7,t_slider);
delay(100);
}
BLYNK_WRITE(V3) // button ความชื้น
{
if (param.asInt()==1) {auto_lock = true;}
else {manul = false;}
if (param.asInt()==0) {auto_lock = true;}else {auto_lock= false;}
}
BLYNK_WRITE(V2)// button ตั้งเวลา
{
if (param.asInt()==1) {manul = true;}
else {manul = false;}
if (param.asInt()==0) {manul = true;}else {manul = false;}
}
BLYNK_WRITE(V5)// ตั้งเวลา
{
if(param.asInt() == 1){ // หาก widget timerส่งค่ามาเป็น1 จะให้ทํางาน
{ if(lock2 == false)
digitalWrite(led,HIGH);
Blynk.virtualWrite(V2,1); // v2คือ wiitget button มีค่าเป็น1
lock2 = true;
}
}
else
{
lock2 = false;
}
if(param.asInt() == 0){ // หากwidgettimer ส่งค่ามาเป็น0จะหยุดการทํางาน
{ if(lock2 == false)
digitalWrite(led,LOW);
Blynk.virtualWrite(V2,0); // v2คือ wiitget button มีค่าเป็น0
lock2 = true;
}
}
else
{
lock2 = false;
}
}
BLYNK_CONNECTED() {
Blynk.syncAll();
}
void setup()
{
pinMode(led,OUTPUT);
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);
if (auto_lock == true){digitalWrite(led,1);} // buttonความชื้น(auto)
else {digitalWrite(led,0);}
if (manul == true){digitalWrite(led,1);} // button ตั้งเวลา
else {digitalWrite(led,0);}
if(outputValue >= t_slider) // หากค่าที่อ่านได้จากเซ็นเซอร์น้อยกว่ยกว่าwidget slider จะสั่งให้ทํางาน
{ if(lock1 == false)
digitalWrite(led,HIGH);
Blynk.virtualWrite(V3,1); // v3คือ wiitget button มีค่าเป็น1
lock1 = true;
}
else
{
lock1 = false;
}
if(outputValue <= t_slider) // หากค่าที่อ่านได้จากเซ็นเซอร์น้อยกว่ยกว่าwidget slider จะสั่งหยุดให้ทํางาน
{ if(lock1 == false)
digitalWrite(led,LOW);
Blynk.virtualWrite(V3,0); // v3คือ wiitget button มีค่าเป็น0
lock1 = true;
}
else
{
lock1 = false;
}
Blynk.run();
}`Preformatted text`
แบบนี้ไหมคับ
ตังเลือกโหมดไม่ได้คับ พอกดoof เด้ง on ตลอด มันยังทําคําสั่งนี้ตลอด
{ if(lock1 == false)
digitalWrite(led,HIGH);
Blynk.virtualWrite(V3,1); // v3คือ wiitget button มีค่าเป็น1
lock1 = true;
}
else
{
lock1 = false;
}
if(outputValue <= t_slider) // หากค่าที่อ่านได้จากเซ็นเซอร์น้อยกว่ยกว่าwidget slider จะสั่งหยุดให้ทํางาน
{ if(lock1 == false)
digitalWrite(led,LOW);
Blynk.virtualWrite(V3,0); // v3คือ wiitget button มีค่าเป็น0
lock1 = true;
}
else
{
lock1 = false;
}
ช่วยดูให้หน่อยครับว่าถูกไหม
#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;
int Value_slider;
int led = D0;
bool lock1 = false; // ล็อกคําสั่งคามชื้น
bool lock2 = false; // ล็อกคําสั้งตั้งเวลา
bool auto_lock = false; // ล็อก บัตทอลความชื้น
bool manul = false; // ล็อก บัตทอล ตั้งเวลา
BLYNK_WRITE(V1) {
t_slider = param.asInt();
Blynk.virtualWrite(V7, t_slider);
delay(100);
}
BLYNK_WRITE(V3) // button ความชื้น
{
if (param.asInt() == 1) {
auto_lock = true;
}
else {
auto_lock = false;
}
if (param.asInt() == 0) {
auto_lock = true;
} else {
auto_lock = false;
}
}
BLYNK_WRITE(V2)// button ตั้งเวลา
{
if (param.asInt() == 1) {
manul = true;
}
else {
manul = false;
}
if (param.asInt() == 0) {
manul = true;
} else {
manul = false;
}
}
BLYNK_WRITE(V5)// ตั้งเวลา
{
if (param.asInt() == 1) { // หาก widget timerส่งค่ามาเป็น1 จะให้ทํางาน
{ if (lock2 == false)
digitalWrite(led, HIGH);
Blynk.virtualWrite(V2, 1); // v2คือ wiitget button มีค่าเป็น1
lock1 = true;
}
}
else
{
lock2 = false;
}
if (param.asInt() == 0) { // หากwidgettimer ส่งค่ามาเป็น0จะหยุดการทํางาน
{ if (lock2 == false)
digitalWrite(led, LOW);
Blynk.virtualWrite(V2, 0); // v2คือ wiitget button มีค่าเป็น0
lock2 = true;
}
}
else
{
lock2 = false;
}
}
BLYNK_CONNECTED() {
Blynk.syncAll();
digitalWrite(D4,HIGH);
}
void setup()
{
pinMode(led, OUTPUT);
digitalWrite(led, HIGH);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 100, 0); //คิดเป็นเปอร์เซ็น
Blynk.virtualWrite(V0, outputValue);
if (auto_lock == true) {
digitalWrite(led, 1); // buttonความชื้น(auto)
}
else {
digitalWrite(led, 0);
}
if (manul == true) {
digitalWrite(led, 1); // button ตั้งเวลา
}
else {
digitalWrite(led, 0);
}
if (outputValue >= t_slider) // หากค่าที่อ่านได้จากเซ็นเซอร์น้อยกว่ยกว่าwidget slider จะสั่งให้ทํางาน
{ if (lock1 == false)
digitalWrite(led, HIGH);
Blynk.virtualWrite(V3, 1); // v3คือ wiitget button มีค่าเป็น1
lock1 = true;
}
else
{
lock1 = false;
}
if (outputValue <= t_slider) // หากค่าที่อ่านได้จากเซ็นเซอร์น้อยกว่ยกว่าwidget slider จะสั่งหยุดให้ทํางาน
{ if (lock1 == false)
digitalWrite(led, LOW);
Blynk.virtualWrite(V3, 0); // v3คือ wiitget button มีค่าเป็น0
lock1 = true;
}
else
{
lock1 = false;
}
Blynk.run();
}
11191
(ณัฐนน รอดรวมมิตร์)
82
ขอบคุณกระทู้นี้มากครับ สำหรับเรื่องการแทนค่าที่ผมไม่เข้าใจ ตอนนี้ผมสามารถนำมาประยุคใช้ได้แล้วครับ