рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдЗрдореНрдкреИрдХреНрдЯ - рдПрдХ рд╡рд╛рдИрдлрд╛рдИ рдерд░реНрдорд╛рдореАрдЯрд░ рдмрдирд╛рдирд╛

рдЖрдк рдореЗрдВ рд╕реЗ рдХрдИ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдЗрдореНрдк рдХреА рдШреЛрд╖рдгрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЬреЛ рд╣рдм рдкрд░ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ рдерд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ , рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдкрд╣рд▓реЗ рдЗрдВрдкреНрд░реЗрд╢рди рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреЗ рд╣реИрдВ ред рдЪреВрдБрдХрд┐ рдпрд╣ рдЙрдкрдХрд░рдг рдореЗрд░реЗ рд▓рд┐рдП рдЖрд╢рд╛рдЬрдирдХ рдФрд░ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рдерд╛, рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдбреЗрд╡рд▓рдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдиреЗ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ред


рд╣рдо рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВ


рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдЗрдореНрдкреНрд░реЗрд╢рди рдХреА рдЦрд░реАрдж рд▓рд╛рдЧрдд $ 29.95 рд╣реИ , рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд╢реБрд▓реНрдХ рдЦрд░реАрджрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрдорд╛рди $ 19.95 рдерд╛ (рдЕрдм рдХреАрдордд рдШрдЯрдХрд░ $ 12.95 рд╣реЛ рдЧрдИ рд╣реИ )ред


рдХрд┐рдЯ рдЖрдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ "рд╣реИрд▓реЛ, рджреБрдирд┐рдпрд╛!" рдХреЗ рдмрдЬрд╛рдп , рдирд┐рдорд┐рд╖ рдПрд▓ рдИ рдбреА рдиреЗ рдХреБрдЫ рдФрд░ рдЙрдкрдпреЛрдЧреА рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рджрд┐рдорд╛рдЧ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдиреЗ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдПрдХ рддрд╛рдкрдорд╛рди рд╕рдВрд╡реЗрджрдХ рдкрд░ рд░реБрдХ рдЧрдпрд╛ред рдореИрдВ рдбрд┐рдмреНрдмреЗ рдореЗрдВ рд░рдо рдЧрдпрд╛ рдФрд░ 10Kmm рдерд░реНрдорд┐рд╕реНрдЯрд░ рдФрд░ DS18B20 рдкрд╛рдпрд╛ред DS18B20 рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдЗрдореНрдк рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдПрдкреАрдЖрдИ рдореЗрдВ рд╡рдирд╡рд╛рдпрд░ рд╕рдкреЛрд░реНрдЯ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ ред
рдерд░реНрдорд┐рд╕реНрдЯрд░ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ

рдерд░реНрдорд┐рд╕реНрдЯрд░ рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ ( рд╕реНрд░реЛрдд )

рддрд╛рд░реЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ 750mAh рдХреА рдмреИрдЯрд░реА рдХрдиреЗрдХреНрдЯ рдХреА, рдЬрдмрдХрд┐ рдмреЛрд░реНрдб рдореЗрдВ рд╣реА рдореБрдЭреЗ рдЬрдореНрдкрд░ рдХреЗ рд╕рд╛рде рдмреИрдЯрд░реА рдкрд╛рд╡рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдХреЙрдореНрдкреИрдХреНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдмрди рдЧрдпрд╛ред




рддрд╛рдкрдорд╛рди рдХреЛ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЛ рдмреЗрдХрд╛рд░ рд▓реЗрдЯрд╛ рд╣реБрдЖ рдерд╛ рдФрд░ рдХреБрдЫ рдЪреАрдиреА рд╕реЗрдЯ рд╕реЗ 16x2 рдПрд▓рд╕реАрдбреА рд╕рдВрдХреЗрддрдХред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ ( рд╕реНрд░реЛрдд ) рдХреЗ рд▓рд┐рдП рдПрд▓рд╕реАрдбреА 16x2 рд╕реВрдЪрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛

