[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 15.08.22
Príspevky: 444
Témy: 195 | 195
Bydlisko: Poprad-okolie

Dnes vám predstavím môj historicky prvý Arduino projekt s vlastným Arduinom, pri ktorom som ho doplnil o Ethernet shield od Wiznetu - model W5100 a prostredníctvom neho som odosielal dáta do internetu ako klient. Projekt je starý tak 3 - 4 roky.
Princípom tohto článku je i poukázať, ako je možné dáta do internetu odosielať a spracúvavať ich. Článok obsahuje všetky potrebné zdrojové kódy. Odosielať budeme hodnoty o teplote, ktoré si vieme rozlíšiť od rovnakých senzorov indexom, a zapisovať budeme aj merania tlaku vzduchu a jeho vlhkosti.
Čo sa naučím v tomto článku?
    monitorovať teploty v domácnosti na OneWire zbernici
    monitorovať vlhkosť s digitálnym senzorom DHT12
    monitorovať atmosférický tlak po I2C zbernici s BMP280
    zapisovať hodnoty do MySQL databázy cez PHP kód v periodickom cykle

Čo pre projekt po technickej stránke potrebujem?
    Arduino Uno
    Ethernet Shield W5100
    2x DS18B20 (vonkajšie i vnútorné vyhotovenie)
    DHT12 (meranie vlhkosti)
    BMP280(meranie atmosférického tlaku)
    4,7Kohm odpor (resp. menší na základe vzdialenosti a impedancie obvodu)
    Webstránku s MySQL databázou

Schéma zapojenia:
Meteostanica s Arduino a Ethernetom vo Webclient móde
Senzory DS18B20 sú teplomery od firmy Dallas (Maxim), ktoré sú vo vyhotovení v puzdre TO-92 (ako tranzistor) alebo aj vodotesné v hliníkovej trubičke, kde je v skutočnosti takýto senzor iba vložený a gumou zamedzený prístup vody. Nakoľko je toto vyhotovenie vodotesné, je vhodné ho umiestniť aj do vonkajších podmienok, priamo do vody, či do pôdy bez akéhokoľvek rizika skratu po zaliatí vodou či podobne. Senzory pracujú v rozmedzí teplôt -55°C až 125°C. Najpresnejšie meranie garantuje výrobca medzi -10°C až 85°C, pri tomto meraní je odchýlka +-0,5°C. Pracovné napätie pre DS18B20 je 3,3V, alebo 5V.

Pri napájaní na 5V sa tieto senzory jemne ohrievajú, čo môže znepresniť meranie nad stanovenú odchýlku. Senzory sú najobľúbenejšie na takýto účel najmä cenou, ale i zaujímavosťou v podobe OneWire protokolu. Ako už názov napovedá, OneWire bude používať jeden drôt. V skutočnosti jedným drôtom tečie prúd i dáta (druhým drôtom samozrejme prepojíme zeme). Na jednom pine Arduina sa údaje čítajú od viacerých senzorov zároveň. Sú teda zapojené na jeden kábel OneWire! Táto zbernica komunikuje pomalšie, rýchlosťou 16kbps, no zato môže rozoznať a prijímať údaje až od 2na56 zariadení. OneWire protokol je možné použiť i po vodičoch krútenej dvojlinky. Niektoré zdroje hovoria, že po krútenej dvojlinke funguje OneWire až na 300 metrov! Nezabudnite využiť 4,7kΩ odpor pri zapojení.
Meteostanica s Arduino a Ethernetom vo Webclient móde
Každý senzor má svoj port, aby nedošlo ku kolízii, či zlému odpísaniu dát, teda ním môžeme jednoznačne identifikovať každý senzor v zapojení. Všetky majú index, ktorý je číslovaný od 0. Preto si starostlivo skontrolujte, z ktorého senzora teploty sa hodnota zaznamenáva, napríklad priložením prstov na senzor pre výraznejšiu zmenu teploty. Existujú aj príklady .ino súborov, ktoré dokážu vypísať všetky zariadenia zaznamenané na tejto zbernici. V zapojení je nutné využiť zbernicu I2C pre prečítanie analógových vstupov zo senzorov pre tlak vzduchu a pre vlhkosť vzduchu. Existuje niekoľko druhov DHT senzorov, ktoré sa líšia rozsahom merania vlhkosti. Ak by som to vedel pred nákupom, siahol by som určite po DHT22, ktorý dokáže merať vlhkosť od 0% až do 100%.


DHT12 je lacnejší variant, ktorý umožňuje merať vlhkosť vzduchu v rozsahu 20% až 95% s odchýlkou 1%. Tieto senzory dokážu merať aj teplotu, no túto možnosť som nevyužil z dôvodu využitia OneWire senzorov. Pracovné napätie senzora je 5V. Senzor obsahuje 4 nožičky, teda napájanie, zem, SCK a SCL. Sú to SPI piny, v skratke sa jedná o piny rozhrania, ktoré sa pripájajú na SCK a SCL piny Arduina. Každé Arduino má svoje SCK a SCL piny iné! Arduino UNO má SCK a SCL na pinoch A4 a A5. V prípade iného modelu sa to môže líšiť.

Meranie tlaku je realizované senzorom BMP280. Senzor BMP280 využíva taktiež I2C zbernicu pre odosielanie analógových informácií o tlaku vzduchu. Jeho pracovné napätie je 5V, obsahuje viac výstupov, ale taktiež ako aj pri DHT12 využíva iba 4. Senzor okrem tlaku vie merať aj nadmorskú výšku a teplotu. Zaujímavým faktorom bol prepočet absolútneho tlaku vzduchu na relatívny. Absolútny tlak vzduchu je tlak vzduchu nameraný vo vašej oblasti, vo vašej výške nad morom. Pri skúmaní na internetových fórach mi používateľ fóre Svetelektro poradil, že takýto prepočet je možné uskutočniť metódou, ktorá je spoľahlivá do výšky 1000 metrov nad morom.

K absolútnemu tlaku pridáme číslo nadmorská výška/8,3. Táto konštanta pre našu výšku zaručí, že tlak, ktorý bude nameraný sa zobrazí (nahraje na webserver) už prepočítaný na relatívny tlak. Inými slovami je to náš tlak na hladine mora. Orientačná hodnota priemeru je 1013,25HPa. Počasie v televízii využíva dokonalejšie metódy, ale taktiež je tlak prevedený na relatívny, čo umožňuje lepšiu predstavivosť, ako keby sme mali uvažovať o tlaku 984HPa. Laik by si myslel, že takýto tlak je veľmi nízky, no po prepočte na relatívny tlak je táto hodnota 1016 HPa, čo znamená veľmi pekné počasie, s nízkou pravdepodobnosťou zmeny/zrážok.

Kód programu:
Kód:
#include <OneWire.h>                 //Onewire kniznica
#include <DallasTemperature.h>       //knižnica senzorov  DS18B20
#define ONE_WIRE_BUS 6               //definovany pin OneWire zbernice
OneWire oneWire(ONE_WIRE_BUS);       //inicializacia pinu
DallasTemperature sensors(&oneWire); //priradenie ds18b20 senzorov na onewire zbernicu
#include <SPI.h>                     //SPI kniznica podporuje aj I2C pripojenia
#include <DHT12.h>                   //DHT12 kniznica chinese
#include "Adafruit_BMP280.h"         //bmp280 kniznica s upravou na 0x76 adresu
#include <Ethernet.h>                //wiznet w5100 kniznica
#define Hostname "Meno zariadenia v sieti" //hostname v sieti
Adafruit_BMP280 bmp; //inicializacia BMP senzora
DHT12 dht12;  //inicializacia DHT12
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };            //MAC ADRESA
char server[] = "www.mojastranka.sk";      //adresa webservera, zapisujte s www
IPAddress ip(192, 168, 1, 100); //LAN IP ak zlyha DHCP
EthernetClient client;  //SPUSTENIE ETHERNETU AKO CLIENTA                                            //INICIALIZACIA SENZORU DHT12
void setup() {         
  sensors.begin();           //start senzorov ds18b20
  bmp.begin();        //start snimaca BMP
                   
  Serial.begin(9600);    //SPUSTENIE SERIOVEJ LINKY --UART-- NA CITACIU RYCHLOST 9600
  while (!Serial) {
    ;                                       
  }



}

