แนะนำหน่อยครับ
ข้อความเข้า Line ได้แล้วเหลือค่าที่อ่านได้จาก A0 ยังไม่ได้
เอาโค้ตเต็มๆ มาดูหน่อยครับ ตัดมาบางส่วนวิเคราะห์ไม่ถูกครับ
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <TridentTD_LineNotify.h>
#include <stdio.h>
//#define SSID "Kornkanok-2.4G"
//#define PASSWORD "0897500133"
#define LINE_TOKEN "KFvGp9jsFD17uX2pFkRUuA8OFg4coSWPIvSOAtJ0GX7" //Line TOKEN
#define INPUT1 D4 //GPIO2
#define INPUT2 D7 //GPIO13
#define INPUT3 D6 //GPIO12
#define AnalogIN A0
#define OUTPUT1 D0 //GPIO16
#define OUTPUT2 D1 //GPIO5
#define OUTPUT3 D2 //GPIO4
#define OUTPUT4 D5 //GPIO14
#define aref_voltage 3.3
char auth[] = "IFbabL-4B55zHPt8ibB1nErKvw97jVLG"; //Key From Blynk
char ssid[] = "Kornkanok-2.4G"; //Wifi Name
char pass[] = "0897500133"; //Wifi Password
int i;
bool lock11 = false; //ล็อคสถานะONของinput1
bool lock12 = false; //ล็อคสถานะOFFของinput1
bool lock21 = false; //ล็อคสถานะONของinput2
bool lock22 = false; //ล็อคสถานะOFFของinput2
bool lock31 = false; //ล็อคสถานะONของinput3
bool lock32 = false; //ล็อคสถานะOFFของinput3
BlynkTimer timer1;
BlynkTimer timer2;
BlynkTimer timer3;
BlynkTimer timer4;
BlynkTimer timer5;
WidgetLED led1(V1);
WidgetLED led2(V2);
WidgetLED led3(V3);
void timerEvent1()
{
if(digitalRead(D4)==LOW)
led1.on();
else
led1.off();
if(digitalRead(D7)==LOW)
led2.on();
else
led2.off();
if(digitalRead(D6)==LOW)
led3.on();
else
led3.off();
}
void timerEvent2()
{
int current = analogRead(AnalogIN);
analogRead(AnalogIN);
delay(10);
// converting that reading to voltage, for 3.3v arduino use 3.3, for 5.0, use 5.0
float voltageA0 = current *(aref_voltage / 1023.0);
float Amp = ((voltageA0*9.09)-0.23); //rang 0-30
Blynk.virtualWrite(V0,Amp);
//analogRead(AnalogIN);
delay(10);
Serial.println(Amp);
Serial.println(V0);
delay(2000);
}
void timerEvent3()
{
if(digitalRead(INPUT1)==LOW)
{
if(lock11 == false){
delay(3000);
LINE.notify("มอเตอร์บ่อใหญ่_On");
Serial.println("Motor1_On");
delay(5000);
String Amp
String LineText1;
String string1 = "ค่ากระแสไฟ = ";
String string2 = "A";
LineText1 = string1+ (V0) +string2;
Serial.println(LineText1);
LINE.notify(LineText1);
lock11 = true;
}
delay(5);
}
else{
lock11 = false;
}
if(digitalRead(INPUT1)==HIGH)
{
if(lock12 == false){
//delay(3000);
LINE.notify("มอเตอร์บ่อใหญ่_OFF");
Serial.println("Motor1_Off");
lock12 = true;
}
delay(5);
}
else{
lock12 = false;
}
}
void timerEvent4()
{
if(digitalRead(INPUT2)==LOW)
{
if(lock21 == false){
delay(3000);
LINE.notify("มอเตอร์บ่อ1_ON");
Serial.println("Motor2_On");
delay(5000);
String LineText2;
String string21 = "ค่ากระแสไฟ = ";
String string22 = "A";
LineText2 = string21+ (V0) +string22;
Serial.println(LineText2);
LINE.notify(LineText2);
lock21 = true;
}
delay(5);
}
else{
lock21 = false;
}
if(digitalRead(INPUT2)==HIGH)
{
if(lock22 == false){
//delay(3000);
LINE.notify("มอเตอร์บ่อ1_OFF");
Serial.println("Motor2_Off");
lock22 = true;
}
delay(5);
}
else{
lock22 = false;
}
}
void timerEvent5()
{
if(digitalRead(INPUT3)==LOW)
{
if(lock31 == false){
delay(3000);
LINE.notify("มอเตอร์บ่อ2_3_ON");
Serial.println("Motor2_3_On");
delay(5000);
String LineText3;
String string31 = "ค่ากระแสไฟ = ";
String string32 = "A";
LineText3 = string31+ (V0) +string32;
Serial.println(LineText3);
LINE.notify(LineText3);
lock31 = true;
}
delay(5);
}
else{
lock31 = false;
}
if(digitalRead(INPUT3)==HIGH)
{
if(lock32 == false){
//delay(3000);
LINE.notify("มอเตอร์บ่อ2_3_OFF");
Serial.println("Motor3_Off");
lock32 = true;
}
delay(5);
}
else{
lock32 = false;
}
}
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
// timer3.setInterval(2000L, timerEvent3);
Serial.printf("WiFi connecting to %s\n", ssid);
while(WiFi.status() != WL_CONNECTED)
{ Serial.print(".");
delay(400);
}
Serial.printf("\nWiFi connected\nIP : ");
Serial.println(WiFi.localIP());
timer1.setInterval(2000L, timerEvent1);
timer2.setInterval(2000L, timerEvent2);
timer3.setInterval(2000L, timerEvent3);
timer4.setInterval(2000L, timerEvent4);
timer5.setInterval(2000L, timerEvent5);
pinMode(INPUT1,INPUT);
pinMode(INPUT2,INPUT_PULLUP);
pinMode(INPUT3,INPUT_PULLUP);
pinMode(OUTPUT1,OUTPUT);
pinMode(OUTPUT2,OUTPUT);
pinMode(OUTPUT3,OUTPUT);
pinMode(OUTPUT4,OUTPUT);
// กำหนด Line Token
LINE.setToken(LINE_TOKEN);
LINE.notify("Motor_Monitor Ready");
}
void loop() {
Blynk.run();
timer1.run();
timer2.run();
timer3.run();
timer4.run();
timer5.run();
Blynk.virtualWrite(OUTPUT1,LOW);
Blynk.virtualWrite(OUTPUT2,LOW);
Blynk.virtualWrite(OUTPUT3,LOW);
Blynk.virtualWrite(OUTPUT4,LOW);
}
ตอนนี้อ่านค่าจาก A0 ได้แล้วครับเหลือ จะเอาค่าที่คำนวณจาก A0 มาส่งเข้าไลน์ครับ
อ่านได้อย่างไร แก้ไขอะไรไปถึงได้หรอครับ
void timerEvent2()
{
int current = analogRead(AnalogIN);
analogRead(AnalogIN);
delay(10);
// converting that reading to voltage, for 3.3v arduino use 3.3, for 5.0, use 5.0
float voltageA0 = current *(aref_voltage / 1023.0);
float Amp = ((voltageA0*9.09)-0.23); //rang 0-30
Blynk.virtualWrite(V0,Amp);
//analogRead(AnalogIN);
delay(10);
Serial.println(Amp);
Serial.println(V0);
delay(2000);
}
เพิ่มตรงนี้เข้าไปครับ ตอนนี้ตอดตรงเอาค่าที่คำนวณได้ มาโชร์ ใน Line ครับ
โอเครครับตอนนี้ได้แล้วครับ ต้องเอาคำสั่ง
int current = analogRead(AnalogIN);
analogRead(AnalogIN);
delay(10);
// converting that reading to voltage, for 3.3v arduino use 3.3, for 5.0, use 5.0
float voltageA0 = current *(aref_voltage / 1023.0);
float Amp = ((voltageA0*9.09)-0.23); //rang 0-30
ใส่ลงไปทุก void ของการเช็คสถานะ input ของทุก Input เลยครับ
อยากจะสอบถามเพิ่มเติมครับถ้าอยากจะตรวจเช็ค สถานะ Input ว่าถ้า on ทั้ง 3 Input แล้วค่ากระแสที่อ่านได้ไม่ถึงค่าที่กำหนดให้ส่งข้อความเข้า Line ต้องเพิ่ม code ยังไงตรงไหนครับ
เอาลายละเอียดไปตั้งกระทู้ใหม่เลย เดียวจะไปตอบให้ครับ