Jump to content

Appli Webcam autonome wifi par ftp sur free.


Recommended Posts

Salut a tous !

je reve de mettre une webcam sur un spot de windsurf.

Je viens d acheter un smartphone android parfait pour ca

le xperia x10 mini !

wifi

android 2.1

photo de qualite

tout petit !

le projet doit pouvoir:

1/ transmettre les photos HD toutes les 2min en wifi par ftp (en utilisant les reseaux ouverts (free sfr...))

2/ se recharge en solaire, donc conso au minimum (coupure du wifi, ecran...)

3/ fiable (pas de plantage) !

n étant pas un expert de la programmation java, je me suis intéressé a ce projet très simple :

ici

il utilise Ruby, un langage script fonctionnant sous Scripting Layer for Android (SL4A)

20lignes et incroyable ca marche !

sources completes ici :

https://github.com/mleone/spycam

sur ma lancé j ai modifié le projet pour prendre des photos et les transmettre sur FTP .

en 30 lignes, les photos sont transmises automatiquement,

le fichier est dispo ici

( remplacez le username et pass par vos identifiant free )

j ai ajouté le programme keepscreen, pour désactiver le mode veille lors du lancement de l appli..

probleme :

Si coupure connexion wifi, le script plante lamentablement...

bref a moitié content

Vous avez des idees ?, ou vous connaissez deja une appli de ce genre ?

Happy Android !

Link to comment
Share on other sites

j ai refait le boulot en python, encore plus marrant, j arrive mieux a gerer le reseau wifi comme ca.

ca tourne depuis pas mal.

la source en python est ici : http://escota.free.fr/webcam/camera_wifi_v1.py

un bon tuto du forum est la, les exemple sont bluffants !

l'image transmise est top, contrairement a SECuRET LiveStream sur android market.

si vous avez des remarques...

je cherche de l aide sur la gestion des erreurs en ftp car si j ai probleme lors de la transmission, tout plante...

Link to comment
Share on other sites

  • 3 months later...

J'ai cherché ce genre d'application également.

Je suis tombé là dessus:

http://www.slackey.com/nascam/

Avec mon X10 mini pro, çà fonctionne à merveille pour un upload sur free.

Le truc c'est que tu veux cela toutes les X secondes, il existe peut-être une autre version avec plus d'options...

Sur le X10, si jamais tu essais l'appli, renseigne correctement le nom du fichier et son chemin et surtout reboot le X10 après changement.

Bon courage.

Link to comment
Share on other sites

  • 1 month later...

Merci pour le lien !

je me suis remis a ce petit projet, mais en script.

j ai branche un petit panneau solaire 4v de 10x5 cm au *** du x10, ca charge !

j ai l espoir de le faire tourner 24h, une photo toute les 5min, ou toutes les 10min si bat<40%

je cherche des info sur le deep sleep.

avec la nouvelle version de sl4a (r3) tout est bien plus stable.

voila la source (juste le login et pass a changer)

#!/usr/bin/python
import android
import time

droid = android.Android()

from ftplib import FTP


# Demarrer avec le Plane mode ON
data = droid.toggleAirplaneMode().result
if data == False:
  print '*** Desactivation du mode avion ***'
  data = droid.toggleAirplaneMode().result

#  print '****  RAZ du Log'     
f = open("/sdcard/log.txt" , "w")
f.close()

# 10000 Photos
#for loop in range(0, 10000):

loop = 1
infinite = 1 
while infinite == 1 :

# Plane mode OFF
 data = droid.toggleAirplaneMode().result

 #print '+++++++++ REVEIL ' + str(loop)
 wifi = False
 while wifi == False :        

   droid.batteryStartMonitoring()
   # tentative toute les 20s :
   time.sleep(20)

   # Verification de la connection Wifi
   data = droid.wifiGetConnectionInfo().result
   # Verification de la batterie
   battery = droid.batteryGetLevel().result
   temp = droid.batteryGetTemperature().result
   statebat = droid.batteryGetStatus().result

   droid.batteryStopMonitoring() 

   info = ''
   count = 0
   ip_record = 0

   # Parser
   for k, v in data.items():
     info += k + ': ' + str(v) + '\n'
     count = count + 1

     if count == 7: 
      rssi_record = v
      #print str(loop) + ' rssi ' + str(rssi_record) + ' bat ' + str(battery) + ' temp ' + str(temp)

     if count == 8: 
      ip_record = v

   if rssi_record < -75 :
     print '**** WIFI LOW ****'
     wifi = False

   elif ip_record == 0 :
     print '**** NO IP ****'
     wifi = False
     droid.wifiReassociate()

   else :      
       #print '**** WIFI OK ****'
       wifi = True  

 #print '****  Take picture'
 droid.cameraCapturePicture ("/sdcard/photo.jpg")
 time.sleep(3)

 #print '****  Ecriture le Log'     
 f = open("/sdcard/log.txt" , "a")
 f.write( str(loop) + ' ' + time.strftime('%c') + ' ,bat ' + str(battery) + ' ,temp ' + str(temp) + ' ,power ' + str(statebat) + ' rssi ' + str(rssi_record) + "\n" )
 f.close()

 #print '****  Transmission par FTP' 
 ftp=FTP("ftpperso.free.fr", "xxx", "xxx")
 ftp.cwd ('webcam')

 #print '****  Write FTP'
 fichier = open("/sdcard/photo.jpg", 'rb')
 ftp.storbinary('STOR latest.jpg', fichier)
 #ftp.storbinary('STOR photo' + str(loop) + '.jpg', fichier)
 #ftp.rename('photo' + str(loop) + '.jpg', 'latest.jpg')
 fichier.close()

 fichier = open("/sdcard/log.txt", 'rb')
 ftp.storbinary('STOR log.txt', fichier)
 fichier.close()

 ftp.close()    
 # Plane mode ON
 droid.toggleAirplaneMode()
 #print '**** DODO ****'

 #droid.wakeLockAcquirePartial() 
 #droit.wakeLockRelease() 

 #preserve la batterie
 tempo = 5  

 if  battery < 40 :
   tempo = 10

 for loop_dodo in range(0, tempo):
  time.sleep(60)

 loop = loop + 1  

Edited by eurobears
Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...

Bon je me suis a nouveau penché sur le projet mais en JAVA .

prise de photo en full resolution avec autofocus : Ok
transmission ftp : OK
gestion de wifi : OK
transmission en FTP : OK
Timer gestion du sleep mode: OK

tout marche donc, sauf ca plante a la deuxieme photos :huh:
 

Edited by eurobears
Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...
  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...