void loop() {                                      //ZACIATOK SLUCKY
  if (Ethernet.begin(mac) == 0) {                  //V PRIPADE ZLYHANIA NASTAVENIA MAC ADRESY VYPIŠ
    Serial.println("Chyba konfiguracie cez DHCP"); //SERIOVY VYPIS CHYBY KONFIGURACIE DHCP
    Ethernet.begin(mac, ip);                       //NASTAVENIE IP A MAC ADRESY PRE ETHERNET MODUL
  }
                             
  if (client.connect(server, 80)) {               // AK SA NAPOJI NA SERVER NA PORTE 80 (HTTP)
    sensors.requestTemperatures();                //VYZIADANIE HODNOT ZO SENZOROV
    Serial.println("Pripojenie uspesne na webserver"); //VYPIS NA SERIOVU LINKU
    client.print("GET /add.php?temp1=");         //ZAČIATOK HTTP REQUEST --> client.print GET METODOU s oznacenim premennej, do ktorej pridame hodnotu v URL
    client.print(sensors.getTempCByIndex(0));    // VYPIS HODNOTY 1. SENZORU NA INDEXE 0 DO URL
    client.print("&temp2=");                     //TEXTOVE DOPLNENIE DRUHEJ PREMENNEJ DO KTOREJ UVEDIEME COMU SA ROVNA TAKTIEZ V URL
    client.print(sensors.getTempCByIndex(1));    // VYPIS HODNOTY 2. SENZORU NA INDEXE 1 DO URL
    client.print("&hum1=");                      //TEXTOVE DOPLNENIE TRETEJ PREMENNEJ DO KTOREJ UVEDIEME COMU SA ROVNA TAKTIEZ V URL
    client.print(dht12.readHumidity());          // VYPIS VLHKOMERU DO LINKU, HODNOTA, KTOREJ SA ROVNA PREMENNA HUM1
    client.print("&pres1=");                     //TEXTOVE DOPLNENIE STVRTEJ PREMENNEJ DO KTOREJ UVEDIEME COMU SA ROVNA TAKTIEZ V URL
    client.print((bmp.readPressure() / 100) + 30, 120481927710843373493975903614); // VYPIS BAROMETRA DO LINKU + PRIPOCITANA KONSTANTA NA ZAKLADE NADMORSKEJ VYSKY PRE SPRAVNY PREPOCET NA RELATIVNY TLAK
    client.println(" HTTP/1.1");                 // UKONCENIE REQUESTU ZALOMENIM RIADKA A DOPLNENIM HLAVICKY HTTP S VERZIOU
    client.println("Host: www.mojastranka.sk"); // ADRESA HOSTA, NA KTOREHO BOL MIERENY REQUEST (NIE PHP SUBOR)
    client.println("Connection: close");         //UKONCENIE PRIPOJENIA ZA HTTP HLAVICKOU
    client.println();                            //ZALOMENIE RIADKA KLIENTSKEHO ZAPISU
    client.stop();                                   // UKONCENIE PRIPOJENIA ETHERNET SHIELDU
    Serial.println("Odoslane hlavicky s datami: ");  //SERIOVY VYPIS O STAVE USPESNOSTI PRENOSU
    Serial.println("Teplota von: ");                 //SERIOVY VYPIS TEXT O TEPLOTE
    Serial.println(sensors.getTempCByIndex(0));      //SERIOVY VYPIS STAV TEPLOTY NA SENZORE EVIDOVANOM NA INDEXE 0
    Serial.println("Teplota dnu: ");                 //SERIOVY VYPIS TEXT O TEPLOTE
    Serial.println(sensors.getTempCByIndex(1));      //SERIOVY VYPIS STAV TEPLOTY NA SENZORE EVIDOVANOM NA INDEXE 1
    Serial.println("Vlhkost vzduchu: ");             //SERIOVY VYPIS TEXT O VLHKOSTI VZDUCHU
    Serial.println(dht12.readHumidity());            //SERIOVY VYPIS STAVU VLHKOSTI
    Serial.println("Atmosfericky tlak: ");           //SERIOVY VYPIS TEXT O TLAKU VZDUCHU
    Serial.println((bmp.readPressure() / 100) + 30, 120481927710843373493975903614); //SERIOVY VYPIS STAVU RELATIVNEHO TLAKU 30,... je konstanta pre nadmorsku vysku, ktora sa prirata k teplote. (Použite pri nadmorskej do 1000m nadmorska vyska/8,3 tuto hodnotu napiste namiesto 30,...)
    Serial.println("Odpojenie uspesne.");            //SERIOVY VYPIS O STAVE USPESNOSTI PRENOSU
  } else {                                           // AK SA PRIPOJENIE NA SERVER NEPODARI
    Serial.println("Pripojenie zlyhalo");            //SERIOVY VYPIS O NEUSPESNOSTI PRIPOJENIA --> ŽIADNY HTTP REQUEST NEBOL VYKONANY
  }




  delay(15000); //15 SEKUND PAUZA, slucka sa zopakuje
}