рдореБрдЭреЗ рдереЛрдбрд╝реА рддрдХрд▓реАрдл рдЙрдард╛рдиреА рдкрдбрд╝реА рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рддрд░рд╣ рдХреЗ рдордзреНрдпрд╡рд░реНрддреА рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдФрд░ рдордХреНрдЦреА рдкрд░ рдХреЛрдб рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдмреЛрд░реНрдб рдкрд░ рдХрдИ рдкреИрд░реЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдмрд╕ рдПрд▓рд╕реАрдбреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рдереАред

рдкреНрд░реЛрдЧреНрд░рд╛рдо


рдерд░реНрдорд┐рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдВрдк рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдЧреНрд▓рд╛рдЗрдбрд░ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдореБрдЭреЗ рд╡рд╣ рд╕реНрдерд╛рди рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЪреВрдВрдХрд┐ рдПрдкреАрдЖрдИ рдореЗрдВ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЕрдВрджрд░ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдбреАрдмреНрд░реАрдлрд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрдореНрдк рдЕрдиреБрд░реЛрдз рд╕реАрдзреЗ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ, рдпрд╛ рддреЛ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЕрдВрджрд░ рд░рд╛рдЙрдЯрд░ рдкрд░ рдкреЛрд░реНрдЯ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░реЗрдВ, рдпрд╛ рдЗрд╕реЗ рдЕрдкрдиреЗ рдмрд╛рд╣рд░реА рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬреЗрдВ, рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд╕реЗ рдирд╡реАрдирддрдо рд░реАрдбрд┐рдВрдЧ рдХреЛ рдмрд╛рд╣рд░ рдЦреАрдВрдЪреЗрдВред рдкреЛрд░реНрдЯ рдлрд╝реЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдЙрдкрдпреЛрдЧ рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдРрдк рдЗрдВрдЬрди рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрд╡рд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрд╕реЗ рдЧреНрд░рд╛рдлрд╝ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛, рдЬреЛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд┐рдХрд▓рд╛ред
main.py
#!/usr/bin/env python import webapp2 import json import logging import utils import time import os import datetime from google.appengine.ext.webapp import template from google.appengine.ext import db class Sensor(db.Model): temperature = db.FloatProperty(required = True) battery = db.FloatProperty(required = True) added = db.DateTimeProperty(auto_now_add = True, indexed=True) class SensorRequestHandler(webapp2.RequestHandler): def post(self): data = json.loads(self.request.body) params = json.loads(data['value']) temp = params['temp'] battery = params['battery'] sensor = Sensor(temperature = temp, battery = battery) sensor.put() self.response.out.write('OK') def get(self): sensors_data = Sensor.all().order('added').fetch(None) temperature_data = [] battery_data = [] for item in sensors_data: temperature_data.append([int(time.mktime(item.added.timetuple()))*1000 ,round(item.temperature, 1)]) battery_data.append([int(time.mktime(item.added.timetuple()))*1000, round(item.battery, 2)]) path = os.path.join(os.path.dirname(__file__), 'templates/charts.html') self.response.out.write(template.render(path, { 'temperature_data' : utils.GqlEncoder().encode(temperature_data), 'battery_data' : utils.GqlEncoder().encode(battery_data) })) class LastRequestHandler(webapp2.RequestHandler): def get(self): ordered_list = db.GqlQuery('select * from Sensor order by added desc limit 1') last = ordered_list.get() self.response.headers['Content-Type'] = 'application/json' self.response.out.write(utils.GqlEncoder().encode(last)) class CleanRequestHandler(webapp2.RequestHandler): def get(self, bulk = 'old'): logging.debug("bulk: %s", bulk) try: while True: q = Sensor.all() if bulk != 'all': q.filter('added <', datetime.date.today() - datetime.timedelta(days=60)) assert q.count() db.delete(q.fetch(200)) time.sleep(0.5) except Exception, e: self.response.out.write(repr(e)+'\n') pass app = webapp2.WSGIApplication([ ('/sensor', SensorRequestHandler), ('/sensor/last', LastRequestHandler), ('/sensor/clean/?(all)?', CleanRequestHandler) ], debug=True) 


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
- рд╣рд░ 10 рдорд┐рдирдЯ рдореЗрдВ рдмрд╛рд╣рд░реА рд╕рд░реНрд╡рд░ рдкрд░ рддрд╛рдкрдорд╛рди рд░реАрдбрд┐рдВрдЧ рднреЗрдЬрддрд╛ рд╣реИ
- рд╕рд░реНрд╡рд░ рдЗрд╕ рдорд╛рди рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред
- рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╣рд░ рдХреБрдЫ рдорд┐рдирдЯ рдореЗрдВ рддрд╛рдкрдорд╛рди рд░реАрдбрд┐рдВрдЧ рд▓реЗрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрд▓рд╕реАрдбреА рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИред
рддрд╛рдкрдорд╛рди рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░, рдореИрдВрдиреЗ рдмреИрдЯрд░реА рд╡реЛрд▓реНрдЯреЗрдЬ рд░реАрдбрд┐рдВрдЧ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдПрдкреАрдЖрдИ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдмреЛрд░реНрдб рд╕реЗ рд╣реА рд╡реЛрд▓реНрдЯреЗрдЬ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (~ 3.25V)ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, HTTP рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рд╡рд░реНрддрдорд╛рди рдХреНрд╖рдорддрд╛рдПрдВ рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ JSON рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рдХреГрдд рдФрд░ рдкреИрдХ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬреЛ рдХрд┐ JSON рдореЗрдВ рджреВрд╕рд░реА рдмрд╛рд░ HTTPRequest рдиреЛрдб рдХреЗ рдЕрдВрджрд░ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
 class Termistor { pin_num = null; constructor(pin){ pin_num = pin hardware["pin" + pin_num].configure(ANALOG_IN); } function read(){ return hardware["pin" + pin_num].read(); } function getTemperature(){ local temp = math.log(((655350000/read()) - 10000)); temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * temp * temp ))* temp ); temp = temp - 273.15; return temp; } } local sensor = Termistor(9); local output = OutputPort("Temperature", "string"); imp.configure("Termistor 10K", [], [output]); function capture(){ imp.wakeup(600.0, capture); local temp = sensor.getTemperature(); local jsonOut = "{\"temp\":"+temp+", \"battery\":"+hardware.voltage()+"}"; output.set(jsonOut); server.show(format("%1.1f┬║C", temp)); } capture(); imp.sleep(2.0) server.sleepfor(600.0) 


