Arduino Mega i pamięć FRAM

fadamako
Posts: 25
Joined: Sun Mar 26, 2017 9:01 am

Post

Hehe :-D
Tak mam dokładnie adafruit FRAM 64Kbit SPI.
Niestety tylko jedną sztukę.
W sumie to do czasu kiedy roletki z Arduino i FRAM-em nie będą działać mogę ją pożyczyć ;-)
Jeśli nie będzie różnicy przy konfiguracji mojej pamięci i tej z allegro o której piszesz to mogę ją dla Ciebie zamówić :-)
Podeślij tylko adres do wysyłki :-)
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

fadamako wrote: Tue Jul 21, 2020 1:28 pm Hehe :-D
Tak mam dokładnie adafruit FRAM 64Kbit SPI.
Niestety tylko jedną sztukę.
W sumie to do czasu kiedy roletki z Arduino i FRAM-em nie będą działać mogę ją pożyczyć ;-)
Jeśli nie będzie różnicy przy konfiguracji mojej pamięci i tej z allegro o której piszesz to mogę ją dla Ciebie zamówić :-)
Podeślij tylko adres do wysyłki :-)
Spoko, zakupię sobie. Chciałem tylko od razu robić "pod klienta" :D
Tę z allegro też kupię, ale ona ma tylko 512 B i jest na I2C, więc pewnie sterownik trzeba będzie osobny napisać.
Najlepsze suple dla Twojego domu :mrgreen:
Maniek913
Posts: 593
Joined: Thu Feb 22, 2018 9:46 pm

Post

Mój pająk :D tez czeka na rozwiązanie .
Jak by co to chętnie przetestuję.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Maniek913 wrote: Tue Jul 21, 2020 5:53 pm Mój pająk :D tez czeka na rozwiązanie .
Jak by co to chętnie przetestuję.
Też masz tego Adafruid SPI 64 kB FRAM?
Najlepsze suple dla Twojego domu :mrgreen:
Maniek913
Posts: 593
Joined: Thu Feb 22, 2018 9:46 pm

Post

fadamako
Posts: 25
Joined: Sun Mar 26, 2017 9:01 am

Post

Witam Panowie,
Czy są już jakieś ruchy w powyższym temacie?
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

fadamako wrote: Mon Aug 31, 2020 8:25 pm Witam Panowie,
Czy są już jakieś ruchy w powyższym temacie?
Tak, są ruchy, tylko czasu brakuje. Planowałem:
- przepisać obsługę rolet na nową wersję biblioteki
- dodać obsługę zapisywania stanu rolet i ich konfiguracji do dowolnej pamięci
- zrobić interfejs dla eeprom, flash, fram do poprzedniego punktu

Aktualnie FRAM ze zlutowanymi pinami leży na biurku ;). Rolety są przepisane, jestem w trakcie robienia obsługi zapisywania stanu do dowolnej pamięci.
Teraz powinienem mieć kilka spokojniejszych wieczorów, to może coś się "urodzi" :)
Najlepsze suple dla Twojego domu :mrgreen:
fadamako
Posts: 25
Joined: Sun Mar 26, 2017 9:01 am

Post

Ślicznie dziękuję za informację.
Nie mogę się już doczekać :D
Maniek913
Posts: 593
Joined: Thu Feb 22, 2018 9:46 pm

Post

fadamako wrote: Tue Sep 01, 2020 2:53 am Ślicznie dziękuję za informację.
Nie mogę się już doczekać :D
Ja też :)
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

fadamako wrote: Tue Sep 01, 2020 2:53 am Ślicznie dziękuję za informację.
Nie mogę się już doczekać :D
Maniek913 wrote: Tue Sep 01, 2020 6:03 am Ja też :)
UWAGA: wersja BETA

Dodałem do biblioteki wspracie dla rolet oraz zapisywania do pamięci FRAM, EEPROM (flash dla ESP) (na razie dostępne tutaj: https://github.com/klew/arduino - do oficjalnego repo będzie dodane później).
Chętnych zapraszam do testowania. W kwesti zapisywania różnych danych do pamięci, będzie jeszcze dużo zmian i dodatków. Na chwilę obecną zapisują się tam tylko dane o roletach (czasy otwierania, zamykania i aktualna pozycja).

EEPROM/flash testowany na Arduino Mega i na ESP8266 (Wemos).
FRAM SPI (od Adafruit) testowany na razie tylko na Arduino Mega (na hardware SPI oraz na software SPI).

Przykładowy program:

Code: Select all

/*
  Copyright (C) AC SOFTWARE SP. Z O.O.
  
  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; either version 2
  of the License, or (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

#include <SPI.h>
#include <SuplaDevice.h>
#include <supla/control/roller_shutter.h>
#include <supla/control/button.h>
#include <supla/storage/fram_spi.h>
// #include <supla/storage/eeprom.h>

#define SUPLA_STORAGE_OFFSET 0
#define FRAM_CS 43    // pin for FRAM CS

Supla::FramSpi fram(FRAM_CS, SUPLA_STORAGE_OFFSET);
// Supla::FramSpi fram(24, 22, 23, FRAM_CS, SUPLA_STORAGE_OFFSET); // <- sofrware spi, piny (SCK, MISO, MOSI, CS)

// Supla::Eeprom fram(SUPLA_STORAGE_OFFSET);

// Choose proper network interface for your card:
// Arduino Mega with EthernetShield W5100:
#include <supla/network/ethernet_shield.h>
// Ethernet MAC address
uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
Supla::EthernetShield ethernet(mac);
//
// ESP8266 based board:
// #include <supla/network/esp_wifi.h>
// Supla::ESPWifi wifi("your_wifi_ssid", "your_wifi_password");
//

void setup() {

  Serial.begin(115200);

  // Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
 
  Supla::Control::RollerShutter *rs = new Supla::Control::RollerShutter(30, 31, false);
  Supla::Control::Button *buttonOpen = new Supla::Control::Button(28, true, true);
  Supla::Control::Button *buttonClose = new Supla::Control::Button(29, true, true);

  buttonOpen->willTrigger(*rs, Supla::ON_PRESS, Supla::OPEN_OR_STOP);
  buttonClose->willTrigger(*rs, Supla::ON_PRESS, Supla::CLOSE_OR_STOP);
  
  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    "svr1.supla.org",  // SUPLA server address
                    "email@address",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key    
}

void loop() {
  SuplaDevice.iterate();
}
W klasach "storage" można podać "offset" - jeśli coś już przechowujecie w pamięci i chcecie, aby SuplaDevice przesunąła się dalej, to ustawcie to na odpowiednią wartość.

SuplaDevice używa aktualnie 15 bajtów + ilość rolet razy 9 bajtów.
You do not have the required permissions to view the files attached to this post.
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Pomoc”