Ako je z programu pre Arduino zrejmé, teploty je možné monitorovať online, ale aj cez sériový port. Vidíte, aké údaje sa odosielajú a na základe toho je možné vedieť, či bol prenos úspešný. Nezabudnite na rýchlosť čítania 9600 Bd! Prenos je realizovaný cez PHP kód. PHP kód beží na webe a dokáže do databázy vložiť nami namerané údaje prostredníctvom vopred pripraveného súboru, ktorý očakáva vstup metódou GET priamo v linku stránky. Nižšie v obsahu súboru add.php môžete vidieť, že server očakáva hodnoty pre tieto premenné: temp1, temp2, pres1, hum1.

Pri metóde GET je požiadavka na stránku zadaná priamo do linku, čo má svoje výhody i nevýhody. Na jednu stranu vidíme, čo do databázy vkladáme, no na druhú je možné, že neoprávnená osoba/počítač začne stránku spúšťať, či zadávať klamlivé informácie. Stránku je teda nutné ošetriť tak, aby boli ošetrené všetky vstupy. Musíme očakávať číselné premenné s desatinnou čiarkou. Odporúčam doprogramovať aj kontrolu vstupu z hľadiska hodnoty. Senzory DS18B20 pri odpojení/poškodení/nesprávnom zapojení odosielajú na zbernicu hodnotu -127°C, čo má za následok to, že všetky grafy to veľmi pozmení, nehovoriac o ročných priemeroch, či vykreslených grafoch. Pri správnom zapojení, ale nedostatočnom vyčkaní na prečítanie hodnoty z čidla sa bude na server odosielať hodnota -85°C.

