import machine
import utime
from dht import DHT22
from i2c_lcd import I2cLcd
from servo import Servo
import network
import utelegram
i2c = machine.SoftI2C(sda=machine.Pin(21), scl=machine.Pin(22))
screen = I2cLcd(i2c, 0x27, 4, 20)
trigger = machine.Pin(13, machine.Pin.OUT)
echo = machine.Pin(12, machine.Pin.IN)
sensor = DHT22(machine.Pin(14))
led = machine.Pin(16, machine.Pin.OUT)
servo_1 = Servo(19)
servo_1.write_angle(0)
def ultra():
trigger.off()
utime.sleep_us(2)
trigger.on()
utime.sleep_us(5)
trigger.off()
while echo.value() == 0:
signal_off = utime.ticks_us()
while echo.value() == 1:
signal_on = utime.ticks_us()
try:
time_passed = signal_on - signal_off
except NameError:
return 0
return time_passed/58
def text(message):
screen.clear()
screen.putstr(message['message']['text'])
bot.send(message['message']['chat']['id'], 'Text printed!')
def check_distance(message):
dist = ultra()
bot.send(message['message']['chat']['id'], f'Distance from object: {dist:.2f}cm')
def door_open(message):
servo_1.write_angle(90)
bot.send(message['message']['chat']['id'], 'door open')
def door_close(message):
servo_1.write_angle(0)
bot.send(message['message']['chat']['id'], 'door close')
def weather(message):
sensor.measure()
temp = sensor.temperature()
humidity = sensor.humidity()
print(f'Temp: {temp}\nHumidity: {humidity}')
bot.send(message['message']['chat']['id'], f'Temp: {temp}\nHumidity: {humidity}')
def led_on(message):
led.on()
bot.send(message['message']['chat']['id'], 'LED ON!')
def led_off(message):
led.off()
bot.send(message['message']['chat']['id'], 'LED OFF!')
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.scan()
wifi.connect('Wokwi-GUEST','')
print('Connecting...')
while not wifi.isconnected():
utime.sleep(0.1)
print('Connected!')
print('Bot starting...')
bot = utelegram.ubot('your_token')
bot = utelegram.ubot('6641427733:AAF9TZu6apgvLMLcBw7lE1O3PMyIPAB2CTM')
bot.register('/on', led_on)
bot.register('/off', led_off)
bot.register('/weather', weather)
bot.register('/check', check_distance)
bot.register('/dooropen', door_open)
bot.register('/doorclose', door_close)
bot.set_default_handler(text)
print('Bot READY!!!!')
bot.listen()