Skocz do zawartości

Ranking

  1. sihox

    sihox

    Members


    • Punkty

      2

    • Postów

      142


  2. cml

    cml

    Members


    • Punkty

      1

    • Postów

      1 265


  3. wena

    wena

    Members


    • Punkty

      1

    • Postów

      3 283


  4. Thorgall

    Thorgall

    Members


    • Punkty

      1

    • Postów

      730


Popularna zawartość

Treść z najwyższą reputacją w 2018.11.23 uwzględniając wszystkie działy

  1. No właśnie widziałem ten kod ale jakoś konkretne liczby nic mi nie powiedziały Co do kalkulatorów to jednak zwykle korzystam z brewersfriend - elegancko opisują z jakich reguł / formuł korzystają i w jakim celu stosują pewne korekty / założenia / itp.
    2 punkty
  2. Wygląda jak zwykła piana na tym co widać. Pewnie za dzień, dwa widocznie opadnie. Jaka temperatura fermentacji?
    1 punkt
  3. Szanowni. Postanowiłem podzielić się z Wami moim doświadczeniem z bezprzewodową komunikacją pomiędzy CrafbeerPi a modułami opartymi o ESP8266. Pytał o to w kwietniu @pan_czarny, ale nie dostał odpowiedzi i nie wiem czy ciągnął temat. Mi się udało, więc spisuję to dla potomnych - może ktoś będzie chciał zrobić to u siebie. Możecie zapytać - "po co" - na przykład po to, żeby podpiąć pod CBPi termostat do fermentora bez ciągania kabli po mieszkaniu (ja na przykład fermentuję na balkonie). Zatem od początku. Do komunikacji będziemy wykorzystywać protokół MQTT. Bardzo prosty i lekki protokół powszechnie wykorzystywany w IoT. Część CBPi 1. W sekcji Add-Ons instalujemy plugin MQTT 2. W informacjach o pluginie jest link do GitHuba i instrukcje instalacji Mosquitto - brokera MQTT oraz biblioteki MQTT do pythona. 3. W sekcji "Hardware Settings" Dodajemy MQTT_SENSOR. Trzeba zapamiętać jaki wpisaliśmy Topic. To będzie ważne na etapie oprogramowania ESP8266. 4. Dodajemy również MQTT_ACTOR z zastrzeżeniem z punktu powyżej. 5. Dodajemy fermentor 6. ESP8266. Wyjaśnienia zawarte są w komentarzach w samym kodzie. Pamiętajmy, żeby malinka i esp8266 były w tej samej sieci (ta sama klasa IP) #include <PubSubClient.h> #include <ESP8266WiFi.h> //////////////////////////Sterowanie wbudowaną GPIO (w tym wypadkudiodą LED za pomocą MQTT. Wysyłanie wartości zmiennej temp za pomocą MQTT (wartośią zmiennej temp może być odczyt temperatury z termometru///// const char* ssid = "*************"; //SSID twojej sieci WiFi const char* password = "*************"; //Hasło do twojej sieci WiFi char* topic_receive = "fermentor_heat"; // ustawiam wartość zmiennej "topic" - to jest nagłowek mqtt, którego wartość chcemy odczytywać z serwera char* topic_send = "fermentor"; // ustawiam wartość zmiennej "topic" - to jest nagłowek mqtt, do którego wartość chcemy przypisać wartość wysyłaną na serwer char* server = "*************"; // adres serwera mqtt, który jest uruchomiony w twojej sieci wewnętrznej. Na przykład na malince z CBPi char message_buff[100]; // inicjalizowanie bufora void callback(char* topic, byte* payload, unsigned int length); WiFiClient wifiClient; PubSubClient client(server, 1883, callback, wifiClient); //Ustawiania parametrów tablicy, w której będzie zapisana przychodząca wiadomość. Treść wiadomości to: {"state": "on"} lub {"state": "off"}. Wiadomość ma 15 lub 16 znaków, więc tablica musi być 16 bitowa. String macToStr(const uint16_t* mac) { String result; for (int i = 0; i <= 16; ++i) { result += String(mac[i], 16); } return result; } void setup() { Serial.begin(115200); delay(10); // przygotowuję GPIO2 *************************************************************************************** pinMode(2, OUTPUT); // Używam GPIO 2 aby sterowa wbudowaną diodą LED. Zmien wartość aby sterować innym GPIO digitalWrite(2, 0); //************************************************************************************** Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); 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()); float temperatura = 23.45; // na potrzeby tego tutoriala nadajemy zmiennej float (dokładność 6 - 7 cyfr po przecinku) wartość, która może też pochodzić ze wskazania termometru char temp[8]; // tworzymy zmienną char o długości. Zmienna ma za zadanie przechować wartość miennej float po przekonwertowaniu na char. dtostrf(temperatura, 6, 2, temp); // konwerujemy zmienną float (temperatura) na zmienną char (temp). Musimy to zrobić, bo MQTT obsługuje wiadomości w stringach. // sprawdzamy połączenie z brokerem MQTT if (client.connect("arduinoClient")) { client.publish("fermentor", temp); // wysyłam naszą teperaturę do CBPi z nagłówkiem tematu "fermentor" client.subscribe("fermentor_heat"); // subskrybujemy się do tematu "fermentor_heater" i oczekujemy wiasomosci od CBPi } } void loop() { client.loop(); } void callback(char* topic, byte* payload, unsigned int length) { int i = 0; Serial.println("Message arrived: topic: " + String(topic)); Serial.println("Length: " + String(length, DEC)); for (i = 0; i < length; i++) { message_buff[i] = payload[i]; } message_buff[i] = '\0'; String msgString = String(message_buff); Serial.println("Payload: " + msgString); int state = 0; // ustawiam stan początkowy GPIO 2 na 0 Serial.println (state); if (msgString == "{\"state\": \"off\"}") { // jeżeli przyszła wiadomość o treści {"state": "on"} wyślij stan 1 na pin 2. Jak widać wiadomość jest otoczona backslashami i cudzysłowami. Musi tak zostać bo inaczjej jest traktowana jako polecenie. digitalWrite(2, 1); } if (msgString == "{\"state\": \"on\"}") { // jeżeli przyszła wiadomość o treści {"state": "on"} wyślij stan 0 na pin 2. Jak widać wiadomość jest otoczona backslashami i cudzysłowami. Musi tak zostać bo inaczjej jest traktowana jako polecenie. digitalWrite(2, 0); } } W razie pytań postaram się pomóc I na koniec demonstracja https://photos.app.goo.gl/iFX9mfrf9um4bpiYA
    1 punkt
  4. Włącz sobie na Youtube,wykład Czesława Dziełaka "Dąb w piwowarstwie domowym". Wysłane z mojego Redmi 4A przy użyciu Tapatalka
    1 punkt
  5. Jest mi niezmiernie miło poinformować, że dziś uwarzyłem setną warkę
    1 punkt
  6. Gratulacje dla zwycięzców. W porterze oczywiście wygrał pewnie Krzysztof - to było do przewidzenia, szczególnie z perspektywy Cieszyna - gdzie miał 3 miejsce. No ale było ciasno, różnice 0,25 pkt to niewiele.
    1 punkt
  7. dokładnie, dodajmy że bez beczki poniżej 1 hekto, ściąganej z Flandrii nie ma szans zrobić dobrego piwa.
    0 punktów
  8. Jestes pewny? Cale forum od lat spozywa alkohol i chyba wszyscy maja sie dobrze ?
    0 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.