fork download
  1. # your code goes here
  2. """ base58 encoding / decoding functions """
  3. import unittest
  4.  
  5. alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
  6. base_count = len(alphabet)
  7.  
  8. def encode(num):
  9. """ Returns num in a base58-encoded string """
  10. encode = ''
  11.  
  12. if (num < 0):
  13. return ''
  14.  
  15. while (num >= base_count):
  16. mod = num % base_count
  17. encode = alphabet[mod] + encode
  18. num = num / base_count
  19.  
  20. if (num):
  21. encode = alphabet[num] + encode
  22.  
  23. return encode
  24.  
  25. def decode(s):
  26. """ Decodes the base58-encoded string s into an integer """
  27. decoded = 0
  28. multi = 1
  29. s = s[::-1]
  30. for char in s:
  31. decoded += multi * alphabet.index(char)
  32. multi = multi * base_count
  33.  
  34. return decoded
  35.  
  36. class Base58Tests(unittest.TestCase):
  37.  
  38. def test_alphabet_length(self):
  39. self.assertEqual(58, len(alphabet))
  40.  
  41. def test_encode_10002343_returns_Tgmc(self):
  42. result = encode(10002343)
  43. self.assertEqual('Tgmc', result)
  44.  
  45. def test_decode_Tgmc_returns_10002343(self):
  46. decoded = decode('Tgmc')
  47. self.assertEqual(10002343, decoded)
  48.  
  49. def test_encode_1000_returns_if(self):
  50. result = encode(1000)
  51. self.assertEqual('if', result)
  52.  
  53. def test_decode_if_returns_1000(self):
  54. decoded = decode('if')
  55. self.assertEqual(1000, decoded)
  56.  
  57. def test_encode_zero_returns_empty_string(self):
  58. self.assertEqual('', encode(0))
  59.  
  60. def test_encode_negative_number_returns_empty_string(self):
  61. self.assertEqual('', encode(-100))
  62.  
  63. if __name__ == '__main__':
  64. #print encode(int("00B94BA6C51B3D8372D82FDE5DC78773D960B5A82FCDAC8181",16))
  65. print hex(decode("Wh4bh"))
Success #stdin #stdout 0.02s 7988KB
stdin
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,10,11,12,13);//RS,EN,D4,D5,D6,D7
#include <Servo.h>
#define ir1 A1
#define sen1 A0 // moisture
#define buzzer 2
#define theft A2
#define trigPin1 5////right
#define echoPin1 4
#define trigPin2 7  //// front
#define echoPin2 6
int chori=0;
long duration, distance,sensor1,sensor2; // us variable
int onetime=0,onetime1=0 ;
int wet=0,moisture=0,object=0,cabin2=0,c1=0,c2=0;
Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most board
void setup() 
{
 Serial.begin(9600);
 lcd.begin(16, 2);//initializing LCD
 lcd.setCursor(0,0); 
 lcd.print("Automatic WASTE");
 lcd.setCursor(0,1); 
 lcd.print("Segregation sys");
 delay(3000);
 pinMode(ir1,INPUT);
 pinMode(theft,INPUT);
 pinMode(sen1,INPUT);
 pinMode(buzzer,OUTPUT);
 pinMode(trigPin1, OUTPUT);
 pinMode(echoPin1, INPUT);
 pinMode(trigPin2, OUTPUT);
 pinMode(echoPin2, INPUT);
 myservo.attach(3);  // attaches the servo on pin 9 to the servo object
 myservo.write(85);
 delay(3000);
}

