Re: PHP přestalo přijímat data z Arduina
Napsal: 01 led 2018, 17:45
Pri UNO mi to nerobilo problem. Ale včera som ho chcel vyskúšať na Mege, zatlačil som ho, dal do USB a nič, ani LED-ka sa nerozsvietila. Tak som dal medzi to obyč. Kancelársky papier a v pohode. Ešte si spomínam na jeden tutoriál, keď sa pridával extra kondík, kvôli vytuhnutiu. Ale ja sa musím priznať, že som používal vždy primitívny kód typu, odmeraj teploty odošli, delay 10 min.. A nikdy mi shield nevytuhol.
https://arduino.cz/problemy-se-startem- ... 00-reseni/
Tu je i ten kód
Je dobré si dať do loopu toto:
Štandardné zdrojáky (examples) to majú iba v setupe. Môže sa stať, že Lease time pre DHCP ti skončí a on už nemá IP, hoci nevytuhol ale na jeho IP, ktorú mal už je iný PC atď..
https://arduino.cz/problemy-se-startem- ... 00-reseni/
Tu je i ten kód
Kód: Vybrat vše
#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
}
Kód: Vybrat vše
if (Ethernet.begin(mac) == 0) {
Serial.println("Chyba konfiguracie cez DHCP");
Ethernet.begin(mac, ip);
}