Na odosielanie informácii, teda nameraných hodnôt do internetu nám nepostačí klasické Arduino. Potrebujeme hardvérovú nadstavbu v podobe Ethernet Shieldu, v našom prípade Wiznet W5100, ktorý je vyhotovený veľkosťou, i pinmi priamo na Arduino UNO, Mega, jednoducho sa doň zasunie. Ako názov napovedá, bude to niečo, čo sa bude pripájať do internetu cez Ethernet rozhranie, teda cez RJ45 konektor. Ethernet shield vyzerá na prvý pohľad ako Arduino, no má na sebe iba čipy a konektory pre sieťovú komunikáciu. Podporuje plne TCP a UDP protokol, nehodí sa však na šifrovanie. Vôbec nepodporuje HTTPS protokol. Pozor nato pri napájaní na stránku.

Nakoľko HTTPS nepodporuje, tak ho samotný protokol odmietne cez (connection refused). Všetky údaje s Ethernet shieldom začínajú v kóde premennou Ethernet, alebo priamo s Ethernetom súvisia. Ethernet Shield umožňuje zmeniť napríklad MAC adresu, IP adresu, meno Ethernet Shieldu v sieti. Všetky tieto informácie sú priamo v kóde. Všetky tieto informácie sú definované nad setupom. Mnoho poskytovateľov hostingu umožňuje si registrovať doménu III. radu úplne zdarma. Napríklad mojadomacnost.hostingspolocnost.sk. Medzi najznámejších poskytovateľov takéhoto hostingu patrí: PHP5.sk, hostinger.sk, studenthosting.sk, endora.cz.

