安信可ESP32点灯APP自动浇花和天气空气质量-Arduino中文社区 - Powered by Discuz! Archiver

Highnose 发表于 2022-1-24 13:37

ht256929 发表于 2022-1-24 13:20
https://www.arduino.cn/forum.php?mod=viewthread&tid=90648&highlight=json
具体我没仔细研究,因为我 ...

好的,谢谢你!:handshake

jerryiot 发表于 2022-1-24 16:45

本帖最后由 jerryiot 于 2022-1-24 16:47 编辑

Highnose 发表于 2022-1-24 13:37
好的,谢谢你!https://www.jerrycoding.com/article/esp8266-clock-2/
https://arduinojson.org/v6/assistant

JSON解析助手啊
https://cdn.jerrycoding.com/media/ckeditor_upload/2022/01/15/image_OFsUOFJ.png



longjunling 发表于 2022-1-26 13:25

本帖最后由 longjunling 于 2022-1-26 13:28 编辑

void turang()//土壤值读取
{
uint8_t i;
for (i = 0; i < 20; i++) { //连续取采集多个样本,缺点AD读取会有延迟
    LeiJi = analogRead(TR); //读取土壤湿度传感器的值
    Blinker.delay(100);
}
TRzhi = 0; //平均所有值
for (i = 0; i < 20; i++) {
    TRzhi += LeiJi;
}
//Serial.println(TRzhi);//串口输出土壤值
TRzhi = map(TRzhi, Amin, Amax, 0, 100); //校准值转换成0-100
TRzhi = constrain(TRzhi, 0, 100); //将传感器值的范围限制在0到100之间
Blinker.delay(1000);
}
我用8266也连上了,但是土壤湿度值这部分一直是100,这里要怎么调证吗?

longjunling 发表于 2022-1-26 13:48

本帖最后由 longjunling 于 2022-1-28 13:39 编辑

还有一个问题,在手动开启手动浇水后,如果湿度过高自动关闭继电器,app上的手动浇水图标仍然是高亮状态,没收更新继电器状态。还有,现在是app端的浇水次数是在开始浇水后每更新一次就累计一次,应该是继电器每打开一次累加一次吧。

longjunling 发表于 2022-1-26 15:32

用湿度传感器不行,土壤湿度一直显示100,用电位器输入电压模拟湿度传感器就读取正常,应该是我的湿度传器电有问题,请问一下你用的是什么样的土壤湿度传感器?

ht256929 发表于 2022-1-28 23:17

longjunling 发表于 2022-1-26 13:48
还有一个问题,在手动开启手动浇水后,如果湿度过高自动关闭继电器,app上的手动浇水图标仍然是高亮状态, ...

具体的可以加代码更新状态,我搞了后没有插在花盆里面

ht256929 发表于 2022-1-28 23:19

longjunling 发表于 2022-1-26 15:32
用湿度传感器不行,土壤湿度一直显示100,用电位器输入电压模拟湿度传感器就读取正常,应该是我的湿度传器 ...

我用的电容式湿度传感器 ,用手捏着湿度都是百分之百,你可以优化一下

ht256929 发表于 2022-1-28 23:22

longjunling 发表于 2022-1-26 13:25
void turang()//土壤值读取
{
uint8_t i;


你把土壤湿度传感器从土里拔出来试试看下湿度值有没有变化

ht256929 发表于 2022-1-29 00:16

longjunling 发表于 2022-1-26 13:25
void turang()//土壤值读取
{
uint8_t i;


LeiJi = analogRead(TR); //读取土壤湿度传感器的值
这行代码下加一句串口输出 看下LeiJi的值,读取土壤湿度传感器在花盆土壤干燥的时候的值 修改uint16_t Amin = 60700 的值。然后花盆浇水浇透后看下LeiJi值是多少。修改uint16_t Amax = 24200后面的数值。我这两个值一个直接把土壤湿度模块放在外面和泡在水里读取的。实用性不是很好

ht256929 发表于 2022-1-29 00:56

longjunling 发表于 2022-1-26 13:48
还有一个问题,在手动开启手动浇水后,如果湿度过高自动关闭继电器,app上的手动浇水图标仍然是高亮状态, ...

反馈开关状态,你在下面三行代码上面加Button2.print("off"); 反馈开关按钮状态的代码试下,
Blinker.println("土壤潮湿,不需要浇水");
Blinker.println("温度过高,不适宜浇水");
Blinker.println("空气湿度高,可能会下雨!");

浇水次数的话确实没有算手动浇水次数,你可以这样修改一下试试
int ci = 0, zhi = 40; 改为int ci = 0, ci1=0,zhi = 40;
void button2_callback(const String & state)//手动浇水
{
BLINKER_LOG("get button state: ", state);
if (state == "on")
{
    digitalWrite(JDQ, HIGH);
    // 反馈开关状态
    Button2.print("on");
    B = "开始手动浇水";
}if (state == "off") //按照例程else if无法关闭
{
    digitalWrite(JDQ, LOW);
    // 反馈开关状态
    Button2.print("off");
    B = "停止手动浇水";
}
Blinker.delay(300);
}改为
void button2_callback(const String & state)//手动浇水
{
BLINKER_LOG("get button state: ", state);
if (state == "on")
{
    digitalWrite(JDQ, HIGH);
    // 反馈开关状态
    Button2.print("on");
   ci1++;
    B = "开始手动浇水";
}if (state == "off") //按照例程else if无法关闭
{
    digitalWrite(JDQ, LOW);
    // 反馈开关状态
    Button2.print("off");
    B = "停止手动浇水";
}
Blinker.delay(300);
}

ci_read = ci;//浇水次数改为ci_read = ci+ci1;//浇水次数
具体你只有试,我不是很懂C语言。编程我更加不懂。只会如果则,开发版和电脑不在身边我测试不了。错了别笑话。我只试觉得这样应该是可以的
页: 1 [2] 3 4 5
查看完整版本: 安信可ESP32点灯APP自动浇花和天气空气质量