完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我正在为我所在地区的一些 hoophouse 蔬菜种植者做实习项目。他们有兴趣安装一个温度警报,让他们知道 hoophouse 何时变得太热或太冷,他们的 hoophouse 不在 wifi 和蓝牙范围内,他们希望在线查看数据并将温度警报发送到他们的手机以及。我的经验非常有限,但我想尝试去做。 我决定使用无线电发射器,因为 hoophouses 离房子不是很近。总体计划是将温度传感器(AHT20,但可能会切换到 SHT-30)连接到 Arduino Uno 和 RFM69HCW 无线电发射器,以将温度传输到房屋中的另一个 RFM69HCW,也连接到 arduino uno。当温度过低或过高时,压电蜂鸣器和红色 LED 会熄灭。 现在以上所有的都在工作。温度通过无线电传输,显示在房屋的液晶显示器上,如果太热或太冷,警报就会响起。(下面附上的代码是 wifi 问题的测试器,未附上当前的工作代码)。 我还想将此信息发送到 Thingspeak,以便可以跟踪数据,而且我还希望在人们的 hoophouse 过热或过冷时向他们的手机发送 SMS 警报。 我从 Adafruit 购买了一块 ESP8266 Huzzah 开发板,认为它适合 wifi 连接,并且可以连接到家里的 Arduino Uno(如果需要,我也有 FTDI 电缆)。Adafruit HUZZAH ESP8266 Breakout:ID 2471:9.95 美元:Adafruit Industries,独特有趣的 DIY 电子产品和套件 目前 Huzzah ESP8266 未连接到互联网。我的代码卡在“重新连接”上。发生这种情况时,ESP8266 上没有灯(蓝色或红色)。不过,Arduino UNO 上的 TX 和 RX 灯会熄灭。 我之前试着玩过 FTDI 和另一个程序,当我这样做时,ESP8266 上的蓝色和红色灯熄灭了。此外,我就在路由器旁边,我知道互联网运行良好,密码和 wifi 名称正确,路由器为 5 GHz,我读过的 ESP8266 是正确的。 我听说 arduino 接受命令,可能不会将其转发给 ESP8266,我认为这是我的问题,但我不确定如何解决。在较早的论坛帖子中,有人说移除 Uno 的 MCU,但我相信这会搞乱我的其他操作。 这就是我无法连接到 Wifi 的原因,是否有解决方法? 上传照片有问题,见附件) 注意:Huzzah ESP8266 有一个稳压器,所以我可以将 V+ 连接到 5V,而 Rx 是 5V 兼容的。我也试过 TX-RX,RX-TX。 根据另一个论坛上的建议,我还尝试将 Tx 和 Rx 连接到不同的数字引脚(6 和 7,因为 RFM68HCW 无线电发射器正在使用 2 和 3)。这导致了同样的“重新连接”问题。 Uno: --- ESP8266: TX --- TX Rx --- RX 5V --- V+ 3.3V --- EN, RST GND --- GND 注意:此代码仅用于测试 wifi 和连接与 Thingspeak。 我从这里获取了原始代码:ThingSpeak Arduino Weather Station - Arduino 项目中心,我没有将他们的 DHT 传感器代码切换到我的,以及其他一些东西,不过应该不会太难。我只需要先解决 wifi 问题。 代码:全选Serial.print(" nnn "); Serial.begin(9600); //Start with baud 9600 ESP8266.begin(9600); dht.begin(); startTime = millis(); ESP8266.println("AT+RST"); delay(2000); Serial.println("Connecting to Wifi"); while(check_connection==0) { Serial.print("."); ESP8266.print("AT+CWJAP=\"*******\",\"*************\"\r\n"); ESP8266.setTimeout(5000); if(ESP8266.find("WIFI CONNECTED\r\n")==1) { Serial.println("WIFI CONNECTED"); break; } times_check++; if(times_check>3) { times_check=0; Serial.println("Trying to Reconnect.."); } } } void loop() { waitTime = millis()-startTime; if (waitTime > (writingTimer*1000)) { // readSensors(); writeThingSpeak(); startTime = millis(); } } //void readSensors(void) //{ //temp_f = dht.readTemperature(); //humidity = dht.readHumidity(); // temp_f = temp.temperature(); //humidity = humidity.relative_humidity(); //} void writeThingSpeak(void) { float temp = 5; //faking sensor data to test wifi float humid = 6; //faking sensor data to test wifi startThingSpeakCmd(); // preparacao da string GET String getStr = "GET /update?api_key="; getStr += myAPIkey; getStr +="&field1="; getStr += String(temp); getStr +="&field2="; getStr += String(humid); getStr += "\r\n\r\n"; GetThingspeakcmd(getStr); } void startThingSpeakCmd(void) { ESP8266.flush(); String cmd = "AT+CIPSTART=\"TCP\",\""; cmd += "184.106.153.149"; // api.thingspeak.com IP address cmd += "\",80"; ESP8266.println(cmd); Serial.print("Start Commands: "); Serial.println(cmd); if(ESP8266.find("Error")) { Serial.println("AT+CIPSTART error"); return; } } String GetThingspeakcmd(String getStr) { String cmd = "AT+CIPSEND="; cmd += String(getStr.length()); ESP8266.println(cmd); Serial.println(cmd); if(ESP8266.find(">")) { ESP8266.print(getStr); Serial.println(getStr); delay(500); String messageBody = ""; while (ESP8266.available()) { String line = ESP8266.readStringUntil('\n'); if (line.length() == 1) { messageBody = ESP8266.readStringUntil('\n'); } } Serial.print("MessageBody received: "); Serial.println(messageBody); return messageBody; } else { ESP8266.println("AT+CIPCLOSE"); Serial.println("AT+CIPCLOSE"); } } 代码:全选12:55:21.090 -> ⸮ Connecting to Wifi 12:55:24.654 -> ....Trying to Reconnect.. 12:55:44.774 -> ....Trying to Reconnect.. 12:56:04.923 -> ....Trying to Reconnect.. 12:56:25.087 -> ....Trying to Reconnect.. 12:56:45.223 -> . |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
133个成员聚集在这个小组
加入小组499浏览 6评论
413浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
395浏览 5评论
397浏览 4评论
370浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-15 20:19 , Processed in 0.457595 second(s), Total 41, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号