Po registrácii webu môžete jeho obsah upravovať pridaním súborov priamo do neho. Toto sa realizuje cez FTP protokol. Musíte si nainštalovať FTP klienta, s ktorým budete môcť zadávať tieto informácie na internet. Najznámejšie sú: TotalCommander, Filezilla. Informácie o vašom webe, teda prihlasovacie meno a heslo nájdete najčastejšie vo vašom profile po registrácii domény u spoločnosti, ktorá poskytuje hosting. Po prihlásení s vašimi údajmi môžete nahrávať do vášho web priestoru súbory. Je to možné veľmi ľahko, po vytvorení súboru ho pretiahnete myšou do zložky webservera, automaticky sa za počkaním nahrá. Tieto súbory sú veľmi malé, teda sa nahrajú v priebehu pol sekundy i menej. Poďme sa teda pozrieť, ako bude vyzerať backend (časť, ktorú používateľ nevidí, spracúvávajú sa v nej dáta) PHP časť na webserveri.
Vytvoríme si súbor Add.php, bude vyzerať následovne (vzorový príklad neobsahuje zabezpečenie vstupných hodnôt!):
Kód:
<?php
header('Content-Type: text/html; charset=utf-8');   
include ("connect.php"); 
   $temp1=$_GET["temp1"]; 
  $temp2=$_GET["temp2"]; 
  $pres1=$_GET["pres1"]; 
  $hum1=$_GET["hum1"]; 
   
$ins = mysqli_query($con,"INSERT INTO `TempOutside` (`temperature`) VALUES ('".$_GET["temp1"]."')") or die (mysqli_error($con));   
$ins2 = mysqli_query($con,"INSERT INTO `TempLivingRoom` (`temperature`) VALUES ('".$_GET["temp2"]."')") or die (mysqli_error($con)); 
$ins3 = mysqli_query($con,"INSERT INTO `PressureOutside` (`pressure`) VALUES ('".$_GET["pres1"]."')") or die (mysqli_error($con));   
$ins4 = mysqli_query($con,"INSERT INTO `Humidity` (`humidity`) VALUES ('".$_GET["hum1"]."')") or die (mysqli_error($con));   
     
?> 

Súbor connect.php slúži na pripojenie k databáze pre predané dáta od Arduina, ale i vo Webaplikácii, kde si chce používateľ dáta prezerať - využíva MySQLi paradigmu:
Kód:
header('Content-Type: text/html; charset=utf-8');   
$con = mysqli_connect("localhost","pouzivatelskemeno","heslo","nazovdatabazy(nie tabulky)"); 
     mysqli_set_charset($con,"utf8"); 
       
if (mysqli_connect_errno()) 
  { 
  echo "Problém s napojením na MySQL: " . mysqli_connect_error(); 
  } 
?> 

