Jump to content
iT4iT.CLUB

post125

Members
  • Content Count

    95
  • Joined

  • Last visited

  • Days Won

    9

post125 last won the day on July 23 2019

post125 had the most liked content!

Community Reputation

16 Good

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. По имени не помню, по спецсимволам в пароле была проблема; попробуйте имя проще сделать. То ли $, то ли & не проходили
  2. Проверьте пароль в роутере на наличие спецсимолов. С некоторыми метеостанция не дружит.
  3. Скрытие иконок даже и не нужно, так даже удобнее- видно сразу, куда надо нажимать, тем более иконки небольшие и не перекрывают обзор.
  4. Всё супер работает, благодарю. Иконки, правда, какие-то корявые получаются - надо с ними поэкспериментировать. Еще один вопрос, можно ли один и тот же датчик отображать на нескольких страницах?
  5. Добрый день! Можно ли добавить закладки в web-интерфейсе помимо "in" и "out". У меня 39 датчиков на одной странице, трудно ориентироваться, хотелось бы распределить на 3-4 страницы. На форуме решения не нашел. Заранее благодарен за ответ
  6. Положите его в морозилку, результат будет доступен быстрее
  7. Если будет кому-то необходимо подключить NRF к ESP не напрямую, а через ардуино про мини по I2C, попробую сформулировать это в одном посте, что бы не искать по всему форуму. Всё работает отлично, только пришлось отключить накопление статистики по большинству датчиков, т.к. у ESP не хватает оперативки. В данный момент работают две метеостанции. Хочу отметить, поскольку не разобрался со страничной передачей данных по I2C, у меня на одной метеостации 2 NRFки и на другой 3 NRFки. Каждая NRFка может принимать данные от пяти NRFок, но передаёт на ESP только 16 параметров INT. Структура датчиков в приложенном PDFе. Данные пока сбрасываю только на народный монитор. MQTT работает, проверял, нет времени подключить окончательно комп. метеостанция ESP8266 структура_int 12-7-19.xlsx.pdf
  8. Добрый день! А сделать , как у меня с Вашей помощью получилось, через slave-ардуину по I2C чем плохо? порты дополнительные не нужны, прерывания не нужны, лишняя библиотека не нужна, NRFке никто не мешает принимать данные и они не теряются. Небольшая проблема в нехватке оперативки у ESP8266 при большом количестве датчиков, так эта же проблема проявится и при подключении по SPI. Стоимость ардуино pro mini в районе 100р, что не сильно повысит общую стоимость.
  9. Спасибо! Будем пробовать, лишь бы не слетели ардуины slave. А ESP32 на горизонте не виднеется?
  10. если это северная сторона , летом всё будет ок; зимой будут показания завышаться
  11. Я впаивал в ESP память и 8 и 16 МБ и соответственно менял конфигурации а Arduini IDE - никакого смысла в этом нет, работает совершенно так же , как и с 4 МБ. И начальная загрузка дольше, особенно с 8 МБ. И на большом количестве датчиков точно также перестает строить тренды.
  12. эти указания не очевидны. не надо отвечать вопросом на вопрос. и еще раз озвучу, что на Про Мини скетч работал и из беззнаковых получались знаковые без проблем.
  13. Добрый день! Магнитометр QRM3100 корректно работает на ESP8266 c данным скетчем: #include <Wire.h> float xхх, yyy, zzz; void setup() { Serial.begin(9600); Wire.begin(); writeRegister(0b0000001,0b01110001); } void loop() { delay(500); while ((readRegister(0x34) & 0x80) != 0x80) {} int8_t mx2 = readRegister(0x24); uint8_t mx1 = readRegister(0x25); uint8_t mx0 = readRegister(0x26); int8_t my2 = readRegister(0x27); uint8_t my1 = readRegister(0x28); uint8_t my0 = readRegister(0x29); int8_t mz2 = readRegister(0x2A); uint8_t mz1 = readRegister(0x2B); uint8_t mz0 = readRegister(0x2C); xxx = ((int32_t)(mx2 * 256 * 256) | (mx1 * 256) | mx0); yyy = ((int32_t)(my2 * 256 * 256) | (my1 * 256) | my0); zzz = ((int32_t)(mz2 * 256 * 256) | (mz1 * 256) | mz0); Serial.print("M: X\t"); Serial.print(xxx); Serial.print("\t Y\t"); Serial.print(yyy); Serial.print("\t Z\t"); Serial.print(zzz); Serial.println(""); delay(500); } uint8_t readRegister(uint8_t address){ // функция чтения регистра uint8_t output; Wire.beginTransmission(0x23); Wire.write(address); Wire.endTransmission(); delayMicroseconds(2); Wire.requestFrom(0x23, 1); while(Wire.available()) { output = Wire.read(); } return output; } void writeRegister(uint8_t address, uint8_t value){ // функция записи в регистр Wire.beginTransmission(0x23); Wire.write(address); Wire.write(value); Wire.endTransmission(); } но никак не получается на его основе в метеостанции создать новые сенсоры, не видит нкакие данные от QRM3100. Может что-то конфликтует? вставляю в user_sensor след. образом: #ifndef USERS_H #define USERS_H float MAG[3]; ... knob_t *MAG_X = new knob_t(-10000, 10000, ".01", "mag_X", "nG"); knob_t *MAG_Y = new knob_t(-10000, 10000, ".01", "mag_Y", "nG"); knob_t *MAG_Z = new knob_t(-10000, 10000, ".01", "mag_Z", "nG"); ... uint8_t readRegister(uint8_t address){ // функция чтения регистра uint8_t output; Wire.beginTransmission(0x23); Wire.write(address); Wire.endTransmission(); delayMicroseconds(2); Wire.requestFrom(0x23, 1); while(Wire.available()) { output = Wire.read(); } return output; } void writeRegister(uint8_t address, uint8_t value){ // функция записи в регистр Wire.beginTransmission(0x23); Wire.write(address); Wire.write(value); Wire.endTransmission(); } void getMAG() { while ((readRegister(0x34) & 0x80) != 0x80) {} writeRegister(0b0000001,0b01110001); int8_t mx2 = readRegister(0x24); uint8_t mx1 = readRegister(0x25); uint8_t mx0 = readRegister(0x26); int8_t my2 = readRegister(0x27); uint8_t my1 = readRegister(0x28); uint8_t my0 = readRegister(0x29); int8_t mz2 = readRegister(0x2A); uint8_t mz1 = readRegister(0x2B); uint8_t mz0 = readRegister(0x2C); MAG[0] = ((int32_t)(mx2 * 256 * 256) | (mx1 * 256) | mx0); MAG[1] = ((int32_t)(my2 * 256 * 256) | (my1 * 256) | my0); MAG[2] = ((int32_t)(mz2 * 256 * 256) | (mz1 * 256) | mz0); } ... float getmag_x() { return MAG[0]; } float getmag_y() { return MAG[1]; } float getmag_z() { return MAG[2]; } ... void sensors_config() { cron.add(cron::time_10s, getMAG, true); ... sensors.add(MAG_X, device::out, "mag_x", getmag_x, true); sensors.add(MAG_Y, device::out, "mag_y", getmag_y, true); sensors.add(MAG_Z, device::out, "mag_z", getmag_z, true); ... } #endif Диаграммы создаются, но значения совсем не похожи на данные и не меняются. Подскажите, пожалуйста. **************************** почему-то заработало - полтергейст какой-то
×
×
  • Create New...