ESP i I2C

User avatar
shimano73
Posts: 805
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Thu Nov 17, 2016 9:27 am

Witam, udało mi się uruchomić I2C pod moją siódemkę. Niestety nie potrafię tego połączyć z suplą.
Myślałem że zadziała gdy użyję coś w rodzaju wirtualnych wyjść , niestety nie :(

byte numer=48 ;
pinMode(numer,OUTPUT);
SuplaDevice.addRelay(numer);

if (digitalRead(numer)==1) {
pcf8574.write(1,LOW );
}
else
pcf8574.write(1,HIGH );

działa tylko przy fizycznych gpio
User avatar
pzygmunt
Posts: 6190
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Thu Nov 17, 2016 12:48 pm

Wykorzystaj
setDigitalWriteFuncImpl(_impl_arduino_digitalWrite impl_arduino_digitalWrite);

i w callbacku dodaj własną obsługę
User avatar
shimano73
Posts: 805
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Thu Nov 17, 2016 5:04 pm

Jako ze nie jestem za bardzo obeznany , rozumiem ze ma to wyglądać podobnie jak obsługą temperatury i get_temperature ?
User avatar
pzygmunt
Posts: 6190
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Thu Nov 17, 2016 5:40 pm

Programujesz to przez Arduino IDE ?
User avatar
shimano73
Posts: 805
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Thu Nov 17, 2016 6:19 pm

Tak , po przez arduino
User avatar
pzygmunt
Posts: 6190
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Fri Nov 18, 2016 9:48 am

To wpinasz się w funkcję digitalWrite za pomocą setDigitalWriteFuncImpl

tam sprawdzasz do jakiego portu wywołanie się odwołuje i jeżeli dotyczy tego po i2c to robisz własną obsługę
User avatar
shimano73
Posts: 805
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Sat Nov 19, 2016 10:57 am

pzygmunt wrote:To wpinasz się w funkcję digitalWrite za pomocą setDigitalWriteFuncImpl

tam sprawdzasz do jakiego portu wywołanie się odwołuje i jeżeli dotyczy tego po i2c to robisz własną obsługę
podpowiedź nie do końca rozwiała mój problem za mało wiedzy, ale od czego jest opcja szukaj na forum i znalazłem to co potrzebowałem
i zrobiłem tak:

void suplaDigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
pcf8574.write(pin,val );

void setup() {
SuplaDevice.setDigitalWriteFuncImpl(&suplaDigitalWrite);
....


No i zadziałało :D , co prawda pojawił się inny problem ale to już w innym poscie :(
User avatar
shimano73
Posts: 805
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Thu Nov 24, 2016 5:33 pm

witam, problemy z układem ftdi jest , nie zaprzeczam ale nie do końca. Zauważyłem, że układ nie działa gdy przypisuje pewne nr pinów , tzn nr pinów (gpio) jakich nie ma w esp-07.
Konkretnie - układ działa gdy ustawię :
SuplaDevice.addRollerShutterRelays(2,3);
SuplaDevice.addRollerShutterRelays(4, 5);
SuplaDevice.addRollerShutterRelays(12,13) - w tym przypadku układ się loguje do sieci ale z oczywistych względów żaden pin pcf'a nie działa

a nie działa gdy ustawię :
SuplaDevice.addRollerShutterRelays(6, 7);
SuplaDevice.addRollerShutterRelays(0,1);

w czym może być problem, w załączniku cały program
Attachments
proba.zip
(2.1 KiB) Downloaded 46 times
User avatar
shimano73
Posts: 805
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Fri Nov 25, 2016 2:15 pm

Niestety cp2102 na pokładzie a supla nie pracuje.
Tak jak pisałem wyżej supla nie działa gdy ustawię :
SuplaDevice.addRollerShutterRelays(6, 7);
SuplaDevice.addRollerShutterRelays(0,1);
Supla nie działa ,ale działa migajaca dioda wstawiona w pętli loop, :(
User avatar
shimano73
Posts: 805
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Fri Nov 25, 2016 2:20 pm

Niestety cp2102 na pokładzie a supla nie pracuje.
Nie ma błedu zapisu.
Tak jak pisałem wyżej supla nie działa gdy ustawię :
SuplaDevice.addRollerShutterRelays(6, 7);
SuplaDevice.addRollerShutterRelays(0,1);
Supla nie działa ,ale działa migajaca dioda wstawiona w pętli loop, :(
Dziwne jest to że w ESP właczył się AP :? , ale pod adresem 192.168.4.1 nic sie nie wyswietla - strona nie dostępna
Post Reply