Teraz je nutné vytvoriť 4 tabuľky v MySQL databáze. Budú vyzerať takto:
(čiarkou sú oddelené jednotlivé stĺpce tabuľky Nazov – polozka, polozka, polozka, polozka)
Tabuľka TempOutside - ID (A_I & PRIMARY KEY), temperature, time (typu TIMESTAMP UPDATE ON REQUEST)
Tabuľka TempLivingRoom - ID (A_I & PRIMARY KEY), temperature, time (typu TIMESTAMP UPDATE ON REQUEST)
Tabuľka PressureOutside - ID (A_I & PRIMARY KEY), pressure, time (typu TIMESTAMP UPDATE ON REQUEST)
Tabuľka Humidity - ID (A_I & PRIMARY KEY), humidity, time (typu TIMESTAMP UPDATE ON REQUEST)
Tento postup vám zaručí kompletné odoslanie hodnôt z Arduina do MySQL databázy cez PHP súbor. Následne môžete navrhnúť stránku a hodnoty vypisovať a rátať medzi nimi prepočty pre maximálne teploty dňa, roka, priemerné záznamy, filtrovať záznamy a vykonávať s nimi rôzne ďalšie operácie.
Súbor k týmto operáciám je vložený aj na Github, dá sa to importovať do PHPmyAdmin-u, alebo inej db aplikácie.
Stránka môže vyzerať napríklad takto:
Pri vytváraní webstránky by chcel každý používateľ vykresľovať namerané hodnoty do prehľadných grafov. Grafy je možné vytvoriť, ak nato máte znalosti, alebo použiť riešenie tretích strán. Odporúčam Google Graphs, Js Graphs, Charts.js či iné Javascriptové nástroje na tvorbu grafov. Grafy sú predpripravené a je nutné odovzdať im dáta z databázy a to PHP kódom, inými slovami vždy pri načítaní stránky sa údaje aktualizujú a na základe toho sa vykreslí graf. Ak raz za 10 sekúnd nahráte do databázy novú teplotu, pri otvorenej stránke túto teplotu v grafe neuvidíte. Pri opätovnom nainštalovaní stránky už áno, nakoľko sa všetky posledné údaje predali Javascriptu, ktorý ich vykreslil.
Meteostanica s Arduino a Ethernetom vo Webclient móde
Meteostanica s Arduino a Ethernetom vo Webclient móde
Vyhotovenie:
Všetky meracie prístroje pre vonkajšie použitie môžete umiestniť do škatule, kde môžu byť chránené pred poveternostnými vplyvmi, respektíve je to aj vec, ktorá skryje kabeláž. Nechajte pracovať vašu fantáziu.
Meteostanica s Arduino a Ethernetom vo Webclient móde
Meteostanica s Arduino a Ethernetom vo Webclient móde
Na záver (opakovanie):
Arduino musí byť v režime Webclient! Pripája sa do internetu, nie je webserverom. Ethernet shield Wiznet W5100 nepodporuje HTTPS prenos, iba HTTP. Zvážiť to pri výbere hostingu. Pri použití freehostingu väčšinou nemôžete určiť, na akom protokole vaša doména tretieho radu funguje. V prípade, že sa dostanete na HTTPS musíte použiť nejaký iný shield, napríklad Wifi, ktorý HTTPS podporuje a taktiež aj HTTP. Je ho možné napojiť a web ale i na subdoménu webu, ktorú si môžete upraviť pre HTTP.
Github repozitár s projektom: https://github.com/martinius96/Meteostanica
Viac o projekte a o v2 verzii je možné nájsť aj na mojom webe: https://arduino.php5.sk/meteostanica-arduino.php
Verzia 2
V posledných rokoch som sa dopracoval k vynovenému konceptu, kde som prvý krát použil AJAX, dynamické volanie PHP scriptov pre real-time dáta, ktoré na web prichádzajú a taktiež som si osvojil aj prácu s Google grafmi.
Meteostanica s Arduino a Ethernetom vo Webclient móde
Meteostanica s Arduino a Ethernetom vo Webclient móde
Meteostanica s Arduino a Ethernetom vo Webclient móde
Meteostanica s Arduino a Ethernetom vo Webclient móde
Nakoľko je ale táto verzia zdarma na odtestovanie, vyskúšanie mikrokontroléra a prenos informácii, nachádzajú sa v databáze viac-menej bludy.
Meteostanicu môžete navštíviť na: https://arduino.php5.sk/meteostanicav2/


Offline

Užívateľ
Užívateľ
Meteostanica s Arduino a Ethernetom vo Webclient móde

Registrovaný: 09.01.07
Prihlásený: 17.07.22
Príspevky: 3566
Témy: 409 | 409
Bydlisko: Bratislava

Projekt ma velmi zaujal, mohli by sme ho este prosim prebrat ? Pripadne vylepsit? O dalsie senzory alebo o pouzitie inych modulov, ineho Etherned shieldu, prip. Wifi? Dakujem.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 15.08.22
Príspevky: 444
Témy: 195 | 195
Bydlisko: Poprad-okolie

Zdravím, do projektu vo verzii 2 som doplnil rôzne kombinácie senzorov...
    BME280 + DS18B20
    BMP280 + DHT22 + DS18B20
plánovaná je aj trojkombinácia
    BMP280 + SHT21 + DS18B20
Každý program už existujúcich kombinácii je dostupný priamo vo webaplikácii meteostanice s odkazom na Github: https://github.com/martinius96/Meteostanica-odosielacie-scripty
Sú k ním dostupné aj schémy zapojenia.
Dajú sa ihneď vyskúšať na tomto webovom rozhraní.
Konkrétne pre platformu:
    Arduino + Ethernet shield Wiznet W5100
    Arduino + Ethernet modul Wiznet W5500
    ESP32 (devkity)
    ESP8266 (NodeMCU, Wemos D1 Mini)
Neplánujem nejako ďalej tú meteostanicu rozvíjať či už po stránke ďalších senzorov, platforiem, či iných vylepšení aj z dôvodov časových.


