DHT11+UNO+GPRS

Тема в разделе "Arduino & Shields", создана пользователем alspeed, 3 янв 2014.

  1. alspeed

    alspeed Нуб

    Использую DHT11 с UNO с библиотекой <idDHT11.h>
    из примера библиотеки (ниже) датчик подключается с уно по 2 или 3 входу
    /*
    Board int.0 int.1 int.2 int.3 int.4 int.5
    Uno, Ethernet 2 3
    Mega2560 2 3 21 20 19 18
    Leonardo 3 2 0 1
    Due (any pin, more info http://arduino.cc/en/Reference/AttachInterrupt)
    */
    на других не хочет работать.

    А у меня еще есть GPRS shield ( вот такой http://www.tinyosshop.com/image/cache/data/ARDUINO/Shield/GSMSHIELD-4-600x600.jpg) который тоже вешается на 2,3 ногу (SoftwareSerial gprsSerial(2, 3);.
    Как быть?
    Купить мегу?
     
  2. Unixon

    Unixon Оракул Модератор

    1) Попробуйте другую библиотеку: https://github.com/amperka/dht
    2) Мегу все равно купите, "толстенький" контроллер еще пригодится.
     
  3. alspeed

    alspeed Нуб

    Спасибо! Попробую.
     
  4. alspeed

    alspeed Нуб

    С другой библиотекой все решил - повесил DHT11 на аналоговые входы. Но теперь другая проблема.
    Мой GPRS shield работает в программном режиме на порту 2,3. Но в то же время программно включается когда инициализирован на 7,8 порту. Что за фигня?

    Включаю так:
    void standUpGprs() //Включаем GPRS
    {
    gprsSerial.begin(19200);
    gprsSerial.print("AT\r"); // Если шилд включен, ничего не делаем, а то выключим
    delay(1000);
    if (!gprsSerial.available())
    {
    pinMode(9, OUTPUT);
    digitalWrite(9,LOW);
    delay(1000);
    digitalWrite(9,HIGH);
    delay(2000);
    digitalWrite(9,LOW);
    delay(15000);
    }
    }

    Т.е. если я в начале напишу SoftwareSerial gprsSerial(7, 8); - то он будет автоматически включаться, но больше ни на что не реагировать. А если напишу SoftwareSerial gprsSerial(2, 3); - то не будет автоматически включаться, но зато будет работать как надо (у меня принимать отправлять смс)
    ?
     
  5. alspeed

    alspeed Нуб

    Причем при SoftwareSerial gprsSerial(2, 3) если GPRS shield включить вручную, а затем перезагрузить ARDUINO, то при запуске процедуры включения standUpGprs() он сначала выключает shield затем включает его. И соответственно если шилд выключен, то ничего не происходит.
     
  6. lerik2703

    lerik2703 Гик

    правильно так и должно быть т.к. контакты весят в воздухе соответственно ответа нет!и функция gprsSerial.available() вернет 0!
    включите монитор порта и посмотрите что отвечает шилд!
     
  7. alspeed

    alspeed Нуб

    а как (и что) посмотреть если он выключен и не включается автоматически?
    и все равно не понятно почему на 2,3 он не включается но работает, а на 7,8 только включается...
     
  8. alspeed

    alspeed Нуб

    разобрался - питание моего шилда управляется по 8 пину, а не по 9-му. и все работает с SoftwareSerial gprsSerial(2, 3)
     
  9. lerik2703

    lerik2703 Гик

    Китай одним словом!:) а на 9-й пин любезно выведено перезагрузка SIM900