MIT App Inventor Gallery
You are not logged in.
Featured Applications
CreativeProject
June 8, 2016, 3:45 p.m. Likes: 38
Our brains reach capacity at some point; if we were to engage in mindfulness, rather than allowing our minds to be too full, we may achieve the widely sought-after balance of work and play.
March 23, 2016, 5:32 a.m. Likes: 84
This app allows you to direct yourself anywhere.
Credit: http://explore.appinventor.mit.edu/ai2/android-wheres-my-car This is a change from this original code.
More Info: http://explore.appinventor.mit.edu/ai2/android-wheres-my-car
Rock_Scissors_Paper
July 7, 2015, 4:21 p.m. Likes: 44
Dare and challenge the machine. With ten points you earn glory.
BrickBreak_Final
May 27, 2015, 12:56 p.m. Likes: 34
Bounce the ball off the pad and destroy the blocks to win. Its pretty self explanatory especially after playing the game once or twice.
WheresMyLaundry9
May 1, 2015, 11:10 p.m. Likes: 30
Where’s My Laundry? is a useful app that saves you time and makes your life easier. Instead of not knowing when your laundry has been dropped off and sorted from the truck, now you know exactly when your laundry is ready. Prior to this app, customers would come down to pick up their laundry, only to find that it hadn’t arrived yet, or that it wasn’t yet sorted. Now with Where’s My Laundry?, you know when your laundry is ready, so you can wash away your worries!
More Info: https://www.youtube.com/watch?v=_2RV8vc1Qgs
ColoredDots_with_background
April 26, 2015, 11:16 a.m. Likes: 13
This is a modified version of the Colored Dots tutorial. It demonstrates the use of multiple screen, and it also lets you add a background image by loading it from a file or by taking a new photo with the camera.
More Info: http://explore.appinventor.mit.edu/ai2/colored-dots
pongpub
April 26, 2015, 10:02 a.m. Likes: 106
The classic ping pong game in App Inventor. This app demonstrates use of the ImageSprite component and its internal clock mechanism, as well as how to react to events such as a ball hitting the edge or another object.
More Info: http://www.appinventor.org/content/ai2apps/intermediateApps/pong
AndroidMashWeb
April 26, 2015, 10 a.m. Likes: 31
Touch the Android dude to win points! This app shows how to create an animated app with a Canvas and ImageSprite and how to use the Clock timer and program random behavior.
Credit: This app is a remake of the Mole Mash game created for a tutorial by Hal Abelson, Ellen Spertus and the original App Inventor team.
More Info: http://www.appinventor.org/content/ai2apps/simpleApps/androidMash
presidentsQuiz
April 26, 2015, 9:59 a.m. Likes: 16
This trivia quiz concerns US Presidents but can be used as a template for quizzes and study guides on any topic. Demonstrates use of lists and index variables.
More Info: http://www.appinventor.org/content/ai2apps/intermediateApps/presidentsQuiz
NoTextingWhileDriving
April 26, 2015, 9:45 a.m. Likes: 25
This «text answering machine» app auto-responds to incoming texts and speaks them aloud.
App Inventor — создание Android-приложений для каждого: Урок 1
Для начала я расскажу вам немного про App Inventor, а потом мы напишем первое приложение, где будем кормить кота.
App Inventor может использовать человек, не владеющий языками программирования. По принципу действия мне он напоминает WYSIWYG-редактор. Пока регистрация доступна только с разрешения Google. App Inventor освобождает вас от написания кода, вместо этого вы используете подобие блок-схем.
Приступаем к работе
Вначале настройте ваш компьютер и телефон для работы с App Inventor. Затем создайте новый проект, назовите его «HelloPurr», откроете редактор блоков и присоедините телефон. Затем перейдите обратно в окно браузера.
Сейчас в вашем браузере должен быть открыт appinventor.googlelabs.com, а на вашем телефоне должен быть запущен App Inventor Phone Application. Браузер должен быть открыт на странице конструктора, которая выглядит так:
Обзор процесса разработки
В App Inventor приложения строятся объединением стандартных компонентов. Компоненты являются основным элементом разработки Android-приложений, как ингредиенты в рецепте. Некоторые компоненты очень просты, например Label(метка), который просто показывает текст на экране, или Button, который реализует кнопку. Другие же компоненты более сложны: Canvas, в котором можино располагать изображения или анимацию; accelerometer (motion) sensor, который работает как контроллер от Wii, и определяет когда вы трясете или переворачиваете телефон; компоненты, отправляющие сообщения, проигрывающие видео, получающие данные с сайтов, и много других.
Окно конструктора
Создаем метку
UDP в MIT App Inventor 2 на примере программы управления роботом
В некоторых ситуациях приложениях чувствительных ко времени, на пример управление роботом (особенно быстрым), предпочтительно пренебречь надежностью доставки пакета по сети, чем его задержка.
На пример установив приложение UDP Sender из Play market, в android появится служба отправки UDP пакетов, которую можно вызвать из другого приложения, даже «написанного» в визуальном редакторе.
Всё, что нужно знать, чтобы использовать службу отправки UDP пакетов, это полное название пакета приложения, класс, который может взаимодействовать с другими приложениями ну и как формировать запрос из другого приложения.
Для UDP Sender приведу пример отправки UDP пакета с содержимым «send» на IP адрес 192.168.1.200 и порт 8888 из визуального редактора MIT App Inventor2.
Тут при нажатии «Кнопка2» пакет уйдет.
Более подробно, в том числе о скетче для arduino IDE для приема пакетов и исполнении команд смотрим в видео https://www.youtube.com/watch?v=QoNQS12oFFY
P.S. привожу ссылку на видео, по скольку прикрепить видос к посту не хватает кармы))
Arduino & Pi
1.1K поста 18.1K подписчиков
Правила сообщества
В нашем сообществе запрещается:
• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)
• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском
• Рассуждать на темы политики
Подскажите, под какую среду подходит ваш код?
IP адрес для UDP не обязателен. В андроид приложении смотрим наш IP адрес телефона (например 192.168.1.25), берем первую часть 192.168.1. и добавляем 255 и отправляем пакет на 192.168.1.255 и соответствующий порт (на котором у нас слушает nodemcu).
Вот примитивный код для андроид приложения для отправки и приема пакетов по UDP с устройством в локальной сети на 2390 порту
String address = InetAddress.getLocalHost().getHostAddress();
String[] parts = address.split(«\\.»);
String ip = parts[0] + «.» + parts[1] + «.» + parts[2] + «.» + «255»;
InetAddress IP = InetAddress.getByName(ip);
byte [] bytes = new byte[128];
DatagramSocket ds = new DatagramSocket();
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, IP, 2390);
dp = new DatagramPacket(bytes, bytes.length);
String out = new String(dp.getData(), 0, dp.getLength());
Увеличение количества пинов NodeMCU с помощью сдвигового регистра
Так как у NodeMCU не так и много пинов для подключения периферии, часто возникает нехватка pin. Поэтому такую замечательную отладочную плату откладываем на полку и ищем другие железки для реализации проекта.
Но в некоторых случаях можно расширить количество пинов с помощью сдвигового регистра и реализовать проект на NodeMCU.
Все исходные материалы к уроку можно найти на сайте>>
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Термометр-котик
Давно тешил себя мыслью найти термометр, данные с которого будут доступны в веб-панели.
Вопрос стал еще более актуальным после удачной покупки дешевого Б/у кондиционера и желанием прикрутить к нему самопальный климат-контроль (управление любыми устройствами дома через интернет давно налажено)
Проблема заключалась в том, что цена на готовые устройства неприятно кусается, а те, что в обиходе (вроде решений от Xiaomi) не позволяют «просто так» забрать данные каким-либо открытым протоколом
Вдохновившись этой статьей понял, что пора начинать работать с Arduino.
Прошивка из статьи у меня работать почему-то не захотела, решил попробовать написать что-то своё.
Купил всё что надо на одном известном красненьком китайском сайте и достал с полки паяльник.
Вот так выглядит криво пропаенная плата
Да, можно было купить NodeMCU с уже готовыми «рогами» и припаяться к ним, но они торчат и мешают, а мне всё это дел надо уложить в корпус котика
Отрезаем котику ненужные детали в виде светодиодного модуля ночника с батарейками и днища
Аккуратно впихиваем плату и датчик внутрь
Выводим коту на голову антенну для связи с пришельцами (на самом деле это корпус датчика)
Делаем отверстие для ввода кабеля питания, соединяем всё между собой, приделываем днище на место, заливаем щели клеем и вуаля! Термометр-котик весьма сомнительного вида готов!
Теперь данные о температуре можно легко посмотреть через импровизированную веб-страничку
На всё про всё потрачено часов 10 (из них 8 на разработку и 2 на сборку-отладку)
Ветряная метеостанция на ESP8266
Мой первый опыт в этой сфере, поэтому логично, что метеостанция. Прошу гуру не кидаться тапками, если вопрос для всех давно решенный. Хочу собрать более или менее полный метеокомплект, нашел «в этих ваших интернетах» как подключить к ESP8266 всякие разные датчики температуры, влажности, давления и даже радиации. Но только не ветра. Пришлось искать своё решение.
Мой выбор пал на датчики, как обычно, с Али WH-SP-WD (флюгер) и WH-SP-WS01 (анемометр), вот эти:
В сети есть проект под Arduino, там еще описание датчика дождя есть из этого набора. Немного поковырявшись в нём и поняв как устроены эти датчики, собрал такую нехитрую схемку (красный – 3,3V; черный – GND; зеленый – D5; желтый – A0):
На столе она выглядит вот так:
Анемометр устроен максимально просто, один оборот вокруг оси даёт 2 разрыва цепи между 2-м и 3-м контактами телефонного разъема RJ11. Формула расчета скорости ветра
Флюгер устроен чуть сложнее, собран на 8 резисторах:
Соседние дополнительно попарно складываются друг с другом и дают 16 вариантов сопротивлений между 1-м и 4-м контактами RJ11. Я не понял почему, но таблица диапазона значений АЦП из найденного решения для Ардуино (U=5V, R=10кОм) не совсем удовлетворительно легла на мою ESP (U=3,3V и тот же R=10кОм), хотя вроде должна была. Долго разбираться что пошло не так я не стал, просто составил свою таблицу диапазона значений АЦП (на основании фактических показаний):
Вот как бы и всё. Надеюсь кому-нибудь эта информация пригодится.
В одном из предыдущих видео на своём канале я рассмотрел погодную станцию на базе модуля ESP8266 и конструктора прошивок «WiFi-IoT» полностью собранную в корпусе для размещения на улице, т. е. она не имела дисплея. Параметры датчиков с неё я мониторил на своём телефоне через сервис «Народный мониторинг». Это не всегда удобно, и хотелось иметь стационарный дисплей с погодными данными, размещённый в комнате или на кухне, коридоре. В предыдущем посте я рассмотрел такой вариант на базе дисплея TM1637, а до этого на базе дисплея LCD1602. Но здесь есть недостаток – это длинный провод датчика температуры, который идёт от станции за окно. Решений данной проблемы на самом деле несколько, например на комнатном модуле с дисплеем брать данные с «Народного мониторинга», которые туда отправил уличный модуль. Но более простым способом будет взять данные с уличного модуля и вывести на комнатный с дисплеем в локальной сети, а не через многокилометровый путь интернет сервера. В конструкторе прошивок «WiFi-IoT» для этого есть функционал «Virtual SENS» и «Датчики GET запросом», настройку которого мы сейчас и рассмотрим.
В прошивке (профиле) своего «Уличного» модуля на сайте WiFi-IOT.com добавляем (ставим галочку) «Датчики GET запросом» в разделе «Системные». Нажимаем клавишу «Сохранить изменения» и «Скомпилировать».
После успешного обновления переходим по адресу http://[ip адрес модуля]/sensors и здесь мы должны увидеть строку подобного вида (мой вариант):
bmet:-13.0 – температура с датчика BME280 – вторая метрика;
bmeh:48.8 – влажность с датчика BME280 – третья метрика;
bmep:773.62 – давление с датчика BME280 – четвертая метрика;
dsw1:-14.43 – температура с датчика DS18B20 – пятая метрика;
bh:1260 – датчик освещённости – шестая метрика;
В прошивке (профиле) своего «Комнатного» модуля с дисплеем добавляем (ставим галочку) «Virtual SENS» в разделе «Сервисы». Нажав на шестерёнку, указываем нужное количество модулей и датчиков с них (у меня будет один модуль и 5 датчиков с него), а также порт, если доступ к удаленному устройству будет через интернет (не в локальной сети). Нажимаем клавишу «Сохранить изменения» и «Скомпилировать».
Дожидаемся обновления. И на главном экране в сенсорах у нас появятся виртуальные датчики с «Уличного» модуля, но пока они будут выдавать ошибку, т.к. не настроены.
Для настройки переходим во вкладку «VSENS», здесь указываем IP-адрес «Уличного» модуля
Для удалённого доступа вне локальной сети Вам нужно будет указать статический адрес вашего маршрутизатора, на котором при необходимости переназначить и пробросить порт, который указываем здесь.
Теперь Вы их можете вывести их на дисплей ТМ1637 перейдя во вкладку «7SEGM», если собирали «Домашний» модуль по моему предыдущему посту:
Или через «Конструктор строк», используя топик _VSyx_ где «у» и «х» это параметры виртуального сенсора, если вы собрали «Домашний» модуль на базе дисплея LCD1602 по моему этому посту (видео).
Для этого переходим во вкладку «Designer_lines» и указываем нужный текс и параметр виртуального сенсора. Пример:
Простая мини погодная станция на ESP8266 с дисплеем TM1637 + DS18B20 + BME280. Своими руками и без программирования!
Сегодня соберём более компактную погодную станцию на тех же элементах, но в качестве дисплея будем использовать маленький светодиодный TM1637, на который будут поочерёдно выводиться три любых показания с датчиков. Например время, температура на улице и температура в квартире. Так же подключим станцию к «Народному мониторингу» для возможности смотреть погоду удалённо.
Для этого проекта нам понадобятся следующие комплектующие (я покупал их на AliExpress):
3) Датчик температуры DS18B20 (герметичный для размещения на улице);
4) Датчик температуры, давления и влажности BME280 (будет показывать параметры в помещении). Если вам не интересно атмосферное давление, но интересна влажность в помещении, то лучше с этим справится датчик температуры и влажности SHT21, ну а если влажность тоже не интересна, а нужна только температура, то можно обойтись двумя (можно подключить до 10) датчиками DS18B20.
5) Провода Dupont для соединения датчика с платой;
7) Любой подходящий по размерам корпус на ваш вкус и цвет, можно в принципе и обойтись и без него сделав «навесной монтаж»;
UPD по вопросу из комментариев: Себестоимость комплектующих в районе 8-10$ (ESP8266
Выбираем новый профиль и вводим для него имя.
— «Сенсоры» ставим галочку «1-wire DS18B20»;
— «Системные» ставим галочку «Время и NTP»;
— «Дисплеи» ставим галочку «TM1637»;
Этот набор имеет бесплатный функционал.
Если Вы планируете добавить датчики температуры и другие, хотите «откалибровать» (скорректировать показания) датчиков под свой эталон, обновить прошивку через интернет и использовать все возможности сайта, то приобретите в личном кабинете лицензионный ключ, который стоит 110 рублей на один модуль ESP8266.
Затем поставьте дополнительные галочки:
— в «Сенсорах» на датчике BME280 и/или SHT21/SI7021, в зависимости от того, какой будете использовать и «Коррекция датчиков» (+ галочку на DS18B20, нажав на шестеренку)
— в «Системных» на «Обновление ОТА» и «Настройки по умолчанию», где нажимаем шестерёнку и вводим «Имя» и «Пароль» своей Wi-Fi точки доступа, здесь же можете указать динамический или статический IP адрес модуля + IP шлюз. Шлюз обычно имеет адрес 192.168.1.1 или 192.168.0.1 – гуглите инструкцию к своему роутеру/маршрутизатору и смотрите в его настройках. Обратите внимание, что цифры до третьей точки IP адреса и шлюза должны быть одинаковы, и только последнюю у IP адреса вы присваиваете самостоятельно.
Либо вы можете пойти другим путём используя Captive Portal для подключения к модулю и уже в нём настроить подключение к сети Wi-Fi. Этот способ подробно описан в моём первом посте на эту тематику.
Далее, в самом низу нажимаем «Сохранить изменения», затем «Скомпилировать».
Я скачиваю одним файлом (0х00000). Запоминаем путь, куда скачали файл.
Примечание: в некоторых случаях рекомендовано создать в корне диска (С:) папку с названием английскими символами, например «ESP8266» и поместить скачанный файл туда, вместе с программатором, который скачаем следующим этапом.
Подключаем через USB-кабель плату NodeMCU к компьютеру.
Скачиваем с ГитХаба программатор NodeMCU Flasher по этой ссылке.
Распаковываем архив в папку, созданную на диске (С:) (см. Первый этап)
в папке Win32/Release (32-разрядная ОС) или Win64/Release (64-разрядная ОС) находим и запускаем файл ESP8266Flasher.exe
После запуска на вкладке «Advansed» сверяем параметры со скриншотом:
Во вкладке «Config» выбираем, нажав на шестерёнку нашу ранее сохраненную прошивку на диске (С:) и ставим крестик (если не стоит) слева.
Перед первой прошивкой рекомендуется залить в модуль blank по адресу 0х00000, особенно, если в модуле до этого использовалась какая-либо другая прошивка. Подробнее в документации на wifi-iot.com. Я прошиваю сразу, без «чистки бланком», пока проблем не было.
Во вкладке «Operation» выбираем COM Port, который мы запомнили выше в «Диспетчере устройств» и нажимаем кнопку «Flash(F)». По завершении прошивки появится галочка в зеленом кружочке в левом нижнем углу, как на скриншоте:
После прошивки и подключения питания к плате NodeMCU нажимаем однократно кнопку «RST» (ресет) на плате модуля.
Подключаем датчики и дисплей согласно схеме.
Вы можете использовать другие GPIO для подключения, но тогда вам нужно зафиксировать их для себя, чтобы указать в настройках. На фото выше приведена «распиновка» на этот случай.
Подключаем питание к плате NodeMCU и заходим в web-интерфейс модуля, для этого вбиваем указанный в прошивке IP адрес модуля.
— Первым делом нажав «Get Pro mode». Активируйте свою лицензию, купленную на сайте wifi-iot.com
— Переходим во вкладку «Main»;
— Здесь в окошке «GMT zone» устанавливаем свой часовой пояс;
— Возвращаемся в главное меню «Main»;
— Переходим во вкладку «Hardware»;
— Ставим галочку «EnableDS18B20»;
— Указываем GPIO к которому подключен наш датчик температуры, у меня 14;
— Ставим галочку «Enable BME280» или «SHT21» (в зависимости от того, какой датчик установлен);
— Ниже указываем I2C GPIO датчика BME280 или SHT21, у меня GPIO SDA (4) GPIO SCL (5)
— Переходим во вкладку «1-wire». Нажимаем «Clear & Scan list».
— Если хотите скорректировать показания датчика температуры по своему эталону (при наличии) во вкладке «Correction». вводите правки со знаком +/ –, где 10 — это 1 градус.
Самый простой и доступный эталон температуры– это температура человеческого тела )))
— Далее переходим во вкладку настройки дисплея «7SEGM»;
— Ставим галочку «Enable TM1637»;
— Устанавливаем яркость дисплея от 0 до 7;
— Ниже выбираем параметры, которые будут циклично отображаться на дисплее. У меня это время, температура датчика на улице и температура датчика дома. Комфортное время цикла для меня 4-3-2 секунды.
Копируем ваш ID в блокнот, нажимаем «SET» и «SEND NOW». После появления надписи «Server Reply:OK» ваши показания были успешно переданы на «Народный мониторинг».
На этом, но настройке модуля погодной станции у меня в принципе всё, остальное это дело вашей фантазии и желания экспериментировать.
Из особенностей, в заключении хочу добавить, что данная схемотехника позволяет питать станцию, как непосредственно от USB кабеля, подключенного к модулю, так и через кабель для подключения датчика температуры DS18B20, т.к. здесь у нас общая «земля» и «пин 5 вольт» соединён на плате на прямую с USB. В схемотехнике так же указан резистор 4,7 кОм, без него датчик температуры тоже работает, но рекомендовано его всё же поставить, т.к. его назначение – повысить управляющий сигнал для однопроводной шины, без него питание идёт по паразитной составляющей и датчик может работать некорректно или вовсе выйти из строя. По даташиту датчик температуры DS18B20 работает в диапазоне напряжений от 3 до 5.5 вольт, выбранное мной питание 5 вольт позволяет применять достаточно длинный провод до датчика на улице, не переживая за падение напряжения до критически низкой отметки.