Offline

Užívateľ
Užívateľ
Meteostanica s Arduino a Ethernetom vo Webclient móde

Registrovaný: 09.01.07
Prihlásený: 17.07.22
Príspevky: 3566
Témy: 409 | 409
Bydlisko: Bratislava

Zdravim, dakujem za promptnu odpoved.
Tie s ESP266 vyzeraju dobre, potrebujem to mat napojene na wifi, kedze vonku kabel netaham a cez stenu je router len 2m.
Ja planujem mat este senzor zrazok, vlhkosti pody, tlaku. A vsetko napajane cez solarny panel (neviem ci by sa to neoplatilo rozdelit na vonkajsiu a vnutornu jednotku, potom by boli aj energeticke naroky vonkajsej jednotky mensie a stacil by mensi solarny panel s mensou baterkou).


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 15.08.22
Príspevky: 444
Témy: 195 | 195
Bydlisko: Poprad-okolie

Do zdrojových kódov pre ESP8266 som zakomponoval aj deep sleep, ktorý je vhodný pre prevádzku na batérie. Ešte v schémach chýba zapojenie z GPIO16 na RST pin.
Dáta odošle raz za 5 minút, kedy sa zobudí, pripojí na WiFi, vykoná HTTPS request na webserver a opäť zaspí.
Spotrebu som bohužiaľ nemal možnosť odtestovať, ale verím, že by to vydržalo bežať niekoľko týždňov na 2-3 AA batérie.
ESP8266 má aj dobrú PCB anténu. Pripojí sa na WiFi aj v miestach, kde sa nepripojí už môj smartfón.


 [ Príspevkov: 5 ] 


Meteostanica s Arduino a Ethernetom vo Webclient móde



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Escape Room - Webclient - Arduino + Ethernet

v Články

0

386

27.11.2019 22:35

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

windows 7, nejde repair mode ani safe mode

v Operačné systémy Microsoft

14

1056

06.06.2013 16:34

magic

V tomto fóre nie sú ďalšie neprečítané témy.

Ganged mode , alebo radsej unganged mode

v AMD čipové sady

2

1471

12.06.2009 14:43

denoo

V tomto fóre nie sú ďalšie neprečítané témy.

Meteostanica s ESP8266 - NodeMCU

v Články

0

1702

06.02.2019 2:03

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Passive Mode/Active Mode

v Ostatné

2

679

22.03.2010 21:17

Echo

V tomto fóre nie sú ďalšie neprečítané témy.

problem s ethernetom

v Siete

3

406

06.10.2008 18:23

armin.owen

V tomto fóre nie sú ďalšie neprečítané témy.

problem z ethernetom

v Siete

1

152

13.01.2021 8:14

shiro

V tomto fóre nie sú ďalšie neprečítané témy.

Problém s ethernetom / wifi

v Notebooky a netbooky

1

214

22.12.2016 9:31

tatko Tom

V tomto fóre nie sú ďalšie neprečítané témy.

Windows 8, nefunguje ani repair mode, ani safe mode

v Operačné systémy Microsoft

5

542

26.10.2013 20:58

focko

V tomto fóre nie sú ďalšie neprečítané témy.

Meteostanica s Arduinom a Ethernet Shieldom - HTTP

v Mikropočítače

0

599

16.09.2017 14:32

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Siet- 2PC spojene ethernetom + USB modem, dsl

v Siete

1

343

20.03.2008 20:45

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

Projekt Meteostanica V2 - uvoľnený zdarma na stiahnutie v plnej verzii.

v Články

0

664

16.08.2020 0:19

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino

v Assembler, C, C++, Pascal, Java

6

514

05.04.2018 17:25

ado130

V tomto fóre nie sú ďalšie neprečítané témy.

C a arduino

v Assembler, C, C++, Pascal, Java

0

430

30.04.2018 17:37

Dolpi

V tomto fóre nie sú ďalšie neprečítané témy.

Arduino 8bit computer

v Mikropočítače

1

707

20.02.2015 13:34

jankalman

V tomto fóre nie sú ďalšie neprečítané témy.

RGB maticové panely - Arduino

v Články

0

317

01.03.2020 13:09

martinius96



© 2005 - 2022 PCforum, edited by JanoF