转到链接使用,如果条件使用Arduino IDE
问题描述:
我只是想让自己在这里“http://192.168.1.103:30000/?k=23&v=capture”,当条件符合其要求。转到链接使用,如果条件使用Arduino IDE
#include <ESP8266WiFi.h>
// I purposely don't include the ssid and ssid1 here
WiFiServer server(80);
void setup() {
pinMode(1, INPUT);
Serial.begin(115200);
delay(10);
Serial.println();
WiFi.softAP(ssid1, password1);
Serial.println(WiFi.localIP());
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// Start the server
server.begin();
Serial.println("Server started");
}
void loop() {
String link = "http://192.168.1.103:30000/?k=23&v=capture";
WiFiClient client = server.available();
if (!client) {
return;
}
int var = digitalRead(1);
if (var == HIGH) {
client.print(link);
}
比方说:
- 我已经运行的Chrome。
- 即使在Chrome上打字也无法调用上述链接?我想自动连接到它。
你可以教的任何方法?我感觉这个代码本身是错误的。 谢谢。
- 编辑 -
新代码,实现UNO
//language c++
#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x3F // Scanning address
LiquidCrystal_I2C lcd(I2C_ADDR, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
Servo Servo1;
int servopin = 9;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
// initialize the lcd for 16 chars 2 lines, turn on backlight
lcd.backlight(); // finish with backlight on
lcd.setCursor(3, 0); //Start at character 4 on line 0
lcd.print("WAITING...");
pinMode(12, OUTPUT); // pin LaserLight
pinMode(11, INPUT); // pin LaserDetector
pinMode(10, INPUT); // pin PIR
pinMode(9, OUTPUT); // pin Servo
pinMode(8, OUTPUT); // MCU PIN GPIO2
Servo1.attach(servopin);
}
void loop() {
digitalWrite(12, HIGH);
boolean inputlaser = digitalRead(11);
boolean inputpir = digitalRead(10);
Serial.println(inputlaser);
Serial.println(inputpir);
if (inputlaser < 1) {
digitalWrite(8, HIGH);
lcd.setCursor(0, 0);
lcd.print("camera on");
lcd.setCursor(0, 1);
lcd.print("robber!");
delay(5000);
Servo1.write(180);
} else if (inputpir > 0) {
Servo1.write(180);
lcd.setCursor(0, 0);
lcd.print("robber inside!");
lcd.setCursor(0, 1);
lcd.print("HELP ROBBER!");
delay(500);
} else {
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("standby...");
delay(500);
}
}
新代码,实现MCU
#include <ESP8266WiFi.h>
char server[] = "192.168.1.103";
WiFiClient client;
void setup() {
pinMode(4, INPUT);
digitalWrite(4, LOW);
Serial.begin(115200);
delay(10);
Serial.println();
WiFi.softAP(ssid1, password1);
Serial.println(WiFi.localIP());
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
boolean var = digitalRead(4);
if (var == HIGH) {
client.connect(server, 30000);
Serial.println("connected");
// Make your API request:
client.println("GET /?k=23&v=capture");
client.println("Host: 192.168.1.103");
client.println("Connection: close");
client.println();
} else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
Serial.println(digitalRead(4));
}
答
首先明白一个事实,你并不需要谷歌浏览器请求网站。
client.println("GET /?k=23&v=capture");
client.println("Host: 192.168.1.103");
你在上面行做的是你请求/?k=23&v=capture
在IP地址192.168.1.103
讨论内容,Actully这是当你使用谷歌浏览器,你做什么。在个人电脑上,你需要一个谷歌浏览器(或任何其他浏览器)来访问网站,因为它每次都很难请求使用命令(认为使用http命令而不是使用chrome来请求单个页面,哦,那很糟糕)。因此,了解Chrome不需要访问网站。
+0
接受和upvote如果我的帖子是有帮助的,让它帮助有类似疑问的人 – Billa
请给出有关您的问题的更多信息。你是什么意思我运行chrome?你在哪里运行chrome?来自arduino?你的问题说你不擅长网站的概念。什么是感觉你的代码错误的原因,请提供你现在得到的输出,当你运行上述程序 – Billa
哦,是的,我忘了,我手动运行chrome,我想我解决了它,但我遇到新的问题...我使用UNO和MCU 我提出的概念是这样的: 1.我使用UNO处理输入和输出 2.我使用MCU连接到我的智能手机,使用上面提到的链接和参数 3.所以当传感器反应它给我的UNO输入并输入给我的MCU,然后当MCU从UNO得到输入时,它运行智能手机上面的链接和参数,开始记录 4.但是我的智能手机记录在编译和上传完成后自动运行 5 。我意识到铬不是必需的 – fis
stil你没有提到新的问题?但我认为你对某些事实感到困惑。我会解释它。 – Billa