рд▓рд╛рдн рдЫреАрдирдирд╛


рдЪрд╛рд░реНрдЯ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рджреЗрдЦреЗрдВ:


рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рддрд╛рдкрдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ


рдЕрдзрд┐рдХ рджреГрд╢реНрдп рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╡реАрдбрд┐рдпреЛ рд╢реВрдЯ рдХрд┐рдпрд╛ (рдореИрдВ 720p рдФрд░ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ):


рдКрд░реНрдЬрд╛ рдХреА рдмрдЪрдд


Imp рдХреЛ рддреАрди рдореЛрдб рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдЕрдХреНрд╖рдо рд╢рдХреНрддрд┐рдпрд╛рдБ рдореЛрдб (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)


рдЗрд╕ рдореЛрдб рдореЗрдВ, рд╡рд╛рдИрдлрд╛рдИ рдореЙрдбреНрдпреВрд▓ рд╣рдореЗрд╢рд╛ рдЪрд╛рд▓реВ рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рдХрдо рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдВрдмрддрд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди 3.3V рдХреЗ рд▓рд┐рдП ~ 60-80mA рдХреА рдЙрдЪреНрдЪ рд╡рд░реНрддрдорд╛рди рдЦрдкрдд рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ

Powersave рдореЛрдб рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛


рдЗрд╕ рдореЛрдб рдореЗрдВ, рдЦрдкрдд 5mA рдкрд░ рдХрдИ рдмрд╛рд░ рдЧрд┐рд░рддреА рд╣реИ рдЬрдм рдХреЛрдИ рд╡рд╛рдИрдлрд╛рдИ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд╕реЗ рдкрд╣рд▓реЗ рджреЗрд░реА рддрджрдиреБрд╕рд╛рд░ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ рдФрд░ рдпрд╣ 250ms рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЧрд╣рд░реА рдиреАрдВрдж