void loop() 
{
 chori=digitalRead(theft);
 if(chori==HIGH){digitalWrite(buzzer,HIGH); lcd.setCursor(0,1); 
  lcd.print("theft Alert!");}
 else{digitalWrite(buzzer,LOW);}
 moisture=analogRead(sen1);
 Serial.print("moisture = ");
 Serial.println(moisture);
 delay(500);
 //////////////////////////////////////////////////////
 ultrasensor(trigPin1, echoPin1);
 sensor1 = distance;
 delay(10);
 
  ultrasensor(trigPin2, echoPin2);
  sensor2 = distance;    
  delay(10);
  
  Serial.println(sensor1);
  Serial.println(sensor2);
  
  int lvl1=(16-sensor1)*6.5;
  int lvl2=(16-sensor2)*6.5;
  Serial.println(lvl1);
  Serial.println(lvl2);
  if(lvl1<0){lvl1=0;}
  if(lvl2<0){lvl2=0;}
  if(lvl1>100){lvl1=100;}
  if(lvl2>100){lvl2=100;}
  lcd.clear();
  lcd.setCursor(0,0); 
  lcd.print("moisture: ");
  lcd.setCursor(12,0); 
  lcd.print(moisture);
  delay(1000);
  lcd.clear();
  lcd.setCursor(0,1); 
  lcd.print("DL= ");
  lcd.setCursor(4,1); 
  lcd.print(lvl1);
  lcd.setCursor(8,1); 
  lcd.print("WL= ");
  lcd.setCursor(13,1); 
  lcd.print(lvl2);
  delay(1000);
  if(lvl1 <= 100 && lvl1 >= 70)
  {      
   if(onetime==0)
   {
     lcd.setCursor(0,0); 
     lcd.print("-send msg-");
     digitalWrite(buzzer,HIGH); 
     // tracking1(); 
     digitalWrite(buzzer,LOW);
     onetime=1;
   }
  }
  else if (lvl2 <= 100 && lvl2 >= 70)
  {
    if(onetime1==0)
    {
      lcd.setCursor(0,0); 
  lcd.print("-send msg-");
     digitalWrite(buzzer,HIGH); 
     
     
     //tracking();
     digitalWrite(buzzer,LOW);
     onetime1=1; 
    }
  }
else
{
 onetime=0;
 onetime1=0;
}
/////////////////////////////////////////////////////
  object=digitalRead(ir1);
  moisture=analogRead(sen1);
  if(object==LOW)
  {
   moisture=analogRead(sen1);
   lcd.setCursor(0,0); 
   lcd.print("-GARBAGE SENSE-");
   digitalWrite(buzzer,HIGH);
   delay(150);
   digitalWrite(buzzer,LOW);
   delay(1000);
   moisture=analogRead(sen1);
   Serial.print("moisture = ");
   Serial.println(moisture);
   delay(500);
   moisture=analogRead(sen1);
   Serial.print("moisture = ");
   Serial.println(moisture);
   delay(500);
   //delay(2000);
   if(moisture>=40)                         
   {
    lcd.setCursor(0,0); 
    lcd.print(" WET  GARBAGE");
    myservo.write(35);
    delay(5000);
    myservo.write(85);
    delay(2000);
    Serial.println("wet");
   }
   else if(moisture<100)
   {  
    lcd.setCursor(0,0); 
    lcd.print(" dry  GARBAGE");
    myservo.write(145); 
    delay(5000);
    myservo.write(85);
    delay(2000);
    Serial.println("moisture");
    lcd.clear();
   } 
    
  } 
        
 }

 
 void init_sms()
 {
  Serial.println("AT+CMGF=1");
  delay(400);
  Serial.println("AT+CMGS=\"+9199780347\"");   // use your 10 digit cell no. here
  delay(400);
 }

 void init_sms1()
 {
  Serial.println("AT+CMGF=1");
  delay(400);
  Serial.println("AT+CMGS=\"+9199710347\"");   // use your 10 digit cell no. here
  delay(400);
 }
  
 void send_data(String message)
 {
  Serial.println(message);
  delay(200);
 }
 
 void send_sms()
 {
  Serial.write(26);
 }
 
 void tracking1()
 {
  init_sms();
  send_data("KEC  dustbin's dry side  is full:\n");
  send_sms();
  delay(5000);

   init_sms1();
  send_data("KEC  dustbin's dry side  is full:\n");
  send_sms();
  delay(5000);
 }
  void tracking()
 {
  init_sms();
  send_data("KEC  dustbin's wet side  is full:\n");
  send_sms();
  delay(5000);
  init_sms1();
  send_data("KEC dustbin's wet side  is full:\n");
  send_sms();
  delay(5000);
 }
 void ultrasensor(int trigPin,int echoPin)
 { 
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
 }
stdout
0x1406e058