Skocz do zawartości

Problem z Maliną po jakimś czasie lub resecie nie działa program


Brendy

Pomocna odpowiedź

(edytowany)

Oki spróbuję tak jak napisałeś. Narazie jestem po testach 28H i nic nie wywaliło musiałem spr czy na pewno już z tym jest w porządku i jest ok malina już się nie wywala zdjęcia wysyłam z czujnika ruchu jak i poleceniem z apki telegram na tel robi zdjęcie wszystko działa dobrze.

Mam tylko jeszcze jeden mały problem z którym nie mogę się uporać. 

Kiedy zrobię reset to żeby telegram zadziałał tak jak we wcześniejszym programie który wysłałem parę postów wcześniej muszę wywołać 

telegramText == '/start': bot.sendMessage(chat_id, 'Security camera is activated.'

I dopiero mogę wysłać z czujki zdj trochę martwi mnie to bo jak nie będzie prądu nastąpi reset maliny to czujka nie zrobi w sytuacji krytycznej zdjęcia.

Po resecie wystarczy, że z tel wyślę komendę /start do telegrama raz i potem jeśli czujka wykryje ruch wyślę za każdym razem zdj. Nie wiem jak ją automatycznie wywołać żeby po resecie czujka bez ręcznej aktywacji od razu wysłała fotę.

ethanak masz jakiś pomysł jak to rozwiązać?

Edytowano przez Brendy
Link do komentarza
Share on other sites

19 minut temu, Brendy napisał:

Nie wiem jak ją automatycznie wywołać żeby po resecie czujka bez ręcznej aktywacji od razu wysłała fotę.

Z tego co wiem nie da się - serwer Telegrama i tak nie przyjmie takiej wiadomości, każda aktywność bota musi być poprzedzona wysłaniem do niego informacji.

Ale jeśli to ma działać jako automatyczny alarm to malinka raczej nie powinna być resetowana...

 

Link do komentarza
Share on other sites

(edytowany)

Kurcze dziwne bo na Esp32 pisałem program mam na Telegramie w domu cały system alarmowy od powiadomień otwartych drzwi czujek ruchu, skrzynki pocztowej itp do odpytywania czujników z temp wilgotność itp włączania przekaźników i tam podnosi się po resecie tylko tam jest inna biblioteka być może tu jest problem.

Czyli jakiś UPS?

Edytowano przez Brendy
Link do komentarza
Share on other sites

2 minuty temu, Brendy napisał:

Czyli jakiś UPS?

Może być, chociaż w rzeczywistym systemie raczej robiłbym to na ESP32 (mniejszy pobór prądu, szybszy start, akumulator w UPS-ie to może być najzwyklejszy 18650 na którym pół dnia pochodzi, nie ma niebezpieczeństwa że po resecie nie wstanie albo że zajeździłeś kartę logami). A malinka może się zajmować poważniejszymi sprawami.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Na Esp32 robiłem kamerę z Telegramem ale to jest lipa 2MP nędza obraz na malinie obraz to bajka ale wiadomo nie ma co porównywać Esp32 z malina każdy procesor do czego innego służy.

Wszystko już mi fajne chodzi tylko utrata zasilania robi problem chyba że zastosuje tego UPS'a.

Link do komentarza
Share on other sites

Bez jakiegoś UPS-a się raczej nie obejdzie.  Ale w sieci jest mnóstwo materiałów jak to zrobić, tak że nie powinien byc to wielki problem. A nawet jak się nie chce to UPS dla malinki razem z akumulatorami to cos koło stówki na Aledrogo 🙂

Link do komentarza
Share on other sites

A, wiedziałem że coś jest nie tak w programie 🙂

Nic dziwnego że coś musisz mu wysłać, bo wywołanie całego wspaniałego programu masz w handlerze odebranej wiadomości. A to while 1 na końcu wzięło się z zupełnie innego programu.

Może jednak zamiast bot.message_loop(handle) użyj czegoś w stylu:
 

MessageLoop(bot, {'chat':handle}).run_as_thread()
print("Started")
while True:
	main()

a w handle wrzuć tylko jakieś wysłanie  "dzień dobry". W send Message zamiast chat_id wstaw swój id.

Nie sprawdzałem, ale spróbuj.

Link do komentarza
Share on other sites

(edytowany)
def handle(msg):
  global telegramText
  global chat_id
  global receiveTelegramMessage
  
  chat_id = msg['chat']['id']
  telegramText = msg['text']
  
  print("Odebralem Wiadomosc Z Tel " + str(chat_id))
  
  if telegramText == "/start":
     bot.sendMessage(chat_id, "Aktywacja BOT")
  
  else:
    buzzer.beep(0.1, 0.1, 1)
    receiveTelegramMessage = True

bot = telepot.Bot('Tutaj Wstaw Moj Klucz Bota')
MessageLoop(bot, {'chat':handle}).run_as_thread()
print("Started")

Próbowałem róznie, ale caly czas mam jakiś błąd. 

IMG_20220726_093333.jpg

Edytowano przez Brendy
Link do komentarza
Share on other sites

A masz zaimportowane?

from telepot.loop import MessageLoop

Tak przy okazji mała prośba:

jeśli chcesz abym Ci dalej w czymś pomógł to skopiuj opisy błędów i wklej ('wstaw kod programu' -> 'bez podświetlenia składni'). Wiem, ze tu mnóstwo młodych ludzi o sokolim wzroku, ale jakoś w wątku zgłasza się tylko stary przyślepawy ethanak, któremu czytanie tekstów z paszczatej fotki sprawia lekką trudność.

Edytowano przez ethanak
Link do komentarza
Share on other sites

Przepraszam zakręciłem się nie dodałem tej linijki.

To może żebyśmy się nie pogubili to od początku, wstawiam program dzialajacy, ale z tą różnicą że trzeba aktywować bota. Własnie z kopiowaniem opisów błędów mam problem muszę to obczaić bo nie moge skopiowac używam thoony IDE.

from gpiozero import Buzzer, DigitalInputDevice
import telepot
import picamera

sensor = DigitalInputDevice(26, pull_up=True)
buzzer = Buzzer(17)

def handle(msg):
  global telegramText
  global chat_id
  global receiveTelegramMessage
  
  chat_id = msg['chat']['id']
  telegramText = msg['text']
  
  print("Odebralem Wiadomosc Z Tel " + str(chat_id))
  
  if telegramText == "/start":
     bot.sendMessage(chat_id, "Aktywacja BOT")
  
  else:
    buzzer.beep(0.1, 0.1, 1)
    receiveTelegramMessage = True

def WykonajFoto():
    print("Wykonuje Zdjecie…")
    camera = picamera.PiCamera()
    camera.capture('./photo.jpg')
    camera.close()
    print("Wyslanie Zdjecia do Telegram " + str(chat_id))
    bot.sendPhoto(chat_id, photo = open('./photo.jpg', 'rb'))

def sensorPir():
    global statusText
    global sendTelegramMessage
    global kameraWlacz
    global wyslijZdjecie
    
    statusText = "Wykryto Ruch !"
    sendTelegramMessage = True
    kameraWlacz = True

    if kameraWlacz == True:  
        wyslijZdjecie = True
    buzzer.beep(0.1, 0.1, 1)

bot = telepot.Bot('Moj klucz bOT')
bot.message_loop(handle)

sensor.when_deactivated = sensorPir

receiveTelegramMessage = False
sendTelegramMessage = False
kameraWlacz = False
WyslijZdjecie = False

statusText = ""

print("Telegram BOT Gotowy do Pracy")
buzzer.beep(0.1, 0.1, 2)

try:
    while True:
        if receiveTelegramMessage == True:
            receiveTelegramMessage = False
            
            statusText = ""
            
            
            if telegramText == "/Zdjecie":
                
                statusText = "Zdjecie Wykonane…"
                WykonajFoto()
            else:
                statusText = "Blad Nie Wykonano Zdjecia"
            
            sendTelegramMessage = True
        
        if sendTelegramMessage == True:
            sendTelegramMessage = False
            bot.sendMessage(chat_id, statusText)

        if kameraWlacz == True: 
            kameraWlacz = False
            wyslijZdjecie = False
            WykonajFoto()
            
except KeyboardInterrupt:
    sys.exit(0)


 

Link do komentarza
Share on other sites

Haha zrobiłem wreszcie działa bot się sam zgłasza także jak zasilanie straci malina i kiedy wróci zasilanie dostanę powiadomienie na tel że nastąpił reset maliny bot się zgłasza automatycznie i idzie fota po resecie😄😄

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.