Canwing CW001 + OLED + BME280

dobo
Posty: 204
Rejestracja: ndz kwie 07, 2019 8:14 pm

sob wrz 28, 2019 6:57 pm

Proszę o pomoc w napisaniu programu dla zestawu jak w temacie. Sprzęt ma sterować oświetleniem w pokojach dodatkowo pokazując parametry z czujnika BME.
Od strony sprzętowej problemów nie przewiduję bardziej pomocy potrzebuję od strony programowej.
Jedynie zastanawiam się czy takie podłączenie sprzętowe BME i OLED nie będzie robiło problemów z temperaturą czy taki OLED w jakiś sposób się nagrzewa.
Dobre 2 lata temu bawiłem się w pisanie prostych programików w Bascom na Attiny i Atmegę i jakoś to szło.
Z Arduino IDE nie miałem kompletnie styczności. Zainstalowałem arduino-1.8.10-windows dodałem bibliotekę ArduinoSuplaDevice.zip i co dalej.

Szukam czystego kodu do sonoff Basic bo ponoć Canwing i Sonoff mają takie same ustawienia GPIO.
Ogólnie moja nauka polegała na porównywaniu kodów znalezionych w sieci i wyciągania z nich potrzebnych linijek - tu może być większy problem i proszę o wsparcie.

Od strony sprzętowej wygląda to jak na zdjęciach
IMG_20190928_192301.jpg
IMG_20190928_192301.jpg (151.52 KiB) Przejrzano 402 razy
IMG_20190928_192017.jpg
IMG_20190928_192017.jpg (166.24 KiB) Przejrzano 402 razy
IMG_20190928_190217.jpg
IMG_20190928_190217.jpg (245.08 KiB) Przejrzano 402 razy

OLED jaki i BME280 chciałbym aby komunikowały się przez port TX i RX podobnie jak w paru projektach, które napisał @Zybi.
Takie rozwiązanie w Canwing ułatwia stronę sprzętową, nie trzeba bawić się w wyciąganie SCK i SDA by podłączyć OLEDa i BME.


Tak jak napisałem na początku pierwszy problem to czysty kod do sonofa basic - od 3 godzin znajduję same binarki, a wyszukiwarka na stronie nie bardzo pomaga bo albo pokazuje za dużą częstotliwość występowania szukanego słowa albo trafiam właśnie na same binarki.
dobo
Posty: 204
Rejestracja: ndz kwie 07, 2019 8:14 pm

ndz wrz 29, 2019 8:32 am

Wreszcie po nocnych poszukiwaniach znalazłem temat ESP8266 Primary GUI @Espablo oraz przerobioną wersję ESP8266 Primary GUI v2 @krycha88.
Przy próbie weryfikacji i kompilacji obu wersji natknąłem się na kolejny problem bo oba kody nie chcą się skompilować. Dodawałem potrzebne biblioteki, które podczas kompilacji wskazywały, że brakuje (Onewire, DHT, DallasTemperature) ale na ('SuplaDeviceCallbacks' has no member named 'read_supla_relay_state') utknąłem i dalsza kompilacja stanęła.

Kod: Zaznacz cały

UWAGA: biblioteka SuplaDevice działa na architekturze(/architekturach) avr i może nie być kompatybilna z obecną płytką która działa na architekturze(/architekturach) esp8266.
C:\Users\Artur\Desktop\Primary_GUI\Primary_GUI.ino: In function 'SuplaDeviceCallbacks supla_arduino_get_callbacks()':

Primary_GUI:240:6: error: 'SuplaDeviceCallbacks' has no member named 'read_supla_relay_state'

   cb.read_supla_relay_state = &read_supla_relay_state;

      ^

Primary_GUI:241:6: error: 'SuplaDeviceCallbacks' has no member named 'save_supla_relay_state'

   cb.save_supla_relay_state = &save_supla_relay_state;

      ^

C:\Users\Artur\Desktop\Primary_GUI\Primary_GUI.ino: In function 'void add_Relay_Button(int, int, int)':

Primary_GUI:500:15: error: 'class SuplaDeviceClass' has no member named 'addRelayButton'

   SuplaDevice.addRelayButton(relay, button, type, read_supla_relay_flag(nr_relay));

               ^

C:\Users\Artur\Desktop\Primary_GUI\Primary_GUI.ino: In function 'void add_Relay_Button_Invert(int, int, int)':

Primary_GUI:513:15: error: 'class SuplaDeviceClass' has no member named 'addRelayButton'

   SuplaDevice.addRelayButton(relay, button, type, read_supla_relay_flag(nr_relay), true);

               ^

Znaleziono wiele bibliotek w "EEPROM.h"
Wykorzystane: C:\Users\Artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\EEPROM
Znaleziono wiele bibliotek w "DoubleResetDetector.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\DoubleResetDetector
Znaleziono wiele bibliotek w "SuplaDevice.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\SuplaDevice
Znaleziono wiele bibliotek w "DallasTemperature.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\DallasTemperature
Znaleziono wiele bibliotek w "DHT.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\DHT_sensor_library
Znaleziono wiele bibliotek w "Adafruit_Sensor.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\Adafruit_Unified_Sensor
Znaleziono wiele bibliotek w "ESP8266WiFi.h"
Wykorzystane: C:\Users\Artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WiFi
Znaleziono wiele bibliotek w "ESP8266WebServer.h"
Wykorzystane: C:\Users\Artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WebServer
Znaleziono wiele bibliotek w "ESP8266HTTPUpdateServer.h"
Wykorzystane: C:\Users\Artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266HTTPUpdateServer
Znaleziono wiele bibliotek w "OneWire.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\OneWire
exit status 1
'SuplaDeviceCallbacks' has no member named 'read_supla_relay_state'
krycha88
Posty: 651
Rejestracja: pt lis 16, 2018 7:25 am

