Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'WIFI'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino, ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 4 wyniki

  1. Cześć, ostatnio ćwiczę trochę z pomiarami temperatury i wilgotności czyli DHT + ESP8266. Męczę różne konfigurację bazując na tym kodzie ze strony https://lastminuteengineers.com/esp8266-dht11-dht22-web-server-tutorial/ : #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include "DHT.h" // Uncomment one of the lines below for whatever DHT sensor type you're using! //#define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT21 // DHT 21 (AM2301) #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 /*Put your SSID & Password*/ const char* ssid = "YourNetworkName"; // Enter SSID here const char* password = "YourPassword"; //Enter Password here ESP8266WebServer server(80); // DHT Sensor uint8_t DHTPin = D8; // Initialize DHT sensor. DHT dht(DHTPin, DHTTYPE); float Temperature; float Humidity; void setup() { Serial.begin(115200); delay(100); pinMode(DHTPin, INPUT); dht.begin(); Serial.println("Connecting to "); Serial.println(ssid); //connect to your local wi-fi network WiFi.begin(ssid, password); //check wi-fi is connected to wi-fi network while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected..!"); Serial.print("Got IP: "); Serial.println(WiFi.localIP()); server.on("/", handle_OnConnect); server.onNotFound(handle_NotFound); server.begin(); Serial.println("HTTP server started"); } void loop() { server.handleClient(); } void handle_OnConnect() { Temperature = dht.readTemperature(); // Gets the values of the temperature Humidity = dht.readHumidity(); // Gets the values of the humidity server.send(200, "text/html", SendHTML(Temperature,Humidity)); } void handle_NotFound(){ server.send(404, "text/plain", "Not found"); } String SendHTML(float Temperaturestat,float Humiditystat){ String ptr = "<!DOCTYPE html> <html>\n"; ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n"; ptr +="<title>ESP8266 Weather Report</title>\n"; ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n"; ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;}\n"; ptr +="p {font-size: 24px;color: #444444;margin-bottom: 10px;}\n"; ptr +="</style>\n"; ptr +="</head>\n"; ptr +="<body>\n"; ptr +="<div id=\"webpage\">\n"; ptr +="<h1>ESP8266 NodeMCU Weather Report</h1>\n"; ptr +="<p>Temperature: "; ptr +=(int)Temperaturestat; ptr +="°C</p>"; ptr +="<p>Humidity: "; ptr +=(int)Humiditystat; ptr +="%</p>"; ptr +="</div>\n"; ptr +="</body>\n"; ptr +="</html>\n"; return ptr; } Mam jednak kilka uwag i pytań. Podczas podgrywania programu (lub resetu/wyłączenia zasilania) moduł dht musi być odłączony od układu ESP. W innym wypadku program się nie podegra (w przypadku resetu nie wystartują pomiary). Dodałem w kodzie, zasilanie układu dht, po kilku sekundach od podegrania/resetu, dzięki temu moduł DHT działa prawidłowo. Pytanie brzmi dlaczego tak się dzieje? Czy jest to jakiś konflikt na magistrali 1-wire?? Wyczytałem że dht korzysta z takiej właśnie (zmodyfikowanej) magistrali. Jeśli to jest ta przyczyna to może ktoś zna szczegóły? Jeśli to coś innego to co? Kolejna moja zagwozdka to czy jest możliwość podgarnia programu a dopiero później zadeklarować nazwę sieci i hasło? Myślałem wstępnie o wpisywaniu tego przez konsolę szeregową ale czy jest to możliwe? A jeśli tak to zapisy do zmiennej a następnie reset całego układu i to wszystko wywołane z konsoli szeregowej? Ponieważ trochę się już nad tym zastanawiam proszę o jakąś podpowiedź. Pozdrawiam.
  2. 1. Wprowadzenie Pewnego dnia zapragnąłem stać się właścicielem lampki nocnej RGB, którą mógłbym sterować smartfonem przy wykorzystaniu przeglądarki internetowej. Z możliwością sterowania w przyszłości takimi systemami, jak Domoticz, czy też asystentem takim jak Google Home Mini, czy Alexa Amazon. Nie potrzebuje dużej mocy, aby na przykład móc czytać przy jej świetle literaturę piękną, a raczej preferuję podejście proekologiczne w zużyciu energii. Lampka ma pełnić funkcję głównie dekoracyjną tworząc przyjemny nastrój w pomieszczeniu. Przeglądając ofertę dostępnych na rynku rozwiązań doszedłem do wniosku, że ceny tego typu urządzeń są w moim mniemaniu bardzo wysokie, więc postanowiłem zbudować lampkę własnoręcznie. Moją uwagę przykuł jeden z modeli marki Xiaomi, a mianowicie Mi Bedside Lamp (cena to około 250 pln). Na tym projekcie będę bazował podczas budowy. Całość planuję wykonać z materiałów ekologicznych, oczywiście w miarę moich skromnych możliwości. 1.1. Lampka nocna Mi Bedside Lamp Silver. 1.2. Lampka nocna Mi Bedside Lamp Silver – schemat budowy wewnętrznej. 1.3. Lampka nocna Mi Bedside Lamp Silver – prezentacja wyglądu podświetlenia w różnych kolorach. 2. WS2812 Według producenta WS2812 jest on inteligentnym sterownikiem LED z wbudowanym źródłem światła. Bliższe rzeczywistości jest jednak stwierdzenie, że układ ten składa się zazwyczaj z diody RGB 5050 z wbudowanym w nią sterownikiem WS2811. Należy zaznaczyć, że rozwiązanie to produkowane jest wielu typach obudów. Ogromną zaletą takiego rozwiązania w przeciwieństwie do konwencjonalnych diod RGB jest możliwość szeregowego łączenia i sterowania niemalże dowolną liczbą diod za pomocą pojedynczego przewodu sygnałowego z cyfrowego pinu mikrokontrolera. 2.1. Schemat szeregowego połączenia WS2812. Na rynku dostępne jest wiele wersji WS2812 w różnych obudowach. Dość popularną wersją, która została wykorzystana tym w projekcie jest wersja WS2812B w obudowie 5050. Wersja WS2812 posiada sześć nóżek, natomiast wersja z dopiskiem B tylko cztery. Największą różnicą między modelami bez dopisku B i z dopiskiem jest zabezpieczenie przed odwrotnym podłączeniem zasilania diody dla wersji B, co w przypadku standardowej wersji skutkuje zniszczeniem elementu. 2.2. Pojedyncza dioda WS2812 w wersji obudowy 5050. 2.3. Pojedyncza dioda WS2812B w wersji obudowy 5050. 2.4. Schemat szeregowego łączenia WS2812B. Podczas pracy z WS2812 niezależnie od wersji należy pamiętać, aby: Nie przekraczać napięcia zasilania powyżej 5V, ponieważ uszkodzimy układ. Dodać kondensator elektrolityczny o pojemności od 100µF do 1000µF (na 6.3V lub wyższy) przy zasilaniu pierwszej diody. Dodać rezystor o wartości od 300Ω do 1kΩ pomiędzy mikrokontrolerem, a pierwszym pinem DIN i aby umieść go jak najbliżej diody. W miarę możliwości jak najbardziej skrócić odległość pomiędzy mikrokontrolerem, a pierwszą diodą. Nie podłączać diod przy włączonym zasilaniu. Jeśli nie mamy innego wyboru, to należy zachować kolejność: masa, zasilanie, linia sterująca, a odłączamy w odwrotnej kolejności. Jeżeli diody zasilane są z oddzielnego źródła zasilania, to najpierw należy doprowadzić zasilanie do diod, a następnie do mikrokontrolera. 3. Projekt i narzędzia Główną część lampy stanowi szklany słoik, wewnątrz są warstwy rozpraszające światło w postaci arkusza kalki technicznej i białego papieru. Całość została osadzona w kartonowej podstawie. Całość będzie składała się z: Szklany słoik, najlepiej wypiaskowany aby dobrze rozpraszał światło. Ja użyłem słoika Ikea Dropper, ale nada się każdy inny podobny. Ten, którego użyłem nie jest idealny, ponieważ nie jest w całości wypiaskowany. Kalka techniczna do rozpraszania światła. Pomaga uzyskać lepsze rozproszenie, zwłaszcza gdy piaskowanie nie jest całkowite. Kartka białego papieru A4. Również pomocna przy rozpraszaniu, warto wąski pasek umieścić przy tuż przy diodach. Karton, tektura. Do do budowy podstawy, jeśli nie umiemy sobie takiej podstawy wyrzeźbić na przykład z drewna lub nie mamy drukarki 3D. Klej biurowy, przeźroczysta taśma klejąca. Ładowarka z wyjściem USB 5V 1A+. Taka, jakiej używa się się do ładowania większości smartfonów. Kabel USB – micro USB o długości dostosowanej do własnych potrzeb. W projekcie zastosowałem taki o długość 100 cm. Kondensator elektrolityczny w przedziale od 100µF do 1000µF na 6.3V. W projekcie został użyty 1000µF 6.3V. Rezystor o wartości od 300Ω do 1kΩ. W projekcie został użyty 470Ω ¼W. Gniazdo wejściowe microUSB do zasilania układu. Z racji braku gniazda użyłem moduły TP4056, co daje dodatkową możliwość zastosowania w przyszłości zasilania bateryjnego z ogniw 18650. Koło / pierścień diod WS2812B + moduł ESP8266 (ESP-01 / ESP-01S) + łącznik ESP-01S/ESP-01 RGB LED. W tym konkretnym projekcie zostało użyte koło z 16 diodami. Lutownica lub stacja lutownicza, stop lutowniczy i topnik. Przewody, kilka cm. Cążki do metalu. Śrubokręt, nożyczki, czy inne narzędzia potrzebne do obróbki wybranego materiału. 3.1. Zestaw składający się z WS2812B, ESP-01 i łącznika. 4. Schemat połączeń Jeśli korzystamy z gotowego zestawu, to schemat połączeń jest bardzo prosty. 4.1. Schemat połączeń wszystkich podzespołów. 5. Kod i programowanie #include <adafruit_neopixel.h> #include <esp8266wifi.h> const char* ssid = "<nazwa_sieci_wifi>"; const char* password = "<haslo_do_sieci_wifi>"; Adafruit_NeoPixel strip = Adafruit_NeoPixel(16, 2, NEO_GRB + NEO_KHZ800); WiFiServer server(80); long aniMillis = 0; byte aniFlag = 0; void setup() { Serial.begin(115200); delay(100); strip.begin(); for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 0); strip.show(); } IPAddress ip(192, 168, 0, 100); IPAddress gateway(192, 168, 0, 1); IPAddress subnet(255, 255, 255, 0); WiFi.config(ip, gateway, subnet); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } server.begin(); } void loop() { while (WiFi.status() == WL_CONNECTED) { WiFiClient client = server.available(); if (!client) { return; } while (!client.available()) { delay(10); } String request = client.readStringUntil('\r'); client.flush(); if (request.indexOf("/off") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 0); strip.show(); } } // jasnosc if (request.indexOf("/b0") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setBrightness(30); strip.show(); } } if (request.indexOf("/b1") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setBrightness(128); strip.show(); } } if (request.indexOf("/b2") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setBrightness(255); strip.show(); } } // jasnosc end // kolory // bialy if (request.indexOf("/c0") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 255, 255, 255); strip.show(); } } // zoly if (request.indexOf("/c1") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 255, 255, 0); strip.show(); } } // pomaranczowy if (request.indexOf("/c2") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 255, 127, 0); strip.show(); } } // czerwony if (request.indexOf("/c3") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 255, 0, 0); strip.show(); } } // rozany if (request.indexOf("/c4") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 255, 0, 127); strip.show(); } } // magenta if (request.indexOf("/c5") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 255, 0, 255); strip.show(); } } // fioletowy if (request.indexOf("/c6") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 127, 0, 255); strip.show(); } } // niebieski if (request.indexOf("/c7") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 0, 0, 255); strip.show(); } } // blekitny if (request.indexOf("/c8") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 0, 127, 255); strip.show(); } } // cyjan if (request.indexOf("/c9") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 0, 255, 255); strip.show(); } } // wiosenna zielen if (request.indexOf("/c10") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 0, 255, 127); strip.show(); } } // zielony if (request.indexOf("/c11") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 0, 255, 0); strip.show(); } } // zielen chartreuse if (request.indexOf("/c12") > 0) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, 127, 255, 0); strip.show(); } } // kolory end client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); client.println(""); client.println(""); client.println(""); client.println("<title>Lampka</title>"); client.println("<meta charset="\"utf-8\"">"); client.println("<meta name="\"apple-mobile-web-app-capable\"" content="\"yes\"">"); client.println("<meta name="\"apple-mobile-web-app-status-bar-style\"" content="\"black\"">"); client.println("<meta name="\"robots\"" content="\"none\"">"); client.println("<meta name="\"viewport\"" content="\"width=device-width," initial-scale="1\"">"); client.println("<style>"); client.println("body {background: #313236; text-align: center; padding: 0; margin: 50px 0;}"); client.println("button {border: 0; font: bold 12px Verdana, sans-serif; color: #000000; width: 85px; height: 85px; border-radius: 50%;}"); client.println(".b0 {background: #000000; color: #ffffff;}"); client.println(".b1 {background: #949494;}"); client.println(".b2 {background: #bdbebd;}"); client.println(".b3 {background: #e9e9e9;}"); client.println(".c0 {background: rgb(255, 255, 255); margin-right: 266px;}"); // bialy client.println(".c1 {background: rgb(255, 255, 0);}"); // zolty client.println(".c2 {background: rgb(255, 127, 0);}"); // pomaranczowy client.println(".c3 {background: rgb(255, 0, 0);}"); //czerwony client.println(".c4 {background: rgb(255, 0, 127);}"); // rozany client.println(".c5 {background: rgb(255, 0, 255);}"); // magenta client.println(".c6 {background: rgb(127, 0, 255);}"); // fioletowy client.println(".c7 {background: rgb(0, 0, 255);}"); // niebieski client.println(".c8 {background: rgb(0, 127, 255);}"); // blekitny client.println(".c9 {background: rgb(0, 255, 255);}"); // cyjan client.println(".c10 {background: rgb(0, 255, 127);}"); // wiosenna zielen client.println(".c11 {background: rgb(0, 255, 0);}"); // zielony client.println(".c12 {background: rgb(127, 255, 0);}"); // zielen chartreuse client.println(".mgb4 {margin-bottom: 4px;}"); client.println(".mgb50 {margin-bottom: 50px;}"); client.println("</style>"); client.println(""); client.println(""); client.println("<a href="\"/b0\""><button class="\"b1" mgb50\"="">MIN</button></a>"); client.println("<a href="\"/b1\""><button class="\"b2" mgb50\"="">50%</button></a>"); client.println("<a href="\"/b2\""><button class="\"b3" mgb50\"="">MAX</button></a>"); client.println("<a href="\"/off\""><button class="\"b0" mgb50\"="">OFF</button></a><br>"); client.println("<a href="\"/c0\""><button class="\"c0" mgb4\"=""></button></a><br>"); client.println("<a href="\"/c1\""><button class="\"c1" mgb4\"=""></button></a>"); client.println("<a href="\"/c2\""><button class="\"c2" mgb4\"=""></button></a>"); client.println("<a href="\"/c3\""><button class="\"c3" mgb4\"=""></button></a>"); client.println("<a href="\"/c4\""><button class="\"c4" mgb4\"=""></button></a><br>"); client.println("<a href="\"/c5\""><button class="\"c5" mgb4\"=""></button></a>"); client.println("<a href="\"/c6\""><button class="\"c6" mgb4\"=""></button></a>"); client.println("<a href="\"/c7\""><button class="\"c7" mgb4\"=""></button></a>"); client.println("<a href="\"/c8\""><button class="\"c8" mgb4\"=""></button></a><br>"); client.println("<a href="\"/c9\""><button class="\"c9\""></button></a>"); client.println("<a href="\"/c10\""><button class="\"c10\""></button></a>"); client.println("<a href="\"/c11\""><button class="\"c11\""></button></a>"); client.println("<a href="\"/c12\""><button class="\"c12\""></button></a>"); client.println(""); client.println(""); delay(10); } setup(); } 6. Efekt końcowy Efekt końcowy prezentuje się tak, jak to widać na poniższych zdjęciach. Należy zaznaczyć, że w rzeczywistości podświetlenie jest bardziej jednolite, niż widać to na zdjęciach. Prawdopodobnie ekspozycja podczas robienia zdjęcia byłą zbyt długa, ale ciężko zrobić w inny sposób zdjęcia w nocy bez dobrego sprzętu. Obsługa lampki odbywa się przez interfejs sieciowy pod adresem 192.168.0.100. 6.1. Interfejs sieciowy pod adresem 192.168.0.100. 6.2. Wnętrze podstawy lampy. 6.3. Warstwy rozpraszające światło bez i z koszem. 6.4. Wybrane kolory.
  3. Telegram – darmowy, niekomercyjny bazujący na chmurze obliczeniowej komunikator internetowy. Użytkownicy mogą wysyłać wiadomości, zdjęcia, filmy, naklejki, nagrania oraz pliki różnego typu. Internet rzeczy od dawna wkracza w codzienne życie - inteligentny dom, inteligentny telewizor, a nawet inteligentny czajnik. Podstawą naszych projektów będzie płyta NodeMCU z wbudowanym układem ESP. Jak również małe rzeczy, które ma każdy inżynier elektronik: diody LED, przewody łączące, płytka prototypowa i przewód microUSB do flashowania i zasilania płyty. Schemat podłączenia: Krótka noga diody LED w ziemi, długa szpilka D3. Nie zapominaj, że płyta ma kilka cech w kategorii pinów, więc dołączam pinout. Dodanie nodemcu do Arduino IDE (połączenie pakietu esp8266). Instalacja pakietu ESP8266 będzie konieczna, abyśmy mogli pracować z nodemcu w IDE Arduino. Przed zainstalowaniem pakietu upewnij się, że nie masz zainstalowanej innej wersji. W przeciwnym razie pamiętaj o usunięciu go przed instalacją. A następnie wykonaj proste czynności: Uruchom środowisko programistyczne - Arduino IDE Otwórz ustawienia W polu "Dodatkowe linki do Menedżera płyt" wklej link do pakietu esp8266 http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json Idź do Narzędzia - Płyty- Menedżera płyt Przewiń w dół. Znajdź esp8266. Wybierz wersję 2.3.0. Zainstaluj. W Narzędzia - zakładka wybierz nodemcu. Reszta ustawień płyty zostanie ustawiona automatycznie. Zdjęcia są po-rosyjsku, ale interfejs jest taki sam. Zainstaluj bibliotekę telegram Aby nasz elektroniczny przyjaciel pojawił się na tablicy, będziesz potrzebować biblioteki https://github.com/CasaJasmina/TelegramBot-Library Tworzenie bota telegramu Nadszedł czas, aby stworzyć naszego cyfrowego przyjaciela, który będzie wiernie i łagodnie obsługiwał wszystkie nasze zespoły. Otwórz bot @BotFather. Aby utworzyć nowego bota write /newbot. Postępuj zgodnie z instrukcjami, wybierz nazwę i zaloguj się na nią, a na koniec skopiuj token bota, będziesz potrzebować go podczas flashowania tablicy nodemcu. Oprogramowanie Łączymy potrzebne biblioteki. #include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <TelegramBot.h> Wskazujemy pin diody, wifi sieć token bota. #define LED 0 //D3 const char* ssid = "ssid"; const char* password = "password"; const char BotToken[] = "token:token"; Wskazujemy bota WiFiClientSecure net_ssl; TelegramBot bot (BotToken, net_ssl); W void setup ustawiamy szybkość komunikacji z komputerem, spróbujemy połączyć się z Wi-Fi, wpisujemy adres IP urządzenia w sieci, uruchamiamy bota i konfigurujemy pinmode dla diody LED. void setup() { Serial.begin(9600); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println(WiFi.localIP()); bot.begin(); pinMode(LED, OUTPUT); } Patrzymy do void loop. Sprawdzamy, czy mamy nowe wiadomości. message m = bot.getUpdates(); Czytamy wiadomość i robimy odpowiednie żądanie. if (m.text.equals("on")){ digitalWrite(LED, HIGH); bot.sendMessage(m.chat_id, "The Led 1 is now ON"); }else if (m.text.equals("off")){ digitalWrite(LED, LOW); bot.sendMessage(m.chat_id, "The Led 1 is now OFF"); } Szkic: https://drive.google.com/open?id=1QAi0px4sz3RTfgBjZFvs_rP2KBU84z7O Wgrywamy szkic do płyty. Testujemy Gdy, szkic jest na płycie i obwód jest podłączony do źródła prądu, możemy przetestować urządzenie. Wyślijmy “on” lub “off” aby włączyć lub wyłączyć diodę. Druga część artykułu to prototyp domu inteligentnego. Przed rozpoczęciem montażu określmy funkcje tego urządzenia: Kontrola obciążenia AC Sterowanie taśmą LED RGB Informacje o wizycie w lokalu Ekran z notatkami i czasem Informacje o temperaturze, ciśnieniu i wilgotności gleby Pierwszym krokiem w montażu urządzenia wieloskładnikowego będzie praca z chłodzeniem, prototypowaniem i zasilaniem. Zalecam zainstalowanie na chipie radiatore esp12, ponieważ sam układ na płycie nodemcu nagrzewa się nawet bez podłączonych czujników. Planujemy podłączyć dużą liczbę urządzeń I / O i jednocześnie przesyłać dane przez Internet, co bez dodatkowego chłodzenia doprowadzi do awarii. Grzejnik jest mocowany w najprostszy możliwy sposób za pomocą dwustronnej taśmy przewodzącej ciepło (można ją kupić od Chińczyków za 2,5 USD). Jako grzejnik można użyć dowolnego profilu aluminiowego. 2) Dla wygody podłączenia płytki i urządzeń, proponuję podzielić standardową płytkę na części. Bierzemy jedną dużą płytkę i dzielimy ją na pół. Z jednej strony oderwij linię energetyczną. Bierzemy każdy kawałek sklejki i przyklejamy uzyskane części, jak sobie życzysz, ale radzę skupić się na drutach łączących. Dla wygody możesz podpisać linię energetyczną markerem. Najważniejszą częścią przygotowania do montażu - jest zasilianie. Powinno wystarczyć, więc bierzemy ładowarkę na 2 ampery. Wtyczka zasilania powinna być tak umieszczona, abyś mógł wygodnie pracować. Najpierw obróć niepotrzebny przewód USB do zasilacza. Z jednej strony powinna być wtyczka USB, az drugiej dwie nogi z 5 V i ziemią. Dołącz go do linii 5V. OD niej podłącz nodemcu za pomocą czarnego i czerwonego przewodów. 3.3V weźmiemy od płyty, bo ona ma przetwornik napięcia ams1117, który da 800mA, czego nam wystarczy. Weź od płytki 3,3 V i i podłączyć do odpowiedniej linii energetycznej za pomocą czarnych i pomarańczowych przewodów. Prace przygotowawcze zostały zakończone, oznacza to, że nadszedł czas, aby rozpocząć selekcję komponentów w celu rozwiązania tych celów. Zarządzanie gniazdami: aby kontrolować prąd przemienny, potrzebujemy relay. Zarządzanie paskiem LED RGB: aby kontrolować pasek LED, będziemy potrzebować 3 tranzystorów mosfet , 3 rezystorów o 100 om i 3 o 10 kom każdy. Fiksacja ruchu: aby fiksować ruch, potrzebujemy czujnika ruchu PIR. Informacje o temperaturze: do pomiaru temperatury użyjemy czujnika ds18b20. Informacje o ciśnieniu: do pomiaru ciśnienia użyjemy czujnika bmp180. Informacje o wilgotności gleby roślinnej: do pomiaru wilgotności gleby używamy odpowiedniego czujnika. Wyświetl czas i notatki: Aby wyświetlić czas i notatki, potrzebujesz ekranu LCD. Dodatkowe małe rzeczy Problem z breadboardem rozwiązany, ale do niego nadal potrzebne przewody tata-tata i tata-mama. Opornik 4,7 kΩ i pięć diody LED. Wybrano składniki. Łączmy je wszystkie razem. Przed montażem zwracam uwagę na to, że wszystkie moduły będą zasilane 5 woltami, z wyjątkiem ds18b20. Zasilanie uziemienia i taśmy LED muszą być podłączone. Koniecznie sprawdź adres ekranu i2c i adresy czujników temperatury. Oryginalny schemat i obrazek. Czas rzucić szkic na mikrokontroler. Zainstaluj wszystkie niezbędne biblioteki w IDE Arduino. Archiwum biblioteki można pobrać tutaj. Aby zainstalować, po prostu przenieś całą zawartość do folderu z bibliotekami. Uzupełnij adresy czujników temperatury, ekranu, pinów wszystkich modułów, ustawień sieci Wi-Fi, tokena bota. Szkic (nie zapomnij secrerts.h) Teraz, gdziekolwiek jesteś, możesz uzyskać informacje o swoim domu za pomocą telegram bota. Lista działań Relayon - włączyć rele Relayoff - wyłączyć rele Setnote text - zrobić notatkę na lcd Deletenote - usunąć notatkę RGB taśma Red - czerwony Green - zielony Blue - niebieski Off - wyłączyć taśmę Otrzymanie danych Pressure - ciśnienie Temp1 - temperatura pierwszego czujnika Temp2 - temperatura drugiego czujnika Plant - nawilżenie ziemi Last - ostatnia wizyta Timeon - czas uruchomienia systemu Łącząc odrobinę wyobraźni, możesz stworzyć wiele różnych ciekawych urządzeń, a Twój dom będzie naprawdę inteligentny. Na przykład kilka urządzeń z nodeMCU (i dowolną inną odpowiednią płytą) może wysyłać wiadomości o swoich wskaźnikach do telegramu-bota i reagować na te wskaźniki. Na przykład czujnik temperatury napisał do bota, że temperatura w pomieszczeniu wynosi 29 stopni Celsjusza. Urządzenie odpowiedzialne za włączenie wentylatora lub klimatyzatora rozważyło tę informację i zdecydowało włączyć lub wyłączyć chłodzenie, gdy stało się chłodniej. Jako zadanie domowe musisz wykonać automatyczną kontrolę odczytów z czujników, a w przypadku ważnych zdarzeń (gleba stała się sucha lub ktoś przyszedł do twojego domu), aby powiadomić cię przez telegram bota. Na wyniki muszą pisać w komentarzach. To bardzo interesujące, co zrobiłeś.
  4. Potrzebuję prosty przykład sterowania gniazdka WiFi z Peceta, najlepiej w Excel VBA. Ktoś poratuje? Wojciech G.
×
×
  • Utwórz nowe...