terje
Vytvořené odpovědi
-
AutorPříspěvky
-
terjeÚčastník
Dík za odpověď, ale asi jsem to upravil špatně (zatím v tom tápu). Podívej se na to, prosím Tě, až budeš mít čas.
/*
* This sketch sends data via HTTP GET requests to data.sparkfun.com service.
*
* You need to get streamId and privateKey at data.sparkfun.com and paste them
* below. Or just customize this script to talk to other HTTP servers.
*
*/#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <stdlib_noniso.h>#define ONE_WIRE_BUS 2 // DS18B20 pin
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);const char* ssid = „terje“;
const char* password = „xxxx“;const char* host = „api.thingspeak.com“;
const char* APIkey = „xxxxxxx“;float oldTemp;
void setup() {
Serial.begin(115200);
delay(10);// We start by connecting to a WiFi network
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());
}void loop() {
delay(30000);float temp;
DS18B20.requestTemperatures();
temp0 = DS18B20.getTempCByIndex(0); // první čidlo
temp1 = DS18B20.getTempCByIndex(1); // druhé čidlo
Serial.print(„Temperature: „);
Serial.println(temp);
char buf[24];
String strTemp0 = dtostrf(temp0, 6, 2, buf);
String strTemp1 = dtostrf(temp1, 6, 2, buf);Serial.print(„connecting to „);
Serial.println(host);// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println(„connection failed“);
return;
}// We now create a URI for the request
String url = „/update?key=“;
url += „&field1=“;
url += strTemp0; //String(temp0);
url += „&field2=“;
url += strTemp1; //String(temp1);
url += charVal;//String(temp);Serial.print(„Requesting URL: „);
Serial.println(url);// This will send the request to the server
client.print(String(„GET „) + url + “ HTTP/1.1\r\n“ +
„Host: “ + host + „\r\n“ +
„Connection: close\r\n\r\n“);
delay(10);// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil(‚\r‘);
Serial.print(line);
}Serial.println();
Serial.println(„closing connection“);
}Chybová zpráva:
Arduino: 1.6.7 (Windows 7), Vývojová deska: „NodeMCU 1.0 (ESP-12E Module), 80 MHz, Serial, 115200, 4M (3M SPIFFS)“
Volby pro sestavení se změnily; sestavuji vše znovu
sketch_feb25a:88: error: stray ‚\204‘ in programurl += „&field1=“;
^
sketch_feb25a:88: error: stray ‚\223‘ in program
sketch_feb25a:90: error: stray ‚\204‘ in program
url += „&field2=“;
^
sketch_feb25a:90: error: stray ‚\223‘ in program
C:\Users\terje\AppData\Local\Temp\arduino_128afa9af2287aba088309aaca1e436f\sketch_feb25a.ino: In function ‚void loop()‘:
sketch_feb25a:63: error: ‚temp0‘ was not declared in this scope
temp0 = DS18B20.getTempCByIndex(0); // první čidlo
^
sketch_feb25a:64: error: ‚temp1‘ was not declared in this scope
temp1 = DS18B20.getTempCByIndex(1); // druhé čidlo
^
sketch_feb25a:88: error: ‚field1‘ was not declared in this scope
url += „&field1=“;
^
sketch_feb25a:88: error: expected primary-expression before ‚;‘ token
url += „&field1=“;
^
sketch_feb25a:90: error: ‚field2‘ was not declared in this scope
url += „&field2=“;
^
sketch_feb25a:90: error: expected primary-expression before ‚;‘ token
url += „&field2=“;
^
sketch_feb25a:92: error: ‚charVal‘ was not declared in this scope
url += charVal;//String(temp);
^
exit status 1
stray ‚\204‘ in programTento výpis by měl více informací s
„Zobrazit více informací během kompilace“
povoleno v Soubor > VlastnostiterjeÚčastníkJo, ty čidla by byly na jedné sběrnici.
terjeÚčastníkZdravím chlapi, mám prosbu. Zprovoznil jsem ESP8266 s jedním čidlem(ds18b20) na thingspeak. Potřeboval bych k tomu modulu připojit více čidel(např.4).V HW se celkem vyznám, ale SW mi dělá potíže. Dík za radu.
Tady je kód:/*
* This sketch sends data via HTTP GET requests to data.sparkfun.com service.
*
* You need to get streamId and privateKey at data.sparkfun.com and paste them
* below. Or just customize this script to talk to other HTTP servers.
*
*/#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <stdlib_noniso.h>#define ONE_WIRE_BUS 2 // DS18B20 pin
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);const char* ssid = „terje“;
const char* password = „xxxxx“;const char* host = „api.thingspeak.com“;
const char* APIkey = „xxxxxxxxxxxx“;float oldTemp;
void setup() {
Serial.begin(115200);
delay(10);// We start by connecting to a WiFi network
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());
}void loop() {
delay(30000);float temp;
DS18B20.requestTemperatures();
temp = DS18B20.getTempCByIndex(0);
Serial.print(„Temperature: „);
Serial.println(temp);char charVal[12];
dtostrf(temp, 8, 2, charVal);
Serial.print(„connecting to „);
Serial.println(host);// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println(„connection failed“);
return;
}// We now create a URI for the request
String url = „/update?key=“;
url += APIkey;
url += „&field1=“;
url += charVal;//String(temp);Serial.print(„Requesting URL: „);
Serial.println(url);// This will send the request to the server
client.print(String(„GET „) + url + “ HTTP/1.1\r\n“ +
„Host: “ + host + „\r\n“ +
„Connection: close\r\n\r\n“);
delay(10);// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil(‚\r‘);
Serial.print(line);
}Serial.println();
Serial.println(„closing connection“);
}terjeÚčastníkK prvnímu dotazu
Chci napr.nahrát přes převodník usb/uart do esp8266-01 program pro blikání diody na GPI00. Spustím IDE/příklady/esp8266/blink a skončí to hláškou z prvního postu.FW mi jde normálně flešovat. Modul mi přes wifi komunikuje(skenování sítě atd.)Používám Esplorer na AT příkazy.
Nebo jsem nějak mimo?terjeÚčastníkJaký tam máš FW.
terjeÚčastníkChlapi díky. Jestli se chcete podívat na můj kanál, tak uživatel „terje_ard“. Zatím jenom ze dvou čidel.
terjeÚčastníkDíky,funguje. Ještě dotaz. Dá se na thingspeak získat nějaká historie dat nebo jen to co je tam aktuálně zobrazeno.
terjeÚčastník/*
| Post temp. values from a DS18B20 to ThingSpeak using the Ethercard interface based on the
| ENC28J60 chip.
| Based on the Ethercard example from http://www.jeelabs.org
| Phil Grant Jan 2014
*/
#include <EtherCard.h>
// change these settings to match your own setup
#define APIKEY „KVWMM6N5UOKA7SR4“ // ThingSpeak Chanel 21973
#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h> //DS18B20 support
// =========== Setup the Temperature sensor details =================
#define ONE_WIRE_BUS 7 // DS18B20 Temperature chip i/o on pin D7
#define TEMPERATURE_PRECISION 9
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// Insert the ID of your temp sensor here, for the sketch, visit here
// http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html
DeviceAddress Thermometer = { 0x28, 0xBC, 0x28, 0xF9, 0x03, 0x00, 0x00, 0xA4 }; // zelena, adresa: 0x28, 0xBC, 0x28, 0xF9, 0x03, 0x00, 0x00, 0xA4int sensorPin = A0; // select the input pin for the ldr
unsigned int sensorValue = 0; // variable to store the value coming from the ldr// ethernet interface mac address, must be unique on the LAN
byte mymac[] = { 0xDE,0xAD,0xBE,0xEF,0xFE,0xED };const char website[] PROGMEM = „api.thingspeak.com“;
byte Ethernet::buffer[700];
uint32_t timer;
Stash stash;void setup () {
Serial.begin(57600);
Serial.println(„\n[webClient]“);if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println( „Failed to access Ethernet controller“);
if (!ether.dhcpSetup())
Serial.println(„DHCP failed“);ether.printIp(„IP: „, ether.myip);
ether.printIp(„GW: „, ether.gwip);
ether.printIp(„DNS: „, ether.dnsip);if (!ether.dnsLookup(website))
Serial.println(„DNS failed“);ether.printIp(„SRV: „, ether.hisip);
}void loop () {
ether.packetLoop(ether.packetReceive());if (millis() > timer) {
//timer = millis() + 60000; //Transmit every 60 seconds
timer = millis() + 30000; //Transmit every 30 seconds
sensors.requestTemperatures();
delay(200);
// read the value from the ldr:
sensorValue = analogRead(sensorPin);
// generate two values – by using a separate stash,
// we can determine the size of the generated message ahead of time
byte sd = stash.create();
stash.print(„field1=“);
stash.println(String(sensors.getTempC(Thermometer),DEC)); // print the temperature as string
stash.print(„&field2=“);
stash.print(String(sensorValue, DEC)); // print the value (0 to 1024) as string
stash.save();
// For DEBUGGING – Print out our data, uncomment the lines below
//Serial.print(„field1=“);
//Serial.println(sensors.getTempC(Thermometer),DEC);
//Serial.print(„field2=“);
//Serial.println(sensorValue, DEC); // print the value (0 to 1024)// generate the header with payload – note that the stash size is used,
// and that a „stash descriptor“ is passed in as argument using „$H“
Stash::prepare(PSTR(„POST /update HTTP/1.1“ „\r\n“
„Host: $F“ „\r\n“
„Connection: close“ „\r\n“
„X-THINGSPEAKAPIKEY: $F“ „\r\n“
„Content-Type: application/x-www-form-urlencoded“ „\r\n“
„Content-Length: $D“ „\r\n“
„\r\n“
„$H“),
website, PSTR(APIKEY), stash.size(), sd);// send the packet – this also releases all stash buffers once done
ether.tcpSend();
}
}terjeÚčastníkSkončil jsem na tomhle.
[url=http://postimg.org/image/yexblf1y3/][img]http://s17.postimg.org/yexblf1y3/Bez_n_zvu.jpg[/img][/url]
terjeÚčastníkneumím do příspěvku vložit obrázek. už jsem zkoušel všecho možné
terjeÚčastníkDíky, zkouším to. Zastaví se mi to na řádku byte Ethernet::buffer[700];
Hlásí to expected initializer before bufferterjeÚčastníkterjeÚčastníkAhoj ,funguje to perfektně. Díky. Nemohl bys poradit ,jak to rozjet se síťovým modulem (Arduino Mini Ethernet modul – ENC28J60) jsem stáhl, vložil do programu, ale na webu se nezobrazují hodnoty.Hardvéru celkem rozumím, ale programování ne.
-
AutorPříspěvky