ndz wrz 29, 2019 8:47 am

dobo pisze:
ndz wrz 29, 2019 8:32 am
Wreszcie po nocnych poszukiwaniach znalazłem temat ESP8266 Primary GUI @Espablo oraz przerobioną wersję ESP8266 Primary GUI v2 @krycha88.
Przy próbie weryfikacji i kompilacji obu wersji natknąłem się na kolejny problem bo oba kody nie chcą się skompilować. Dodawałem potrzebne biblioteki, które podczas kompilacji wskazywały, że brakuje (Onewire, DHT, DallasTemperature) ale na ('SuplaDeviceCallbacks' has no member named 'read_supla_relay_state') utknąłem i dalsza kompilacja stanęła.

Kod: Zaznacz cały

UWAGA: biblioteka SuplaDevice działa na architekturze(/architekturach) avr i może nie być kompatybilna z obecną płytką która działa na architekturze(/architekturach) esp8266.
C:\Users\Artur\Desktop\Primary_GUI\Primary_GUI.ino: In function 'SuplaDeviceCallbacks supla_arduino_get_callbacks()':

Primary_GUI:240:6: error: 'SuplaDeviceCallbacks' has no member named 'read_supla_relay_state'

   cb.read_supla_relay_state = &read_supla_relay_state;

      ^

Primary_GUI:241:6: error: 'SuplaDeviceCallbacks' has no member named 'save_supla_relay_state'

   cb.save_supla_relay_state = &save_supla_relay_state;

      ^

C:\Users\Artur\Desktop\Primary_GUI\Primary_GUI.ino: In function 'void add_Relay_Button(int, int, int)':

Primary_GUI:500:15: error: 'class SuplaDeviceClass' has no member named 'addRelayButton'

   SuplaDevice.addRelayButton(relay, button, type, read_supla_relay_flag(nr_relay));

               ^

C:\Users\Artur\Desktop\Primary_GUI\Primary_GUI.ino: In function 'void add_Relay_Button_Invert(int, int, int)':

Primary_GUI:513:15: error: 'class SuplaDeviceClass' has no member named 'addRelayButton'

   SuplaDevice.addRelayButton(relay, button, type, read_supla_relay_flag(nr_relay), true);

               ^

Znaleziono wiele bibliotek w "EEPROM.h"
Wykorzystane: C:\Users\Artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\EEPROM
Znaleziono wiele bibliotek w "DoubleResetDetector.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\DoubleResetDetector
Znaleziono wiele bibliotek w "SuplaDevice.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\SuplaDevice
Znaleziono wiele bibliotek w "DallasTemperature.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\DallasTemperature
Znaleziono wiele bibliotek w "DHT.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\DHT_sensor_library
Znaleziono wiele bibliotek w "Adafruit_Sensor.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\Adafruit_Unified_Sensor
Znaleziono wiele bibliotek w "ESP8266WiFi.h"
Wykorzystane: C:\Users\Artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WiFi
Znaleziono wiele bibliotek w "ESP8266WebServer.h"
Wykorzystane: C:\Users\Artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266WebServer
Znaleziono wiele bibliotek w "ESP8266HTTPUpdateServer.h"
Wykorzystane: C:\Users\Artur\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\libraries\ESP8266HTTPUpdateServer
Znaleziono wiele bibliotek w "OneWire.h"
Wykorzystane: C:\Users\Artur\Documents\Arduino\libraries\OneWire
exit status 1
'SuplaDeviceCallbacks' has no member named 'read_supla_relay_state'
W tych projektach musisz używać zmodyfikowanej biblioteki SuplaDevice, która również znajduje się w źródłach.

Na dniach dodam obsługę BME(w sumie mam to zrobione, ale czekam na nowy czujnik do testow)
Następnie dodam wsparcie dla OLEDa, nawet mam pomysł jak by to miało wygladac😀
dobo
Posty: 204
Rejestracja: ndz kwie 07, 2019 8:14 pm

ndz wrz 29, 2019 11:01 am

Czyli biblioteka z tego tematu viewtopic.php?f=23&t=3559 nie będzie pasowała do Primary_GUI nie wiem jak usunąć tą co dodałem z linka bo mi jej nie znajduje w zarządzaj bibliotekami choć widzę, że jest dodana. Wgrałem Twoją ale nie widzę jej osobno. Dopytywał się jeszcze o ESP8266TrueRandom więc spakowałem folder z plikami jako zip i dodałem tą bibliotekę.

I nadal występuje problem z SuplaDevice.

Nie ukrywam, że bardzo się cieszę z Twoich zapowiedzi odnośnie BME oraz OLED i będę wypatrywał się ich pojawienia.
Nie mniej jednak sam też będę chciał podziałać na kodzie ESP8266 Primary GUI Twoim jak i @Espablo aby się czegoś nauczyć choć są one już bardzo rozbudowane.

Na razie utknąłem w tym samym punkcie. Chyba, że muszę wywalić wszystko i zainstalować na nowo?
Jeśli tak to zabiorę się za to wieczorem bo teraz czeka na mnie 75m2 sufitu (na szczęście tylko na łączeniach i przy ścianach) do nakładania gładzi :(
krycha88
Posty: 651
Rejestracja: pt lis 16, 2018 7:25 am

ndz wrz 29, 2019 11:08 am

Linki podałem w pierwszym poście
viewtopic.php?f=11&t=5233
ODPOWIEDZ