Liczba postów: 7
Liczba wątków: 3
Dołączył: Dec 2018
Reputacja:
0
Witam. Pracuje nad projektem do którego potrzebuje nawiązać połączenie między modułem wifi esp8266 a apką w kivy(python) napisaną na telefon. Problem w tym ze nie wiem jak się połączyć. Robił już ktoś cos takiego i moze wie jak mi pomóc? Client server? Json? Urlrequest? Komunikacja musi byc zapewniona w obydwie strony
Liczba postów: 178
Liczba wątków: 12
Dołączył: Feb 2018
Reputacja:
7
Blynk ? Virtuino ? Po co wyważać otwarte drzwi jak są gotowe, darmowe i bardzo dobre rozwiązania ?
Liczba postów: 2,367
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
Zależy co umiesz zrobić na telefon w pytonie, na esp możesz postawić sobie serwer telnet, UDP, websockets i jak sobie wymyślisz coś innego sensownego to pewnie już jest do tego przykład. Do wszystkiego znajdziesz przykłady w google. Na początek przejrzyj już wbudowane przykłady.
Liczba postów: 7
Liczba wątków: 3
Dołączył: Dec 2018
Reputacja:
0
#include <SoftwareSerial.h>
const byte rxPin = 2; // Wire this to Tx Pin of ESP8266
const byte txPin = 3; // Wire this to Rx Pin of ESP8266
// We'll use a software serial interface to connect to ESP8266
SoftwareSerial esp(rxPin, txPin);
void setup() {
Serial.begin(9600);
esp.begin(9600); // Change this to the baudrate used by ESP8266
delay(1000); // Let the module self-initialize
}
void loop() {
Serial.println("Sending an AT command...");
esp.println("AT");
delay(30);
while (esp.available()){
String inData = esp.readStringUntil('\n');
Serial.println("Got reponse from ESP8266: " + inData);
}
}
ESP ARDUINO
GND GND
CH_PD 3v3
VCC 3v3
RX 3
TX 2
Takim połączeniem dostaje odpowiedź OK ze moduł esp8266 jest widoczny.
Z kolei takim połączeniem uzyskałem komunikacje client-server z aplikacja na laptopie.
Esp8266 | Arduino
-----------------
RX | RX
TX | TX
GND | GND
VCC | 5v
CH_PD | 5v
GPIO 0 | None
GPIO 2 | None
Arduino | Arduino
-----------------
Reset | GND
#include "ESP8266WiFi.h"
const char* ssid = "yourNetworkName";
const char* password = "yourNetworkPass";
WiFiServer wifiServer(80);
void setup() {
Serial.begin(115200);
delay(1000);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting..");
}
Serial.print("Connected to WiFi. IP:");
Serial.println(WiFi.localIP());
wifiServer.begin();
}
void loop() {
WiFiClient client = wifiServer.available();
if (client) {
while (client.connected()) {
while (client.available()>0) {
char c = client.read();
Serial.write©;
}
delay(10);
}
client.stop();
Serial.println("Client disconnected");
}
}
Wykorzystujac ten kod.
Teraz problem w tym że mam kilka czujników wilgotnosci i temperatury z których chce odczytywać dane poprzez arudino i potem wysyłać je dalej esp8266 do clienta ktory się podłączy do servera postawionego na tym esp8266.
Problem w tym ze nie wiem jak to wykonać. Próbowałem paru rzeczy ale nie działa.