рдЗрд╕ рдореЛрдб рдореЗрдВ, рдЗрдореНрдкреИрдХреНрдЯ рд╡рд╛рдИрдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рд╕рдВрджрд░реНрдн рдЦреЛ рджреЗрддрд╛ рд╣реИ (рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдирд╡реА рдЯреЗрдмрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдФрд░ рдмрд╣реБрдд рдХрдо рдмрд┐рдЬрд▓реА рдЦрдкрдд рдореЛрдб (~ 6 ╬╝A) рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИред рдпрд╛ рддреЛ рдкреНрд░реА-рдХреЙрдХрдб рдЯрд╛рдЗрдорд░ рдпрд╛ рд╡реЗрдХ-рдЕрдк рдкрд┐рди рдЖрдкрдХреЛ рдЬрдЧрд╛ рд╕рдХрддрд╛ рд╣реИред WiFi рдиреЗрдЯрд╡рд░реНрдХ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 2s рд▓рдЧрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд╛рд╡рд░рд╕реЗрд╡ рдореЛрдб рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкреНрд░рдпреЛрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдПред рдЙрд╕ рдореЛрдб рдХреЗ рд╕рд╛рде, рдХрд┐ рдЫреЛрдЯрд╛ рд╕рд╛ рднреВрдд рдХреЗ рд╕рд╛рде, рдореИрдВ рддреАрди рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдХреЗрд▓рд╛ рд░рд╣рддрд╛ рдерд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рд╕рдорд╛рди рдкреЙрд╡рд░рд╕реЗрд╡ рдореЛрдб рдореЗрд░реЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдЪрд╛рд▓реВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдФрд╕рдд рдЦрдкрдд рдирд┐рдХрд▓рддреА рдереА

750/24 * 3 ~ 10 рдПрдордП, рдЬреЛ рдХрд┐ рд╢рд╛рдорд┐рд▓ рдкреЙрд╡рд░рд╕реЗрд╡ рдореЛрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред

рдЧрд╣рд░реА рдиреАрдВрдж рдореЛрдб рдореЗрдВ, рдЗрдореНрдк рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рдкрдорд╛рди рд╕рдВрд╡реЗрджрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╡реЛрд▓реНрдЯреЗрдЬ 4.2 рд╕реЗ рдЧрд┐рд░рдХрд░ 3.68 рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд 750mAh рдХреА рд▓реАрдкреЛ рдмреИрдЯрд░реА рд▓рдЧрднрдЧ рдбреЗрдврд╝ рдорд╣реАрдиреЗ рддрдХ рдЪрд▓рдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИред

рдпреЛрдЬрдирд╛рдУрдВ


рдПрдХ рдИрдорд╛рдирджрд╛рд░ рдмреИрдЯрд░реА рд╡реЛрд▓реНрдЯреЗрдЬ рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВ (рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ LiPo рдмреИрдЯрд░реА рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ), рд╕реМрд░ рдмреИрдЯрд░реА рдХреЛ рддреЗрдЬ рдХрд░реЗрдВ рдФрд░, рдЬрдмрдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ, рдЙрддреНрд╕рд╛рд╣реА рдореМрд╕рдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рддрд╛рдкрдорд╛рди рд╕рдВрд╡реЗрджрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЧреАрдЧрд░ рдХрд╛рдЙрдВрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ

рдирд┐рд╖реНрдХрд░реНрд╖


рдбрд┐рд╡рд╛рдЗрд╕ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЖрд╢рд╛рдЬрдирдХ рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдЗрдореНрдк рд╕рд░реНрд╡рд░реЛрдВ рдФрд░ рдПрдкреАрдЖрдИ рдХреА рдХрдореА рд╕реЗ рддрдВрдЧ рдмрдВрдзрди рджреНрд╡рд╛рд░рд╛ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рд╣реИред рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЗрди рдХрдорд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдЗрдореНрдк рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рд╣реИред

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ


1. рдЬреАрдердм рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб
1. рдЕрд░реБрдбрд┐рдиреЛ + рдЯрд░реНрдорд┐рд╕реНрдЯрд░
2. рд╡рд┐рджреНрдпреБрдд рдЫреЛрдЯрд╛ рд╕рд╛ рднреВрдд рд╡рд┐рдХреА
3. рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд╕рд╛рде 16x2 рдПрд▓рд╕реАрдбреА рдбреНрд░рд╛рдЗрд╡ рдХрд░реЗрдВ

Source: https://habr.com/ru/post/In164105/


All Articles