#include <Wire.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp;
void setup() {
Serial.begin(115200);
bmp.begin(0x76);
}
void loop() {
int temp = bmp.readTemperature();
int pres = bmp.readPressure() * 0.0075;
Serial.print(temp);Serial.print(" | ");Serial.println(pres);
delay(1000);
}
179 | -48
/* Default settings from datasheet. */
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
Если матрица использует те же пины, как и I2c - ни то ни другое нормально работать не будет. Обмен данных по пинам матрицы слишком интернсивный. чтобы эти пины можно было использовать для чего-то другого.SDA/SCL = D2/D1, эти пины использует также матрица)
а такой вариант?)Поскольку I2C перенести нельзя
Wire.begin(esda, escl);
А чего вы ждали? Вы же датчик к RX Tx подключили - а значит теперь у вас Монитор не работает, он же висит на тех же пинах...заменил на RX/TX матрица работает, а вот датчик не знаю, в мониторе непонятно что пишет, дублируя по многу раз и все в одну строку)
// HW SPI PINS из библиотеки
#define SPI_BUS_CLK 14
#define SPI_BUS_MOSI 13
#define SPI_BUS_MISO 12
#define SPI_BUS_SS 4
тоже wdt resetможно попробовать заменить SPI_BUS_SS
Wire.begin(10, 9);
bmp.begin(0x76);
Wire.begin(10, 9);
//или
bmp.begin(0x76);
#include <Wire.h>
#include <Adafruit_BMP280.h>
//Adafruit_BMP280 bmp;
Adafruit_BMP280 bmp(0x76);
void setup() {
Serial.begin(115200);
//Wire.begin(10, 9);
//bmp.begin(0x76);
bmp.begin(10, 9);
}
void loop() {
int temp = bmp.readTemperature();
int pres = bmp.readPressure() * 0.0075;
Serial.print(temp);Serial.print(" | ");Serial.println(pres);
delay(5000);
}
{
"coord": {
"lon": -122.08,
"lat": 37.39
},
"weather": [
{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01d"
}
],
"base": "stations",
"main": {
"temp": 282.55,
"feels_like": 281.86,
"temp_min": 280.37,
"temp_max": 284.26,
"pressure": 1023,
"humidity": 100
},
"visibility": 10000,
"wind": {
"speed": 1.5,
"deg": 350
},
"clouds": {
"all": 1
},
"dt": 1560350645,
"sys": {
"type": 1,
"id": 5122,
"message": 0.0139,
"country": "US",
"sunrise": 1560343627,
"sunset": 1560396563
},
"timezone": -25200,
"id": 420006353,
"name": "Mountain View",
"cod": 200
}
void OWM() {
http.begin(client, "http://api.openweathermap.org/data/2.5/weather?q=City&appid=Key");
http.GET();
Serial.println(http.getString());
DynamicJsonDocument doc(500);
DeserializationError error = deserializeJson(doc, http.getStream());
if (error) {
Serial.print(F("deserializeJson() failed: "));
Serial.println(error.c_str());
return;
}
Serial.println(doc["main"]["temp"].as<String>());
Serial.println(doc["main"]["pressure"].as<String>());
client.stop();
http.end();
}
http.begin(client, "http://arduinojson.org/example.json");
http.GET();
Serial.println(http.getString());
DynamicJsonDocument doc(200);
DeserializationError error = deserializeJson(doc, http.getStream());
if (error) {
Serial.print(F("deserializeJson() failed: "));
Serial.println(error.f_str());
return;
}
Serial.println(doc["time"].as<String>());
Serial.println(doc["sensor"].as<String>());
client.stop();
http.end();
http.begin(client, "");
http.GET();
String json = http.getString();
DynamicJsonDocument doc(2000);
DeserializationError error = deserializeJson(doc, json);
Serial.println(doc["main"]["temp"].as<String>());
Serial.println(doc["main"]["pressure"].as<String>());
поняли почему теперь работает, а раньше нет?вот так работает)
проверить очень легко.Строка в переменной http. Но ее саму использовать не разрешает, записал в посредника, всё заработало. Постоянно, чтобы что-то заработало, нужны посредники. Уже ни раз такое))
http.begin(client, "http://arduinojson.org/example.json");
http.GET();
Serial.println(" ====== Line 1 ====== ");
Serial.println(http.getString());
delay(10);
Serial.println(" ====== Line 2 ====== ");
Serial.println(http.getString());